状态的检索、计算和显示均由 DIESEL 函数执行。

所有的函数最多只能包含 10 个参数,包括函数名本身。

函数 说明/样例
+(加)

返回数字 val1val2、…、val9 的和。

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

如果当前厚度被设定为 5,则以下 DIESEL 字符串返回 15。

$(+, $(getvar, thickness), 10)
-(减)

返回从数字 val1 中减去 val2val9 的结果。

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

返回数字 val1val2、…、val9 的积。

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

返回数字 val1 除以 val2、…、val9 的结果。

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

如果数字 val1val2 相等,则字符串返回 1;否则,返回 0。

$(=, val1, val2)
<(小于)

如果数字 val1 小于 val2,则字符串将返回 1;否则,返回 0。

$(<, val1, val2)

以下表达式用于获取 HPANG 的当前值;如果该值小于系统变量 USERR1 中存储的值,则将返回 1。如果 USERR1 中存储的值为 10.0 且 HPANG 的当前设置为 15.5,则以下字符串将返回 0。

$(<, $(getvar, hpang), $(getvar, userr1))
>(大于)

如果数字 val1 大于 val2,则字符串返回 1;否则,返回 0。

$(>, val1, val2)
!=(不等于)

如果数字 val1val2 不相等,则字符串返回 1;否则,返回 0。

$(!=, val1, val2)
<=(小于或等于)

如果数字 val1 小于或等于 val2,则字符串返回 1;否则,返回 0。

$(<=, val1, val2)
>=(大于或等于)

如果数字 val1 大于或等于 val2,则字符串返回 1;否则,返回 0。

$(>=, val1, val2)
并且

返回整数 val1val9 的按位逻辑与。

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

按指定的格式和精度返回角度值。

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

modeprecision 指定的格式将给定的 value 作为角度值进行编辑,与类似的 AutoLISP 函数的定义一样。如果 modeprecision 被省略,则使用由 UNITS 命令选择的当前值。

注: AutoLISP 在 AutoCAD LT 中不可用。
可应用以下 mode值:
  • 0,表示度

  • 1,表示度/分/秒

  • 2,表示百分度

  • 3,表示弧度

  • 4,表示勘测单位

Edtime

返回基于指定图片的格式化的日期和时间。

$(edtime, time, picture)

编辑由 time 指定的 Julian 日期(例如,根据给定的 picture$(getvar,date) 获取)。picture 由被具体日期和时间代替的格式短语组成。不能解释为格式短语的字符被完整地复制到 $(edtime) 的结果中。格式短语的定义如下表所示。

例如,假定日期为 1998 年 9 月 5 日星期六,时间为 4:53:17.506,则 edtime 的相应格式短语和输出样例如下所示:
  • D - 5

  • DD - 05

  • DDD - Sat

  • DDDD - Saturday

  • M - 9

  • MO - 09

  • MON - Sep

  • MONTH - September

  • 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 短语将按 12 小时国内时钟 (12:00-12:59 1:00-11:59) 编辑时间,而不是按 24 小时时钟 (00:00-23:59) 编辑时间。

下面的样例使用上表中的日期和时间。请注意,由于逗号被读为参数分隔符,因此必须将它括在引号中。

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

该表达式返回以下结果:

Sat, 5 Sep 1998 - 4:53am

如果 time 为 0,则使用执行最外层宏时的时间和日期。这避免了对 $(getvar,date) 的冗长而费时的多次调用,并保证所有由多个 $(edtime) 宏组成的字符串都使用相同的时间。

eq

如果字符串 val1val2 相同,则字符串返回 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

通过舍弃小数部分,将实数数字截断为整数。

$(fix, value)
Getenv

返回环境变量 varname 的值。

$(getenv, varname)

如果未定义具有该名称的变量,则返回空字符串。

Getvar

返回具有给定 varname 的系统变量的值。

$(getvar, varname)
if

根据条件计算表达式。

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

如果 expr 为非零,则进行计算并返回 dotrue。否则,进行计算并返回 dofalse。请注意,不计算 expr 未选择的分支。

索引颜色

返回以逗号分隔的字符串中的指定成员。

$(index, which, string)

假定 string 参数包含一个或多个由宏参数分隔符字符(逗号)分隔的值。which 参数选择这些值中的一个值进行提取,第一项编号为 0。此函数通常用于从 $(getvar) 返回的点坐标中提取 XYZ 坐标值。

使用此函数,应用程序可从 USERS1-5 系统变量中检索存储为以逗号分隔的字符串的值。

注: USERS1-5 系统变量在 AutoCAD LT 中不可用。
nth

计算并返回由 which 选定的参数。

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

如果 which 为 0,则 nth 返回arg0,依此类推。请注意,$(nth)$(index) 之间的区别;$(nth) 将一系列参数中的一个返回给函数,而 $(index) 从作为单个参数传递的以逗号分隔的字符串中提取值。不计算 which 未选择的参数。

返回整数 val1val9 的按位逻辑或。

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

按指定的格式和精度返回实数值。

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

将给定的作为实数进行编辑,按照下面两个变量指定的格式:modeprecision。如果省略 modeprecision,则使用由 UNITS 命令选择的当前值。

strlen

返回 string 的字符长度。

$(strlen, string)
Substr

返回 string 的子串,该子串从字符 start 开始,长度为 length

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

字符串中的字符从 1 开始编号。如果省略 length,则返回所有剩余字符串。

返回 string 按当前地区的规则转换为大写的结果。

$(upper, string)
xor

返回整数 val1val9 的按位逻辑异或。

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