DIESEL(DirectInterpretivelyEvaluatedStringExpressionLanguage)是指“直接解释求值的字符串表达式语言”。使用的DIESEL可以控制AutoCAD系统变量MODEMACRO的值,也可用来编写菜单宏,但只能用来处理字符串。
  DIESEL的宏表达式格式如下:
  $(字符串函数名,函数参数1,函数参数2…)
  其中,根据函数的不同,函数参数的个数可以为零或者多个,但最多为9个。在宏表达式的不同元素之间,不可以有任何空格。所有的宏表达式都必须以“$”符号开头。
  可以在DIESEL中使用的函数如表35-1所示。
  表35-1DIESEL函数一览表  函数名  格式  说明     $( ,val1,val2,…)  返回字符串为全部数字之和  -  $(-,val1,val2,…)  返回字符串为val1减去其他所有数字之差  *  $(*,val1,val2,…)  返回字符串为全部数字之积  /  $(/,val1,val2,…)  返回字符串为val1除以其他所有数字之商  =  $(=,val1,val2)  如果两个数字val1和val2相等,则返回字符串为1,否则为0  %26lt;  $(%26lt;,val1,val2)  如果数字val1小于数字val2,则返回字符串为1,否则为0  %26gt;  $(%26gt;,val1,val2)  如果数字val1大于数字val2,则返回字符串为1,否则为0  !=  $(!=,val1,val2)  如果两个数字val1和val2不相等,则返回字符串为1,否则为0  %26lt;=  $(%26lt;=,val1,val2)  如果数字val1小于等于数字val2,则返回字符串为1,否则为0  %26gt;=  $(%26gt;=,val1,val2)  如果数字val1大于等于数字val2,则返回字符串为1,否则为0  and  $(and,val1[,val2,...,val9])  返回整数val1~val9的按位逻辑与  angtos  $(angtos,value[,mode,precision])  按指定的格式和精度返回角度值(注1)  表35-1DIESEL函数一览表  edtime  $(edtime,time,picture)  返回基于指定图片的格式化的日期和时间(注2)  eq  $(eq,str1,str2)  如果两个字符串str1和str2相同,则字符串返回1;否则返回0  eval  $(eval,str)  将一个字符串传给DIESEL计算器,并返回计算结果  fix  $(fix,value)  返回一个实数数字的整数部分  getenv  $(getenv,varname)  返回环境变量varname的当前值;对于未定义的环境变量,则返回空字符串  getvar  $(getvar,varname)  返回系统变量varname的值  if  $(if,expr,dotrue[,dofalse])  如果expr非零,则计算并返回dotrue的值;否则,计算并返回dofalse的值  index  $(index,which,string)  返回由which选定的、以逗号分隔的字符串中指定的成员,其中第一项编号为0  linelen  $(linelen)  返回用户所能见到的最长状态栏的字符长度。  nth  $(nth,which,arg0[,arg1,...,arg7])  计算并返回由which选定的参数的值,其中第一项编号为0  or  $(or,val1[,val2,...,val9])  返回整数val1~val9的按位逻辑或  rtos  $(rtos,value[,mode,precision])  按指定的格式和精度返回实数值  strlen    返回字符串的字符长度  substr  $(substr,string,tart[,length])  返回字符串string的子串,该子串从字符start开始,长度为length。  字符串中的字符从1开始编号;如果length被省略,则返回从字符start开始、到string末尾为止的子串  upper  $(upper,string)  返回字符串string的大写  xor  $(xor,val1[,val2,...,val9])  返回整数val1~val9的按位逻辑异或  注1该函数根据参数“mode”和“precision”指定的格式,给定的参数“value”作为角度值进行编辑,如果参数“mode”和“precision”被省略,则使用由“unites”命令指定的当前值。参数“mode”的取值及其含义见表35-2。
  表35-2“mode”的取值及其含义  Mode值  字符串格式  0  度  1  度/分/秒  2  百分度  3  弧度  4  勘测单位  注2该函数返回基于指定图片的格式化的日期和时间。
  其中,“time”参数为给定的AutoCAD日期,通常使用函数“$(getvar,date)”来获取;
  “picture”参数由日期和时间的特定表示法替代的格式短语组成。格式短语的定义如表35-3所示。所有不能解释为格式短语的字符将被完整地复制到函数返回结果中。
  表35-3“edtime”函数格式短语定义  格式  输出示例  格式  输出示例  D  9  H  5  DD  09  HH  05  DDD  Tue  MM  47  DDDD  Tuesday  SS  17  ^M  6  MSEC  506  MO  06  AM/PM  AM  MON  Jun  am/pm  pm  MONTH  June  A/P  P  YY  01  a/p  p  YYYY  2001      例如以如下格式使用该函数:下例使用上表中的日期和时间。
  $(edtime,$(getvar,date),DDD","DDMONYYYY-H:MMam/pm)
  它可能的返回结果为:
  Tue,9Jun2001-5:47pm
  注意“picture”参数中逗号必须放在引号中,否则它将被当作参数分隔符。