DIESEL 関数リファレンス

ステータスの取得、計算、表示は、DIESEL 関数が実行します。

どの関数にも、関数名自体を含めて、最大 10 の引数を指定できます。

関数 説明/例
+ (加算)

数値 val1 val2 、…、 val9 の合計を返します。

$(+, val1 [, val2, …, val9])

システム変数 THICKNESS(現在の厚さ)が 5 に設定されていると、次の DIESEL 文字列は 15 を返します。

$(+, $(getvar, thickness), 10)
- (減算)

数値 val2 から val9 までの合計を val1 から減算した結果を返します。

$(-, val1 [, val2 , …, val9])
* (乗算)

数値 val1 val2 、…、 val9 を乗算した結果を返します。

$(*, val1 [, val2, …, val9])
/ (除算)

数値 val1 val2 、…、 val9 で除算した結果を返します。

$(/, val1 [, val2, …, val9])
= (等しい)

数値 val1 val2 が等しいと、この文字列は 1 を返し、それ以外の場合は 0 (ゼロ)を返します。

$(=, val1, val2)
< (より小さい)

数値 val1 val2 より小さいと、この文字列は 1 を返し、それ以外の場合は 0 (ゼロ)を返します。

$(<, val1, val2)

次の式はシステム変数 HPANG の現在の値を取得し、この値がシステム変数 USERR1 に格納されている値より小さい場合に 1 を返します。値 10.0 がシステム変数 USERR1 に格納されていて、システム変数 HPANG の現在の設定が 15.5 の場合は、0 (ゼロ)を返します。

$(<, $(getvar, hpang), $(getvar, userr1))
> (より大きい)

数値 val1 val2 より大きいと、この文字列は 1 を返し、それ以外の場合は 0 (ゼロ)を返します。

$(>, val1, val2)
!= (に等しくない)

数値 val1 val2 が等しくないと、この文字列は 1 を返し、それ以外の場合は 0 (ゼロ)を返します。

$(!=, val1, val2)
<= (より小さいか等しい)

数値 val1 val2 より小さいか等しいと、この文字列は 1 を返し、それ以外の場合は 0 (ゼロ)を返します。

$(<=, val1, val2)
>= (より大きいか等しい)

数値 val1 val2 より大きいか等しいと、この文字列は 1 を返し、それ以外の場合は 0 (ゼロ)を返します。

$(>=, val1, val2)
and

val1 から val9 までの整数の AND(ビット方式の論理積)を返します。

$(and, val1 [, val2,…, val9])
angtos

指定された形式と精度の角度値を返します。

$(angtos, value [, mode, precision])

同様の AutoLISP 関数と同じように、 mode precision で指定された形式で、指定された value を角度として編集します mode precision を省略すると、UNITS[単位管理]コマンドで選択した現在の値が使用されます。

注: AutoLISP は、AutoCAD LT では使用できません。
次の mode の値を適用できます。
  • 0: 角度
  • 1: 度/分/秒
  • 2: グラジエント
  • 3: ラジアン
  • 4: 測量用単位
edtime

指定された picture に基づいて書式化された日付と時刻を返します。

$(edtime, time, picture)

time で指定された西暦の日付を編集します(たとえば、 $(getvar,date) から取得された時刻を、指定された picture に応じて編集します)。 picture は日付の書式文字列で、所定の日付と時刻表現に置き換えられます。書式文字列として解釈できない文字は、 $(edtime) の結果にそのままコピーされます。書式文字列は、次の表のように定義されています。

たとえば、日時が 1998 年 9 月 5 日、土曜日の 4:53:17.506 の場合、edtime の対応する書式と出力例は、次のようになります。
  • D: 5
  • DD: 05
  • DDD: 土
  • DDDD: 土曜日
  • M: 9
  • MO: 09
  • MON: 09
  • MONTH: 9 月
  • YY: 98
  • YYYY: 1998
  • H: 4
  • HH: 04
  • MM: 53
  • SS: 17
  • MSEC: 506
  • AM/PM: AM
  • am/pm: am
  • A/P: A
  • a/p: a

上の表で示すように、AM/PM は全体を入力してください。AM だけを入力すると、A は文字通りに解釈され、M に対しては現在の月が返されます。

