您可以将 DIESEL 字符串表达式用作一种方式,用来提供对使用 AutoLISP 或 ObjectARX 定义的命令的响应。
DIESEL 表达式返回字符串值(文字字符串),可以用作对标准命令、AutoLISP 和 ObjectARX? 程序以及其他宏的响应。
注: AutoLISP 和 ObjectARX 在 AutoCAD LT 中不可用。
由 DIESEL 表达式返回的值是文字字符串,它可用于响应 AutoLISP getxxx 或 ObjectARX acetGetxxx 函数调用。这使菜单项可以对当前图形条件进行求值,并将值返回 AutoLISP 或 ObjectARX 程序。
如果要加载和执行以下样例 AutoLISP 程序,程序将提示输入符号名称、大小以及在图形中的位置。
(defun C:SYMIN() ??(setq sym ????(getstring ??????" Enter symbol name: ")?? ; Prompts for a symbol name ??) ??(setq ????siz (getreal ??????????" Select symbol size: ")?; Prompts for a symbol size ????p1 (getpoint ??????????" Insertion point: ")? ; Prompts for insertion point ??) ??(command "._insert"??????????? ; Issues the INSERT command ???????????sym????????????????? ; using the desired symbol ???????????p1 siz siz 0)??????? ; insertion point, and size ?(princ)????????????????????? ? ; Exits quietly )
注: 常用的 AutoLISP 程序应该包括错误检查,以验证用户输入的正确性。
执行上一个样例时,您可以单击执行 DIESEL 表达式的用户界面元素以响应其中一个提示。例如,您可以使用表达式 $M=$(*,$(getvar,dimscale),0.375) 来使用比例因子,该因子为当前 DIMSCALE 的 3/8。
这无法使用类似的 AutoLISP 代码来完成,因为由 AutoLISP 表达式返回的值通常无法用作对 getxxx 函数调用(例如,上例中的 getreal 函数)的响应。