画層管理コマンドを使って、現在の画層を変更するコマンドを作ります。
予備知識
この記事では、AutoCADの既存コマンドをAutoLISPプログラムにします。
関数 command-s で、既存コマンドを使う方法についての記事はこちら。
AutoLISP コマンド
これは、コマンド名は test 現在の画層を 0 にするコマンドです。
(defun c:test ()
(command-s "._-LAYER" "_S" "0" "")
(princ))
AutoLISP の説明
(command-s “._-LAYER” “_S” “0” “”)
このコマンドは、-LAYER[画層管理] コマンドを使います。
通常、画層管理コマンドの LAYER は、画層パレットを出すためのコマンドですが、ハイフンを付けて-LAYERとすれば、昔のコマンドになり、パレットは出てこずにコマンドラインだけで画層の管理ができます。
AutoLISPにしたときはハイフンが無くてもパレットはでてこないので、”._LAYER”としても大丈夫です。
- -LAYER[画層管理]コマンドを実行
- オプション[現在の層の変更(S)] を選択
- 画層名 “0” を選択
- エンター(スペース)キーで終了
これをAutoLISPにしたものが、
(command-s “._-LAYER” “_S” “0” “”)
です。
この画層管理コマンドは、エンターで終わるまで繰り返すので、エンター(スペース)で終えています。
カスタマイズ例
現在画層を変更するコマンドは、単純だけれど意外に便利です。
私はよく使う画層はほとんどコマンドにしています。
元々使っていた物は今回の記事にしたシンプルなものでしたが、使っていく内に、いろいろ思いついてカスタマイズしていき、
その画層が無ければ作成、フリーズや非表示になっていたら表示して、図形を選択していたら図形の画層を変更して、何も選択しなかったら現在画層を変更する。
というのが現在形です。ずいぶん便利になりました。
他にも、画層を変更するコードを、作図する自作コマンドに組み入れれば、現在画層関係なく、自動で特定の画層に作図できたりするので便利です。
今回はコマンド操作記事を書きたかったのでーLAYER「画層管理コマンド] を使いましたが、ほかにも、システム変数CLAYERを使う方法があります。
実はその方が、現在画層が”0”になるコードは、(setvar “CLAYER” “0”) なので、短くて簡単だったりします。
普段使っているコマンドを並べていくだけで十分便利。システム変数とか聞きたくない。という方も、ぜひ、用語に臆せず、command-s 以外のAutoLISP関数も試してみて下さい。
まとめ
- 画層パレットを出すコマンドLAYER は、ハイフンを付けると昔のコマンドになり、パレットがでてこない。
- -LAYER ではコマンドラインで画層管理ができる。
- [現在の層の変更(S)] オプションで、現在画層を設定できる。
Comments