关于使用宏中的 AutoLISP 
创建使用 AutoLISP 的命令是一种使用程序的自定义功能的更高级的方式。  
 可以使用 AutoLISP 变量和表达式来创建用于执行复杂任务的宏。程序在加载 CUI/CUIx 文件时,还会加载同一位置的同名 MNL 文件。将 AutoLISP 代码放置在 MNL 文件中是一种有效的方法,用来加载可以用于宏的自定义命令。  
注: 仅针对 Windows,可以在“自定义用户界面 (CUI)”编辑器中指定其他要加载的 AutoLISP 文件。创建使用 AutoLISP 的命令是一种使用程序的自定义功能的更高级的方式。通过积累经验和进行练习,用户会有效地使用这种功能。  
 
样例
- 预设值
 
- 
此样例包含三个用于插入块的命令宏。  
命令宏提示输入窗口宽度。  
^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P 
命令宏提示输入墙厚度。  
^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P 
命令宏将插入名为“窗口”的块,并提示输入插入点和旋转。  
^C^C_INSERT window XScale !WINWID YScale !WALLTHK 
块的 X 轴表示当前窗口的宽度,Y 轴表示当前墙厚度。  
 
- 调整夹点的大小
 
- 
此样例包含两个命令宏,可以增加或减小 GRIPSIZE 系统变量的当前值。  
命令宏将 GRIPSIZE 系统变量的值增加 1。  
^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ) 
命令宏将 GRIPSIZE 系统变量的值减小 1。  
^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ) 
要将有效性检查添加到这些命令宏中,GRIPSIZE 系统变量的值不能小于 0 和大于 255。  
 
- 提示用户输入
 
- 
 以下样例将提示输入两个点,然后用指定的点作为对角点绘制一个矩形多段线。  
^P(setq a (getpoint "Enter first corner: "));\+
(setq b (getpoint "Enter opposite corner: "));\+ 
pline !a (list (car a)(cadr b)) !b (list (car b)(cadr a)) c;^P 
 
- 调用指定给下拉菜单项的宏(仅适用于 Windows)
 
- 
使用以下语法,可以通过编程方式执行下拉菜单项的宏:  
(menucmd "Gcustomizationgroup.element_ID=|") 
仅当菜单项是程序菜单栏上的菜单的一部分并且可用时,以上语法才有效。  
 
 
 
 |