Ⅰ 如何使用AutoLISP语言例程
AutoLISP语言是AutoCAD的内置的编程语言。 它可以用来创建新的命令或重新定义现有的。AutoLISP语言是一个非常强大的定制工具。本文旨在说明如何加载AutoLISP语言。
你可以复制和粘贴,如下面的例子,或者你可以下载一个*.LSP的文件。开始你需要使用记事本, 因为AutoLISP *.LSP的文件只是普通的文本文件。看其他人的编写的AutoLISP语言代码是一个很好的学习方法,网上有很多提供.LSP的文件下载的。
基本过程是非常简单,如下。 有3个主要步骤(或如果有*.LSP的文件仅仅需要2步),创建lisp文件,加载lisp文件和日常运行lisp程序。
注:AutoLISP语言例程将只在完整版本的AutoCAD运行,他们不会在AutoCADLT版本运行。
创建lisp文件
复制程序代码并粘贴到Windows中的记事本。
(defunc:zone(/ss la rv i tv op en)
(while(notss)
(princ" Pick any object on the required layer: ")
(setqss(ssget)))
(initget"Length Area")
(setqrv(getkword" Would you like to measure Length/Area <Area>: "))
(and(notrv)
(setqrv"Area"))
(setqla(cdr(assoc8(entget(ssnamess0))))
ss(ssget"X"(list(cons0"*POLYLINE")
(cons8la)))
i(sslengthss)
tv0
op0)
(while(not(minusp(setqi(1-i))))
(setqen(ssnamess i))
(command"_.AREA""_E"en)
(cond((=rv"Length")
(setqtv(+tv(getvar"PERIMETER"))))
(T
(setqtv(+tv(getvar"AREA")))
(if(/=(logand(cdr(assoc70(entgeten)))1)1)
(setqop(1+op))))))
(princ(strcat" Total "rv
" for layer "la
" = "(rtostv22)
" in "(itoa(sslengthss))" polylines "
(if(/=rv"Length")
(strcat(itoaop)" with open polylines")"")))
(prin1))
现在保存文件为zone.lsp,给予它适当的文件名,并确保它有一个.LSP的文件扩展名。
加载lisp文件
打开AutoCAD选择菜单Tools——AutoLISP——Load Application….弹出对话框(如下图所示):
load unload apps
使用下面的操作来加载已保存lisp文件:
找到该lisp文件已保存的文件夹。
从列表中选择所需的文件。
单击 Load按钮。如果一切顺利,将出现一条消息说“*.lsp成功载入”。
单击Close按钮关闭对话方块。
运行AutoLISP程序
一旦lisp文件被加载,它可以在命令行运行。在运行时只需输入命令的名称(而不是文件名)。在lisp文件中开始是(defunc:zone ,所以在命令行输入zone。