■上級 4.DIESEL関数 [index/edtime] | AutoCADマクロ屋本舗
ある座標値(X,Y,Z)の、それぞれの値を抽出するのが
DIESEL関数"index"
です。


ヘルプを参照すると
カンマで区切られた文字列の指定されたメンバを返します。

$(index, which, string)

index 関数では、引数 stringには、カンマで区切られた 1 つ以上の値が格納されているものとみなされます。引数 which は、それらの値の 1 つを抽出するための番号で、先頭の値の番号はゼロです。この関数は、$(getvar)によって返される点の座標からX、Y、Z 座標を抽出するのにもっとも頻繁に使用されます。
この様に記述されています。

上記の"which"には、0~2の数値が入ります。
座標値(X,Y,Z)において
X=0
Y=1
Z=2
となります。


DIESEL文字列での使い方は
$(index,0,$(getvar,lastpoint))
この様に記述する事で、システム変数"LASTPOINT"の
X座標値のみ抽出する事が出来ます。
"0"の部分が"1"ならY座標値、"2"ならZ座標値を抽出します。


滅多に使うことは有りませんが、覚えておくと良いでしょう。^^;




次に・・・
日付を記入することの出来る関数は
DIESEL関数"edtime"
です。


ヘルプを参照すると
所定の picture に基づきフォーマットされた日付と時刻を返します。

$(edtime, time, picture)

time によって指定され、たとえば、$(getvar,date) によって得られた AutoCAD LT ユリウス日付を、与えられた picture に応じて編集します。picture は、日付と時刻の特定の表現によって置き換えられる形式句で構成されています。形式句として解釈できない文字は、$(edtime) の結果にそのまま複写されます。詳細については、次を参照してください。例:Edtime 書式文字列
この様に記述されています。

これだけでは、意味がよく分からないと思います。^^;

ヘルプにて、例:Edtime 書式文字列を参照してみると
書式文字列の"例"が記載されています。

※以下ヘルプ抜粋(詳しくはヘルプ参照)
例えば、現在「1998年9月5日 土曜日 4時53分17秒506ミリ秒」の場合

【形式】
D
DD
DDD
DDDD
M
MO
MON
MONTH
YY
YYYY
H
HH
MM
SS
MSEC
AM/PM
am/pm
A/P
a/p
【出力】
5
05

土曜日
9
09
9
9 月
98
1998
4
04
53
17
506
AM
m
A
a

【形式】に対する【出力】は以上の条件となります。


例えば、文字列関数の記述を
$(edtime, $(getvar,date),DDD"," DD MON YYYY - H:MMam/pm)
この様に記述した場合
土, 5 9 1998 - 4:53am
↑この様な文字列として出力されます。


この様に・・・
実際には、DIESEL関数"edtime"で日付を取得する場合
システム変数"DATE"
を使用しなければなりません。


このシステム変数"DATE"は
<ユリウス日>.<日付の小数> (例:2453881.44930987)
この様な形状の"数値"が格納されています。


この数値を、日付や時間に変換する文字列関数が
DIESEL関数"edtime"なのです。


■マクロ例(今日の日付)[現在2000年12月31日の場合]
$(edtime, $(getvar,date),YYYY","M","D)

2000,12,31
$(edtime, $(getvar,date),YYYY"年"M"月"D"日")

2000年12月31日


図面上に日付を記入したり、日付更新マクロを作成する場合
大変役立つDIESEL関数ですので、覚えておきましょう。

実戦 AutoCAD LT98による機械製図―使いものにするカスタマイズテクニック/ソフトバンククリエイティブ

¥2,940
Amazon.co.jp