■特級 1.「nth」とは | AutoCADマクロ屋本舗
自作マクロで、最も多く使用しているDIESEL関数は
nth です。

DIESEL関数"IF"を使えば、ほとんどのマクロは作成可能ですが
この"nth"を使うことで、さらにマクロでの可能性が広がります。

この"nth"は、DIESEL文字列内において
色々な分岐繰返しループが可能なDIESEL関数なのです。


まずは、ヘルプを参照してみましょう。
nth
which によって選択される引数を評価して返します。

$(nth, which, arg0[, arg1,..., arg7] )

which が 0 の場合は、 arg0 を返します(他の値の場合もこの要領で返します)。$(nth)と $(index)の違いに注意してください。nth 関数は、関数の一連の引数の 1 つを返しますが、index は、単一の引数として渡されるカンマで区切られた文字列から値を抽出します。which により選択されない引数は評価されません。
この様に記述されてます。

簡単に説明すると・・・
$(nth,,0,1,2,3,4,5,6,7)
この様な記述の場合・・・
の値が0なら"0"
の値が1なら"1"
   ・
   ・
   ・
の値が7なら"7"

※最大8(0~7)個まで
と、なります。

つまりDIESEL関数"nth"は、ある値によって
"nth"内の「,(カンマ)」で区切られた部分を選択するのです。



例えば・・・
^C^C_setenv;to;\$M=$(nth,$(getenv,to),A,B,C,D,E,F,G,H)^Z
"_setenv;to;\"を使った場合の例を、↑に示します。


"to"の値に、0~7の数値を入れると
コマンドラインに、A~Hの文字が表示されます。

※最大8(0~7)個の為
^C^C_setenv;to;\$M=$(nth,$(getenv,to),A,B,C,D,E,F,G,H,I)^Z
"nth"内を、",(カンマ)"で9個以上区切ると動作しません。



これからはじめる AutoCADの本 [AutoCAD/AutoCADLT2006/2007/.../技術評論社

¥2,499
Amazon.co.jp