Lisp実践編 - 12
こんにちは!
エカキオです!
今回はレイヤー操作に関するLispをご紹介します。
レイヤーは後々の修正作業に大きく関わって来ますので、面倒臭がらずにしっかり設定していきましょう。
そんな面倒臭いレイヤー設定ですが、Lispを使うことである程度作業効率があげられます。
今回紹介するLispは、
選択したオブジェクトのレイヤーを、
↓
自分が現在使用中のレイヤーに書き換える。
というLispになっています。
ここでシステム変更の「clayer」を使っていますが、こちらは現在使用中のレイヤー名が保存されています。
そちらを「getvar」することで、現在使用中のレイヤー名を抽出して、「change」コマンドで適用させているわけです。
Lispでは、レイヤーの変更の仕方は何通りもありますが、今回はコマンドを使用して変更しています。
そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録
コード
;選択オブジェクトを現在のレイヤに変更 (defun c:CS ( / ss1 l1) (princ"¥n選択オブジェクトを現在のレイヤに変更") (setq ss1 (ssget)) (setq l1 (getvar "clayer")) (command "change" ss1 "" "p" "la" l1 "") (princ) )
参考記事
AutoCAD Lisp 入門 - 3 - よく使うコマンド処理を登録する - 図描きの備忘録
AutoCAD Lisp 入門 - 10 - フィルターオブジェクト選択 - 図描きの備忘録
Lisp入門 - 12 - システム変数とエラー処理 - 図描きの備忘録
実践編コードの共通事項
最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "¥n〜")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)
※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。
キーワード
画層,レイヤー,change,layer