状态的检索、计算和显示均由 DIESEL 函数执行。
所有的函数最多只能包含 10 个参数,包括函数名本身。
函数 | 说明/样例 |
---|---|
+(加) | 返回数字 val1、val2、…、val9 的和。 $(+, val1 [, val2, …, val9]) 如果当前厚度被设定为 5,则以下 DIESEL 字符串返回 15。 $(+, $(getvar, thickness), 10) |
-(减) | 返回从数字 val1 中减去 val2 至 val9 的结果。 $(-, 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。如果 USERR1 中存储的值为 10.0 且 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) |
并且 | 返回整数 val1 到 val9 的按位逻辑与。 $(and, val1 [, val2,…, val9]) |
angtos | 按指定的格式和精度返回角度值。 $(angtos, value [, mode, precision]) 按 mode 和 precision 指定的格式将给定的 value 作为角度值进行编辑,与类似的 AutoLISP 函数的定义一样。如果 mode 和 precision 被省略,则使用由 UNITS 命令选择的当前值。 注: AutoLISP 在 AutoCAD LT 中不可用。 可应用以下 mode值:
|
Edtime | 返回基于指定图片的格式化的日期和时间。 $(edtime, time, picture) 编辑由 time 指定的 Julian 日期(例如,根据给定的 picture 从 $(getvar,date) 获取)。picture 由被具体日期和时间代替的格式短语组成。不能解释为格式短语的字符被完整地复制到 $(edtime) 的结果中。格式短语的定义如下表所示。 例如,假定日期为 1998 年 9 月 5 日星期六,时间为 4:53:17.506,则 edtime 的相应格式短语和输出样例如下所示:
如上表所示,应该输入完整的 AM/PM 短语。如果仅使用 AM,则 A 将按字面复制而 M 将返回当前月份。 如果图片中出现任何 AM/PM 短语,则 H 和 HH 短语将按 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 | 如果字符串 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 | 通过舍弃小数部分,将实数数字值截断为整数。 $(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) 返回的点坐标中提取 X、Y 或 Z 坐标值。 使用此函数,应用程序可从 USERS1-5 系统变量中检索存储为以逗号分隔的字符串的值。 注: USERS1-5 系统变量在 AutoCAD LT 中不可用。 |
nth | 计算并返回由 which 选定的参数。 $(nth, which, arg0 [, arg1,…, arg7]) 如果 which 为 0,则 nth 返回arg0,依此类推。请注意,$(nth) 和 $(index) 之间的区别;$(nth) 将一系列参数中的一个返回给函数,而 $(index) 从作为单个参数传递的以逗号分隔的字符串中提取值。不计算 which 未选择的参数。 |
或 | 返回整数 val1 到 val9 的按位逻辑或。 $(or, val1 [, val2,…, val9]) |
Rtos | 按指定的格式和精度返回实数值。 $(rtos, value [, mode, precision]) 将给定的值作为实数进行编辑,按照下面两个变量指定的格式:mode 和 precision。如果省略 mode 和 precision,则使用由 UNITS 命令选择的当前值。 |
strlen | 返回 string 的字符长度。 $(strlen, string) |
Substr | 返回 string 的子串,该子串从字符 start 开始,长度为 length。 $(substr, string, start [, length]) 字符串中的字符从 1 开始编号。如果省略 length,则返回所有剩余字符串。 |
上 | 返回 string 按当前地区的规则转换为大写的结果。 $(upper, string) |
xor | 返回整数 val1 到 val9 的按位逻辑异或。 $(xor, val1 [, val2,…, val9]) |