AutoLISPデビューができたので、いろいろコマンドを作ってみたくなりました。
前回はcommand関数だけで完結する命令を定義しました。
しかしAutoCADのコマンドは、指示後に追加でオプションを入力するものもあります。
そこでオプションを入力する場合はどのように作成するのか疑問がわき、早速作ってみることにしました。
-LAYERコマンドで実験開始
「-LAYER」は画層の作成や設定をキーボードから指示できるコマンドです。
-LAYERコマンドを実行後、以下のようなオプションを選択するようになっています。
画層状態の変更や、線種設定、表示設定など、細かな画層設定が可能です。
今回の目的は、これらの指示をLISPにまとめ、ひとつの動作で目的の画層を作れるようになる、ということです。
任意の名前の画層を作る
まずは画層を作るコマンドを作ります。
今回も基本コードにあてはめていきます。
「NL」という名前のコマンドを作ることにしました。
(defun c:NL()
(命令を入れる)
(princ)
)
次に「-LAYER」コマンドを使用する関数を作ります。
前回と違い、command関数に「-s」がついています。
これは処理速度を上げる役割をしているということを学んだので、今回からつけることにしました。
また呼び出すコマンドの前に「._」をつけることが推奨されているようです。
Jagaimoさんの記事を参考にさせていただきました。
(defun c:NL()
(command-s "._LAYER"
)
(princ)
)
さて、次からがオプションの出番です。画層を新規作成するためのオプションは"N"で呼び出します。
これは-LAYERコマンドを実行後のコマンドライン(最初の画像参照)からも確認することができます。
続いて新しい画層の名前を指示します。ここでは"あたらしいがそう"という名前をつけました。
(defun c:NL()
(command-s "._LAYER"
"N" "あたらしいがそう"
)
(princ)
)
他のオプションもつけてみる
同じ要領で、他のオプションもつけていきます。やりかたは、"N" "あたらしいがそう"の下に並べていくだけ。
ここでは色を赤、線種をDashed、線の太さを0.35にしてみました。
色設定"C"、線種設定"L"、線の太さ"LW"を使います。
オプション指示の次に、指定先の画層を入れます。先ほど作成指示をした"あたらしいがそう"です!
オプションの最後は「""」を入れます。エンターまたはスペースキーでコマンドを終了させる、という意味です。
(defun c:NL()
(command-s "._LAYER"
"N" "あたらしいがそう"
"C" "red" "あたらしいがそう"
"L" "Dashed" "あたらしいがそう"
"LW" "0.35" "あたらしいがそう"
""
)
(princ)
)
作成したLISPを実行
LISPを保存してロード、実行してみます。こちらはコマンド実行前の画層プロパティ管理画面。
デフォルトの0画層しかない状態です。
コマンドラインに「NL」と入れてみます。「あたらしいがそう」が作成されました!
色、線種、線の太さも指示どおり設定できました。
画層作成はちょっとした操作ではありますが、マウスで細かな設定をするとなかなかの手間です。
よく使う画層設定をLISPでまとめ、ひとつのコマンドで実行できるのは便利だと思いました。