创建使用 AutoLISP 的命令是一种使用程序的自定义功能的更高级的方式。
可以使用 AutoLISP 变量和表达式来创建用于执行复杂任务的宏。程序在加载 CUI/CUIx 文件时,还会加载同一位置的同名 MNL 文件。将 AutoLISP 代码放置在 MNL 文件中是一种有效的方法,用来加载可以用于宏的自定义命令。
此样例包含三个用于插入块的命令宏。
命令宏提示输入窗口宽度。
^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
使用以下语法,可以通过编程方式执行下拉菜单项的宏:
(menucmd "Gcustomizationgroup.element_ID=|")
仅当菜单项是程序菜单栏上的菜单的一部分并且可用时,以上语法才有效。