このIF文です。
構文の書き方は
$(if,A,B,C) |
これを言葉で説明すると・・・
もし・・・A≠0ならB・・・A=0ならC |
Aの数値が0かそうでないかで判断させ
マクロを分岐させる文字列関数がIF文です。
例えば、"SETENV"コマンドにて、
新規変数名に数値を入れて分岐させてみましょう。
1)"SETENV"コマンドを実行し、変数名"to"で数値を記入させる"\"を記入
^C^C_setenv;to;\ |
2)DIESEL開始の"$M="を記入
^C^C_setenv;to;\$M= |
3)$(if,A,B,C)のAの部分を"to"の値で判断
^C^C_setenv;to;\$M=$(if,$(getenv,to),B,C)^M |
4)$(if,A,B,C)のBの部分に"COPY"コマンド、Cの部分に"MOVE"コマンド記入
^C^C_setenv;to;\$M=$(if,$(getenv,to),_copy,_move)^M |
この様に記述する事で
新規変数名"to"の値が0で無い時、"COPY"コマンド実行
新規変数名"to"の値が0の時、"MOVE"コマンド実行
と、なります。
又、$(if,A,B,C)のA部に、次の文字列を使用した関数を記入することで
色々な判断をさせるコトも出来ます。※ヘルプ参照
「=」(に等しい) 数値 val1 と val2 が等しい場合は 1 を返します。 それ以外の場合は、0 を返します。 $(=, val1, val2) |
「<」(より小さい) 数値 val1 が val2 よりも小さい場合は 1 を返します。 それ以外の場合は、0 を返します。 $(< , val1, val2) |
「>」(より大きい) 数値 val1 が val2 よりも大きい場合は 1 を返します。 それ以外の場合は、0 を返します。 $(>, val1, val2) |
「!=」(に等しくない) 数値 val1 と val2 が等しくない場合は 1 を返します。 それ以外の場合は、0 を返します。 $(!=, val1, val2) |
「<=」(より小さいかまたは等しい) 数値 val1 が val2 以下の場合は 1 を返します。 それ以外の場合は、0 を返します。 $(<=, val1, val2) |
「>=」(より大きいかまたは等しい) 数値 val1 が val2 以上の場合は 1 を返します。 それ以外の場合は、0 を返します。 $(>=, val1, val2) |
「eq」 文字列 val1 と val2 が同一であれば、1 を返します。 それ以外の場合は、0 を返します。 $(eq, val1, val2) |
▲注意
"val1"と"val2"にはそれぞれ、判断させる数値もしくは
DIESEL関数を記入することで
様々な判断をさせるコトが可能です。
●使用例
^C^C_setenv;to;\$M=$(if,$(=,$(getenv,to),0),_copy,_move)^M |
また、全て数値で判断してますが、「eq」のみ文字列を判断します。
数値以外での判断には、「eq」を使用して下さい。
これらの文字列は、DIESEL関数内にて、全て1か0の数値が返されます。
この0か1の数値を、IF文にて判断させればいいのです。
このIF文の使用方法を覚えると、
今まで出来なかったマクロが可能となります。
覚えておきましょう。
使える! AutoCAD & LT カスタマイズブック 使えるカスタムプログラム100、使える.../ソフトバンククリエイティブ

¥3,360
Amazon.co.jp