書式文字列に AM/PM がある場合は、HHH は、24 時間方式(00:00-23:59)ではなく、通常の 12 時間方式(12:00-12:59, 1:00-11:59)に編集されます。

次の例では、上記の表の日付と時刻を使用しています。カンマ(,)は、引数の区切り記号として解釈されるため、クォーテーションで囲む必要があります。

$(edtime, $(getvar,date), DDD"," DD MON YYYY - H:MMam/pm)

これは、次のような結果を返します。

1998年 9月 5日, 土曜日 - 4:53am

time が 0(ゼロ)のときには、時刻と日付は最も外側のマクロが実行された日時が使用されます。このため、時間のかかる処理の途中で $(getvar,date) を複数回呼び出すことなく、複数の $(edtime) マクロで構成された文字列がすべて、確実に同じ時間を使用するようにできます。

eq

文字列 val1 val2 が同じなら、この文字列は 1 を返し、それ以外の場合は 0 (ゼロ)を返します。

$(eq, val1, val2)

次の式は、現在の画層名を取得します。この名前が、システム変数 USERS1(USERS1~5)に格納されている文字列値と一致すると 1 を返します。文字列 "PART12" が USERS1 に格納されており、現在の画層名と同じだとすると、次の結果が返されます。

注: システム変数 USERS1~5 は、AutoCAD LT では使用できません。
$(eq, $(getvar, users1), $(getvar, clayer))

これは、次のような結果を返します。

1

eval

文字列 str を DIESEL 式として評価し、結果を返します。

$(eval, str)
fix

実数 value の小数部を切り捨てて整数に変換します。

$(fix, value)
getenv

環境変数 varname の値を返します。

$(getenv, varname)

指定された名前に該当する変数が定義されていない場合は、空の文字列が返されます。

getvar

varname で指定されたシステム変数の値を返します。

$(getvar, varname)
if

条件評価式です。

$(if, expr, dotrue [, dofalse])

expr が 0(ゼロ)以外の値の場合は、 dotrue の評価結果を返します。それ以外の場合は、 dofalse の評価結果を返します。 expr で選択されない部分は評価されないので注意してください。

index

カンマで区切られた文字列内の指定されたメンバーを返します。

$(index, which, string)

string は、引数として 1 つ以上の値を持ち、値が複数の場合は、マクロ引数区切り文字であるカンマ(,)で区切ります。引数 which で、抽出する 1 つの値を選択します。 このとき、最初の項目の番号は 0(ゼロ)になります。この関数は、$(getvar) が返した点座標から XYZ 座標値を抽出するためによく使用されます。

この関数を使用して、アプリケーションは、システム変数 USERS1~5 から、カンマで区切られた文字列として格納された値を取得することができます。

注: システム変数 USERS1~5 は、AutoCAD LT では使用できません。
nth

which で選択した引数を評価して返します。

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

たとえば which が 0(ゼロ)の場合、nth arg0 を返します。 $(nth) $(index) との違いに注意してください。 $(nth) r は、一連の引数の 1 つを返します。 一方、 $(index) は、単一の引数として渡された、カンマで区切られた文字列から値を抽出します。 which で選択されない引数は評価されません。

or

val1 から val9 までの整数の OR(ビット方式の論理和)を返します。

$(or, val1 [, val2,…, val9])
rtos

指定された形式と精度の実数を返します。

$(rtos, value [, mode, precision])

mode と precision で指定された形式で、指定された value を実数として編集します。 mode precision を省略すると、UNITS[単位管理] コマンドで選択した現在の値が使用されます。

strlen

string の長さ(文字数)を返します。

$(strlen, string)
substr

string の部分文字列を返します。返される部分文字列は start から始まり、 length で指定された長さです。

$(substr, string, start [, length])

文字列内の文字は、1 から順に番号が振られています。 length を省略すると、文字列の残りすべてが返されます。

upper

各国語の規則に従って大文字に変換された string を返します。全角のアルファベットも正常に変換されます。

$(upper, string)
xor

val1 から val9 までの整数の XOR(ビット方式の排他的論理和)を返します。

$(xor, val1 [, val2,…, val9])