MODO 機能紹介・チップスサイト このサイトでは、MODOの基本機能やチップスをご紹介していきます。

Import CAD Data from Folder

ダウンロード

概要

このスクリプトはCAD Loader/Power Translatorsなどを用いて複数のCADデータを読み込む場合に、指定したフォルダ内のファイル全てを自動的に読み込むスクリプトです。このためCADファイルだけに関わらず、ファイルを読み込むときに最初にダイアログが出てくるようなフォーマット(例:OBJ)のファイルを複数読み込みたい場合にも有効に使えます。

解説

CAD LoaderPower Translatorsなどを用いてCADファイルを読み込む場合、製品仕様により、まず必ず最初に設定値を問うダイアログが出てきます。

一つのファイルを読み込むだけなら良いのですが、場合によっては数十~数百のCADデータを一括で複数読み込みたい場合もあるかもしれません。そのような場合に、最初の一度だけ設定ダイアログを表示させるようにしましょう。一回目だけ設定を行えば、その設定は次に読み込むファイルに対しても適用されるケースが多いからです。

コードの中でポイントとなる部分を解説していきます。

まずは12~16行目:

12:lx.eval( 'dialog.setup dir' )
13:lx.eval( 'dialog.title "Select Folder which includes CAD data"' )
14:
15:lx.eval( 'dialog.open' )
16:dirname = lx.eval( 'dialog.result ?' )

まずはこちらで、複数のCADファイルが含まれているフォルダを指定します。lx.eval(‘xxxxx’) は引数で渡されたコマンドをそのまま実行するという関数です。この関数については後述します。

このスクリプトでは指定したフォルダの中に入っているファイルを、ひとつずつ順番に読み込んでいきますので、20行目にある for ループで、指定したフォルダ内のファイルを一個ずつ読み込む作業に移ります。

ファイルを読み込むためにどんなコマンドが必要なのかわからない、といった場合には、コマンド履歴を見てみてください。コマンド履歴には、MODOで行われている操作すべてに対応するコマンドが順次リストされています。このため、「CADファイルを開く」といったコマンドを知りたければまず、実際にCADファイルを開いてみて、コマンド履歴を見てみると良いでしょう。 importcad01ここでは読み込むのが一回目なのか、そうでないのかを判別するために変数 gui_read を使用しています。まだ一度も読み込まれていない場合には 0、一度でも読み込まれていれば 1 を設定しています。そうすることで、変数 gui_read1 の場合にはダイアログを出さないという設定を行います。

ダイアログを出さない」という設定を行うには、通常のコマンドの行頭に ‘!‘ を付けます。

gui_read0 の場合、つまり一番最初にCADファイルを読み込む場合には、通常通りファイルを読み込みますので

24:            comstr = 'scene.open ' + filepath + ' import'
25:            lx.eval( comstr )

gui_read1 の場合、つまりそれ以降CADファイルを読み込む場合には、行頭に ‘!‘ がつけられたコマンドを読み込みます。

28:            comstr = '!scene.open ' + filepath + ' import'
29:            lx.eval( comstr )

一回目に読み込んだ後には、忘れずに gui_read の値を1に設定しておいてください。今回はそれぞれのファイルを開いていくのではなく、今開いているシーンに読み込む形をとりましたので、scene.open コマンドの最後の引数は import になっています。読み込むのではなく、通常通りにファイルを開きたい場合には、importnormal へと変更してください。

読み込むファイル名称は filepath に納められていますが、ここでは指定したフォルダと各ファイルの名称とを連結させる際の区切り文字として “\” を用いています。これはWindows仕様ですので、Mac版でお使いの方は “/” に変更してお使いください。

これで処理は終了です。

2014年7月8日