例えば、水平な構築線と垂直な構築線を
右クリックする度に切替えるマクロを作成しましょう。
■水平垂直構築線マクロ
1)繰返し「*」付加し、"XLINE"[構築線]コマンド実行
*^C^C_xline; |
ここで、"XLINE"[構築線]コマンドの、オプション[水平(H)/垂直(V)]を使用し
右クリックする度に、水平と垂直を切り替える部分を説明します。
"DIESEL関数"の"if"を使用し、ダミーのシステム変数として
"_setenv;to"の値を使用します。
※"to"に特別な意味は有りませんが、使用する変数は統一しておきましょう。
ここで注意しなければならない事が有ります。
初めて"_setenv;to;"を実行した時の、システム変数の値には
数値も文字も、何も無い状態です。
その為、IF文で
$M=$(if,$(getenv,to),0),A,B) |
マクロとして動作ません。
これは、DIESEL文字列内の数値を判別している為
何も数値が無い状態では、判断出来ない為です。
その為、"setenv"にて新しく作成されたシステム変数を、コマンド入力で
SETENV 変数名を入力: to
値:0
一度値を入れておけば動作しますが
それではマクロにする意味がありません。
では、この場合どの様にすれば良いかと言うと・・・
"DIESEL関数"の"eq"を使用すれば良いのです。
この"eq"は、【■上級 1.DIESEL関数 [if]】でも述べましたが
数値では無く、文字列として判断する事が可能な関数です。
■マクロ例
$(if,$(eq,A,B),C,D) |
文字列Aと文字列Bが同一で無いならば、Dを実行
と、なります。
それでは早速、"eq"を使って水平/垂直の分岐を作成しましょう。
2)"if"と"to"で、構築線のオプション[水平(H)/垂直(V)]を分岐
*^C^C_xline;$M=$(if,$(eq,$(getenv,to),0),v,h); |
それ以降は、"to"の値によって分岐させます。
3)構築線の通過点を指定「\」記入
*^C^C_xline;$M=$(if,$(eq,$(getenv,to),0),v,h);\ |
ここで、今度は
「通過点を指定する」か「右クリックで構築線の水平/垂直を切替える」
を分岐させます。
・構築線の通過点を指定する = 左クリック
・右クリックで構築線の水平/垂直を切替える =右クリック
システム変数"CMDACTIVE"を使って、この様に分岐させましょう。
ただし、既に「$M=」にて計算開始となっていますので
評価を遅らせる「"(ダブルクォーテーション)」を忘れないように注意しましょう。
4)システム変数"CMDACTIVE"にて分岐
*^C^C_xline;$M=$(if,$(eq,$(getenv,to),0),v,h);\$M="$(if, |
この時、"XLINE"[構築線]コマンドの特性から
左クリックで通過点を指定した後、1回のEnterでコマンドが終了するので
何もする必要は有りません。
それでは最後に
右クリック時に水平/垂直を切替える部分を作成します。
これは意外と簡単です。
*^C^C_xline;$M=$(if,$(eq,$(getenv,to),0),v,h);\ |
「to=0」の時、"to"の値を"1" 「to=1」の時、"to"の値を"0" |
"if"を使って、"to"の値を
_setenv;to;$(if,$(getenv,to),0,1); |
これを作成途中のマクロに組み込むと・・・
*^C^C_xline;$M=$(if,$(eq,$(getenv,to),0),v,h);\$M="$(if, |
右クリックをする度に、構築線の水平と垂直が切り替わるマクロの完成です。
この様に"if"や"CMADCTIVE"を使うと
今まで不可能に思えていた動作を、マクロで作成する事が可能です。
又、作り方によっては、別の作り方があると思います。
色々な作り方を試すと良いでしょう。
はじめて学ぶAutoCAD LT 2013 作図・操作ガイド/ソーテック社

¥2,499
Amazon.co.jp