AutoLISPで作った図形をそのまま編集したい!というときには、AutoLISP関数 entlast が便利です。
雲マークを作り、その図形を雲マーク用の画層にします。
予備知識
この記事では、AutoCADの既存コマンドをAutoLISPプログラムにします。
関数 command-s を使って、既存コマンドを使う方法についての記事はこちら。
コマンドの内容
現在の画層、図形の画層関係なく、長方形などの図形をクリックするだけで、Jaga-Revという名前の画層で円弧の長さ5の雲マークを作成することができます。
AutoLISPプログラム
Jaga-Revという名前の画層があること前提のコマンドです、
画層Jaga-Rev を用意するか、Jaga-Revを既存の画層に書き換えて試してください。
コマンド名は test です。
(defun c:test ()
(command-s "._REVCLOUD" "_A" 5 5 "_O" pause "_N")
(command-s "._CHANGE" (entlast) "" "_P" "_LA" "Jaga-Rev" "")
(princ));defun
AutoLISPの説明
(command-s “._REVCLOUD” “_A” 5 5 “_O” pause “_N”)
この部分については、こちらの記事を参考にしてください。
(command-s “._CHANGE” (entlast) “” “_P” “_LA” “Jaga-Rev” “”)
コマンドCHANGE を使って、先ほど作った雲マークの画層を変えます。
関数 (entlast) は最後に描いた図形になるので、上の_REVCLOUDで作成した雲マークが画層を変える図形として自動的に選択されます。
カスタマイズ例
雲マーク用画層が無い場合、フリーズ、非表示になっている状況も考えて、画層が無ければ作成、フリーズしてたら解凍、非表示になっていたら表示するルーティーンも入れると、使い勝手がよくなると思います。
もっと便利にカスタマイズしたサンプルコマンドがこちらです。
まとめ
- AutoLISP関数 entlast では最後に作図した要素を得ることができる。
- command-s でコマンド操作をするとき、図形選択部分に(entlast) と入れれば、最後に作った要素を選択することになる。
Comments