在宏中使用 AutoLISP (概念)

AutoCAD 2008

 
在宏中使用 AutoLISP
概念 快速参考
 
 
 

创建使用 AutoLISP 的命令是一种使用 AutoCAD 自定义功能的更高级的方式。

可以使用 AutoLISP 变量和表达式来创建用于执行复杂任务的宏。要在宏中有效地使用 AutoLISP,可将 AutoLISP 代码放在一个单独的 MNL 文件中。AutoCAD 在加载 CUI 文件时,会加载同一位置的同名 MNL 文件。

可以在“自定义用户界面”编辑器中指定其他要加载的 AutoLISP 文件。创建使用 AutoLISP 的命令是一种使用 AutoCAD 自定义功能的更高级的方式。请仔细研究以下样例和《AutoLISP Reference》《AutoLISP Developer's Guide》中的信息。 要访问其他帮助资源,请依次单击“帮助”菜单 “其他资源”“开发人员帮助”通过积累经验和进行练习,用户会有效地使用这种功能。

调用宏

要以程序方式执行下拉菜单宏,请使用以下语法:

(menucmd "Gmenugroup.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)

要向这些命令中添加有效性检查,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