特定のブロックを挿入するコマンドです。
挿入点だけ入力して挿入するコマンドと
挿入後ついでに回転させるコマンドを作ります。
予備知識
この記事では、AutoCADの既存コマンドをAutoLISPプログラムにします。
関数 command-s で、既存コマンドを使う方法についての記事はこちら。
挿入するブロックはすでに図面内にあるか、書き出したものが検索パス内にあるフォルダに保存してある必要があります。
ブロックをファイルとして書き出す方法はコチラの記事を。
ブロックを挿入するコマンド
コマンドの内容
Test という名前のブロックを、尺度の変更無しで挿入します。
AutoLISP プログラム
コマンド名 test1が、挿入点をユーザー入力して回転させないコマンド。
コマンド名 test2 が、挿入後ついでに回転させて入力するコマンドです。
(defun c:test1 ()
(command-s "._-INSERT" "Test" pause "1" "1" "0")
(princ))
(defun c:test2 ()
(command-s "._-INSERT" "Test" pause "1" "1" pause)
(princ))
AutoLISP の説明
ブロックを挿入するコマンドはINSERT[ブロック挿入]です。
INSERT だけだと、ダイアログボックスが出てきます。が、- ハイフンを付けて – INSERT にすると、ダイアログボックスは出てこずに、ブロック名を入力するプロンプトが出てきます。
LAYER [画層管理]もそうですが、昔からあるコマンドで、後にダイアログボックスが付いたものは、このようにハイフンを付けることで古いコマンドが使えます。
-INSERT を使えば、コマンドラインのプロンプトだけでブロック挿入ができます。今回は、それを、関数command-s を使ってコマンドにしました。
(command-s “._-INSERT” “Test” pause “1” “1” “0”)
(command-s “._-INSERT” “Test” pause “1” “1” pause)
“._-INSERT” コマンド INSERT を実行。
“Test” ブロック名
挿入点 pause (ユーザー入力)
“1” 尺度 X値
“1” 尺度 Y値 もしXYZ尺度均一に設定してあるブロックを使う場合はここは省略します。
“0” / pause ブロックの挿入角度 “0” なら回転せずに挿入、pause だともう1点を選んで、挿入点からその点の角度がブロックの角度になります。
カスタマイズ例
特定の画層にブロックを挿入したい場合、画層変更コマンドを組み合わせると、特定の画層にブロックを挿入することができます。
スタンプや注意書きなど、毎回同じ場所に挿入するブロックは座標もあらかじめプログラムしておけば、コマンド実行だけで特定の場所に挿入できます。
特定の場所に挿入する場合についてはコチラの記事を。
まとめ
- AutoLISPでも一時オブジェクトスナップを使うことができる。
- ブロックを挿入するコマンド INSERT は、ハイフンを付けるとダイアログボックスは出ずにコマンドプロンプトのみでブロック挿入できる。
Comments