今日は「MODO」への「DXFファイル」の読み込みスクリプトを公開いたします。
実務で使い続けて、今のところおおむね問題はなさそうなので、
公開させていただくことにしました。「MODO」の「DXFファイル」のインポーターは、2D・3D両方に対応していますが、
本スクリプトは2D限定で、DXF図面読み込み専用となっております。
読み込み可能なエンティティ
- 円
- 円弧
- 楕円
- ポリライン
- スプライン
- ブロック(※若干挙動が怪しいです(;’∀’))
スクリプトをわざわざ自前で書いたわけ
「MODO」でDXFを読み込むと、
円やスプラインといった曲線等が、
とても細かいポリラインに変換されてしまって、
データが重くなってしまいます。
回避方法としては、一度「Illustrator」へ読み込んでから、
「Illustrator 8.0形式」で保存したものを「MODO」へ読み込むことで、
円や曲線などは、ベジェとして読み込まれるのですが、
その方法がメンドクサくなってきたので、スクリプトを書きました。
以下、「標準読み込み」と「スクリプト使用時」の比較です。
「MODO」標準の読み込みの場合
- 曲線などが細分化されたポリラインになってしまう
- スケールが1000倍になってしまう
- DXFのレイヤー構造は保持されている
- 「上面」ビューに対して読み込まれる
スクリプトで読み込んだ場合
- 曲線などは「ベジェ」または「B-スプライン」で読み込まれる
- スケールは1倍
- DXFのレイヤー構造は1つにまとまる
- 「正面」ビューに対して読み込まれる
スクリプトの使用方法
スクリプトファイルの実行方法はいくつかの方法がありますが、
今回はコマンドから直接スクリプトファイルを指定して実行する方法をご紹介します。
1.
コマンドに「@」と入力して「Enter」を押下します。
2.
スクリプトファイルの場所を聞いてくるので、
ダウンロードしたスクリプトファイルを指定し「開く」をクリックします。
3.
さらに「DXFファイル」の場所を聞いてくるので、
読み込む「DXFファイル」を指定し、「開く」をクリックします。
以上で「DXFファイル」が「正面」ビューに読み込まれます。
※DXFファイルのバージョンは「R13」以上をサポートしています。
たまにブロック図の読み込みがおかしくなる場合があります。
その場合はブロック図を分解していただくと、正しく読み込めます。
以下は「Draft Sight」でのブロック図を分解する例です。
スクリプトファイル↓↓
import_dxf_2d.py