0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenSCADがDXFを読み込まない?LibreCAD経由で解決する手順

Last updated at Posted at 2025-08-10

Openscadには.svgファイルや.dxfファイル中の指定レイヤを平面として押し出す機能、importがある。

機能の詳しい解説は以下のサイトや、インストール時に付属しているモデリング例を見てみてほしい。

OpenSCAD User Manual/3D Modelling - Wikibooks, open books for an open world

ここでのdxfファイルは若干内部の構造が特殊なのか、jwcadで編集してみたデータの読み込みができなかった。

どうすれば平面の押し出しができるのか探していたところ、この度解決方法を発見できたため同じような悩みを抱えた人らのためにここに寄稿する。

解決方法

LibreCADで保存されたdxfファイルであれば、ヘッダ情報がopenscad側で読み込んでくれる形となるようだ。

ということで。。

まずは、以下からLibreCADをダウンロードする。

LibreCAD - Free Open Source 2D CAD

アプリを起動して、テキトーに図形でも書いてみる。

op1.png

保存場所だが、さしあたり、Desktop にファイルを保存する。

対応する.scad ファイルを作成。中に以下のプログラムを記述する。

intersection() {
      linear_extrude(height = 10, convexity = 1)
        import(file = "keinz.dxf", layer = "0");      
}

出力 :

op2.png

解説

LibreCAD経由にすると OpenSCAD が素直に読んでくれる理由は、DXFの中身(特にヘッダやエンティティの表現形式)が DXF R12 相当で、TEXT や SOLID がレイヤ単位で分離されやすいためである。

ちなみに、Jw_cad が書き出す DXF は、基本的に AutoCAD 2004(AC1018)形式であるようだ。

  • エンティティの対応表

対応しているエンティティ表を以下に配置する。

エンティティ OpenSCAD対応 備考
LINE ✅ 対応 単純な線分
LWPOLYLINE ✅ 対応 推奨、R12形式で安定
ARC ✅ 対応 円弧
CIRCLE ✅ 対応
SPLINE ❌ 非対応 ポリライン化が必要
TEXT / MTEXT ❌ 非対応 寸法線や注記は除外
SOLID ❌ 非対応 塗りつぶしは無視される

対応してないエンティティ、これを行うとOpenscad側で注意が出る。

WARNING: Unsupported DXF Entity 'SOLID' (4) in layer '0' of Untitled.dxf 
WARNING: Unsupported DXF Entity 'MTEXT' (2) in layer '0' of Untitled.dxf 

これは、レイヤーを作図補助レイヤーに設定(チェックを付ける)すれば無くなる。

スプラインを認識してもらうには

スプライン図形を認識してもらうには、ポリラインに分解してしまえばよい。

画面中でスプラインのエンティティを選択し、

変更・修正よりポリラインを分解(p)を押すことでポリラインに分解できる。

参考

検索用語 : openscad dxf

LibreCADとOpenSCADを使って現物寸法にあったモデルを作る - fab-wiki

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?