您可以将 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 函数)的响应。

,