Lisp実践編 - 8
こんにちは!
エカキオです!
今回は紹介するLispは、普段使っているオブジェクトスナップ設定を登録したり、必要な時にオブジェクトスナップを簡単に変えたりすることが出来るLispです。
コマンドラインに数値で設定します。
オプションで「a」を入力することにより、一覧が見れます。
その中で、自分が有効にしたい設定の数値を足してください。
初めは面倒かも知れませんが、よく使う組み合わせの数値は覚えておくか、initget関数の変更、cond関数を設定したりして、使いやすいようにカスタマイズしてみてください。
ちなみに現在例として記入している227という数値は、私が常時設定しているOスナップです。
端点、中点、交点、挿入基点、垂線です。
不思議なもので、どの組み合わせを足しても、設定が重なることはないんですね。
227であれば上の5つのポイントになるんです。
理屈はよくわかってません。。。
誰か教えてください。f^_^;)
なお、今回登場したシステム変数の設定変更などは、近いうちにLisp入門編で詳しく解説したいと思ってます。
また、一時的なスナップも大変便利です!
参考記事に載せてますので、
ぜひご覧ください。
そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録
コード
;Oスナップ数値設定 (defun c:s1 ( / );os1) (setq os1 "a") (while (= os1 "a") (initget 1 "a ") (setq os1 (getint"¥nOスナップ数値設定 A=一覧 <227>:")) (if (= os1 "a") (princ " ¥n解除 = 0 ¥n端点 = 1 ¥n中点 = 2 ¥n中心 = 4 ¥n点 = 8 ¥n四半円点 = 16 ¥n交点 = 32 ¥n挿入基点 = 64 ¥n垂線 = 128 ¥n接線 = 256 ¥n近接点 = 512 ¥n全解除 = 1024 ¥n仮想交点 = 2048 ¥n延長 = 4096 ¥n平行 = 8192 " ) );if (if (= os1 "") ;-------↓いつも使用している数値に変更------------ (setq os1 227) ;------------------------------------------------- ) );wh (setvar "osmode" os1) (princ) )
参考記事
AutoCADで時短 - 4 - 一時スナップ - 図描きの備忘録
AutoCAD LISP 入門 - 4 - ユーザー入力待ち - 図描きの備忘録
AutoCAD Lisp 入門 - 9 - 複数の選択肢の条件式 - 図描きの備忘録
実践編コードの共通事項
最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "¥n〜")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)
※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。