例えば・・・
"任意の点を指定する"か"右クリックにて処理する"かを
分岐させる時に使用します。
マクロ例として
"縦横の数値を記入し、四角形の中心指定で作図させるマクロ"を
RAYコマンドを使用し、作成してみましょう。
1)初めに"nth"開始文を記述(※【■特級 2."nth"マクロ基本 参照】)
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),)^M |
2)setenvコマンドにて、縦横の数値を記入するマクロを記述
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),_setenv;x1;横幅^X\_setenv;y1;縦幅^X\,,)^M |
3)"setenv;to;1"とし、"nth=1"の構文を記述
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),_setenv;x1;横幅^X\_setenv_;y1;縦幅^X\_setenv;to;1,,)$(nth,$(getenv,to),,)^M |
4)"RAY"コマンドのクリック動作にて分岐させる構文を、IF文で記述
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),_setenv;x1;横幅^X\_setenv;y1;縦幅^X\_setenv;to;1,,)$(nth,$(getenv,to),,_ray;【数値変更(右クリック)】^X\$M="""$(if,$(getvar,cmdactive),;_setenv;to;2,_setenv;to;0)""",)^M |
右クリックの時"setenv;to;0"とし数値記入に戻る。
5)"nth=2"の構文を記述
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),_setenv;x1;横幅^X\_setenv;y1;縦幅^X\_setenv;to;1,,)$(nth,$(getenv,to),,_ray;【数値変更(右クリック)】^X\$M="""$(if,$(getvar,cmdactive),;_setenv;to;2,_setenv;to;0)""",)$(nth,$(getenv,to),,,)^M |
6)RECTANG"四角形作図"コマンド記述
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),_setenv;x1;横幅^X\_setenv;y1;縦幅^X\_setenv;to;1,,)$(nth,$(getenv,to),,_ray;【数値変更(右クリック)】^X\$M="""$(if,$(getvar,cmdactive),;_setenv;to;2,_setenv;to;0)""",)$(nth,$(getenv,to),,,_rectang;)^M |
7)指定した任意点を中心とした四角形を、座標値で記入
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),_setenv;x1;横幅^X\_setenv;y1;縦幅^X\_setenv;to;1,,)$(nth,$(getenv,to),,_ray;【数値変更(右クリック)】^X\$M="""$(if,$(getvar,cmdactive),;_setenv;to;2,_setenv;to;0)""",)$(nth,$(getenv,to),,,_rectang;non;@-$(/,$(getenv,x1),2)","-$(/,$(getenv,y1),2);non;@$(getenv,x1)","$(getenv,y1);)^M |
8)"setenv;to;1"にて繰返し
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),_setenv;x1;横幅^X\_setenv;y1;縦幅^X\_setenv;to;1,,)$(nth,$(getenv,to),,_ray;【数値変更(右クリック)】^X\$M="""$(if,$(getvar,cmdactive),;_setenv;to;2,_setenv;to;0)""",)$(nth,$(getenv,to),,,_rectang;non;@-$(/,$(getenv,x1),2)","-$(/,$(getenv,y1),2);non;@$(getenv,x1)","$(getenv,y1);_setenv;to;1)^M |
この様に、"RAY"コマンドをダミーとして使うことで
"任意の点を指定する"か"右クリックで別の処理をさせる"か
が可能な、分岐マクロが作成出来ます。
ちなみに、上記マクロの文字数を減らし、簡単に作ると
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;x1;横幅^X\;y1;縦幅^X\;to;1,ray;【数値変更(右クリック)】^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;2,id;)""",)$(nth,$(getenv,to),,,rectang;non;@-$(/,$(getenv,x1),2)","-$(/,$(getenv,y1),2);non;@$(getenv,x1)","$(getenv,y1);setenv;to;1)^M |
分岐させるマクロを作る場合には、かなり便利なダミーコマンドですので
覚えておくと良いでしょう。
AutoCAD<お助け帳―ユーザ必携!丸ごとサポートブック/ソフトバンククリエイティブ

¥3,570
Amazon.co.jp