- 締切済み
AutoCADの画層一発変換
ダウンロードしたCADデータの画層を社内の画層に一発で変換できるマクロというのはどのように作ればよいのでしょうか? あるサイトでこのようなものを見つけたのですが、これは都度オブジェクトを選択しなくてはなりません ^C^C$m=-layer;m;AM_4;;QSELECT;_Change;p;la;AM_4;;;^M;; 選択もマクロで行いたいのです。 どなたかよきアドバイスをお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- gtta
- ベストアンサー率50% (92/181)
No2です。 画層"0"を画層"AM_0"にしたいとなると、renameではできません。 画層"0"は、変更も削除もできないからです。 他の画層なら可能でしょう。 もし、画層"0"で書かれたものを変更したいのなら、Filterで画層"0"を全て選んで、変更するといいでしょう。 一番、楽なのは、LISPでプログラムすることですが・・・。
- moon00
- ベストアンサー率44% (315/712)
変換する際に、必ずrename元のレイヤは存在しますか? 変換する元のレイヤがない場合、スクリプトは止まってしまいます。 スクリプトでやろうとする場合は、 1.まず、renameする元レイヤをすべて存在する状態にする →-layer m レイヤコマンドのMオプションで必要レイヤを事前に作成 (存在する場合は、そのレイヤを現在層にする動きになります) 2.renameにて順次レイヤ名を変更 3.オブジェクトのないレイヤを消しておきたいなら、-purgeコマンドで レイヤ削除 たとえば、レイヤ名「A・B・C」を「Pre_A・Pre_B・Pre_C」にする場合、 -layer r A Pre_A r B Pre_B r C Pre_C というスクリプトを作成すると 元のデータにBがない場合は、途中で止まります。 なので、 -layer m A m B m C で一度変更元レイヤを確実にある状態にしてから 上記のスクリプトを追記すると、確実に変更できるはずです。
- grazie
- ベストアンサー率56% (200/355)
スクリプトを使えば一括変換可能ですよ。 layer rename "_01形材" "_01katazai" こんなふうに書いて拡張子.scrで保存して、あとはAutoCADのウィンドウにドラッグ&ドロップすれば使えます。 スクリプトの基本的なルールについてはヘルプを参照してくださいね。 はじめにレイヤリストを作るときは ^C^C-layer;?;*; こんなマクロが使えると思います。
- gtta
- ベストアンサー率50% (92/181)
フィルターで選んで変換程度では、まずいのでしょうか。 完全にオートでとなると・・・。 ダウンロードしたCADデータのどの画層を社内のどの画層に置き換えるのか決まっていますか。 社内で使う画層は決まっていても、ダウンロードしたデータの画層は様々ではないでしょうか。 マクロとは手で操作したやり方を連続してできるようにするものです。 ダウンロード元の画層が何かを自動で判別する操作ってありませんよね。 選ぶことが出来なければ、変換することも出来ません。 もしできるとしたら、マクロではなく、LISPなどでプログラムすることです。 CADがレギュラーのAutoCADじゃないとLISPは動きませんが・・・。 LTだとしたら、Acadremoconかなぁ。 それぞれ専門のサイトがありますから、相談されるといいでしょう。 それでも何を何に変換するのか、ルール付けは必要ですけどね。
お礼
ありがとうございます。 たとえば、画層"0"を画層"AM_0"に一発で変換したいのです。 購入品データを自社の画層に合わせる時間を短縮したいのです。 ちなみに、使用キャドはAutCAD Mechanical 6 です。 専門サイトに相談してみますが、また何か、教えていただけるのであれば、連絡をお待ちします。
- ishiwaru
- ベストアンサー率19% (70/356)
それは無理です
お礼
回答ありがとうございます。 簡単でよいので、理由を教えていただけないでしょうか?
お礼
ありがとうございます。 早速やってみたのですが、オプションを要求され、止まってしまいます。 もう少しスクリプトについて調べてみます。 ちなみに、使用キャドはAutCAD Mechanical 6 です。 また何か、教えていただけるのであれば、連絡をお待ちします。