创建使用 AutoLISP 的命令是一种使用 AutoCAD 自定义功能的更高级的方式。
可以使用 AutoLISP 变量和表达式来创建用于执行复杂任务的宏。要在宏中有效地使用 AutoLISP,可将 AutoLISP 代码放在一个单独的 MNL 文件中。AutoCAD 在加载 CUIx 文件时,会加载同一位置的同名 MNL 文件。
可以在“自定义用户界面”(CUI) 编辑器中指定其他要加载的 AutoLISP 文件。创建使用 AutoLISP 的命令是一种使用 AutoCAD 自定义功能的更高级的方式。请仔细研究以下样例和《AutoLISP Reference》与《AutoLISP Developer's Guide》中的信息。要访问其他帮助资源,请在“帮助”按钮右侧的“信息中心”工具栏上单击下拉箭头。通过积累经验和进行练习,用户会有效地使用这种功能。
(menucmd "Gcustomizationgroup.element_ID=|")
仅当菜单宏是 AutoCAD 菜单栏上的菜单的一部分并且可用时,以上语法才有效。有关此语法的详细信息,请参见《AutoLISP Reference》。
使用块插入预设的应用程序可提供如下命令:[Set WINWID][Set WALLTHK][Insert Window]
^C^C^P(setq WINWID (getreal "Enter window width: ")) ^P
^C^C^P(setq WALLTHK (getreal "Enter wall thickness: ")) ^P
^C^C_INSERT window XScale !WINWID YScale !WALLTHK
此代码将插入名为“window”的块,并将其 X 轴缩放为当前窗口的宽度,将其 Y 轴缩放为当前墙面的厚度。在本例中,实际的值来自用户定义的 AutoLISP 符号 WINWID 和 WALLTHK。该窗户的旋转角由用户决定,因此它可以在墙上旋转。
^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)
^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)
以下命令将提示输入两个点,然后用指定的点作为对角点绘制一个矩形多段线。
^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