这是AutoLisp入门教程的第三部分,在教程的第二部分,我们编写了一个绘制瓦楞板多段线的小程序。这个Autolisp小程序涉及了一些重要常见的函数,例如 polar , repeat 和 while 等(其语法和返回值可以参考: 常见函数1 , 常见函数2 , 常见函数3 )。
再来回忆一下我们使用这个程序的时候是如何 *** 作的:1)加载这个程序,并输入 wlb 调用这个程序;2)按照提示选取起始点,然后选取终点,屏幕上画出一条多段线;3)继续拾取起始点和终点,再次划出一条多段线线;4)若想终止程序,按 ESC 或 Enter 即可。
也许你已经想到了,这个程序的 *** 作能不能改成和仔这个样子:选取一条直线,根据这个直线的两个端点,自动生产一条多段线。这样就涉及了对AutoCAD对象属性的读取。
重点来了!!!
在入门枯棚肢教程的第三部分,我们将使用AutoLisp中相关函数对AutoCAD对象的属性进行选择、获取、修改和更新。常用的对象属性函数如下表:
对AutoCAD对象属性的修改实际上就是对AutoCAD对象属性列表的修改。
获得对象联合属性列表
编写一个chgrad.lsp程序,用来修改半径。
在原来的基础上画一个瓦没世楞板程序,要求选择一条线段,以此为轴线画一个瓦楞板。
autolisp程序可以用记事本打开,在里面【(defun c:命令 ()】,这个命令可以修改,也就是运行程序命令。
打开cad,输入命令【appload】加载程序,并加入【启动组】,这样以后打开cad就可以使用,不用重复加载。
由于插件编写的习惯不同宴圆雀,功能也略有不同。输入插件命令后,一般命令行会有提示,按提腔轮示 *** 作。晌早
AutoLISP语言是AutoCAD的内置的编程语言。 它可以用来创建新的命令或重新定义现有的。AutoLISP语言是一个非常强大的定制工具。本文旨在说明如何加载AutoLISP语言。
你可以复制和粘贴,如下面的例子,或者你可以下载一个*.LSP的文件。开始你需要使用记事本, 因为AutoLISP *.LSP的文件只迹敏是姿亏枝普通的文本文件。看其他人的编写的AutoLISP语言代码是一个很好的学习方法,网上有很多提供.LSP的文件下载的。
基本过程是非常简单,如下。 有3个主要步骤(或如果有*.LSP的文件空李仅仅需要2步),创建lisp文件,加载lisp文件和日常运行lisp程序。
注:AutoLISP语言例程将只在完整版本的AutoCAD运行,他们不会在AutoCAD LT版本运行。
创建lisp文件
复制程序代码并粘贴到Windows中的记事本。
(defun c:zone ( / ss la rv i tv op en)
(while (not ss)
(princ "\nPick any object on the required layer: ")
(setq ss (ssget)))
(initget "Length Area")
(setq rv (getkword "\nWould you like to measure Length/Area <Area>: "))
(and (not rv)
(setq rv "Area"))
(setq la (cdr (assoc 8 (entget (ssname ss 0))))
ss (ssget "X" (list (cons 0 "*POLYLINE")
(cons 8 la)))
i (sslength ss)
tv 0
op 0)
(while (not (minusp (setq i (1- i))))
(setq en (ssname ss i))
(command "_.AREA" "_E" en)
(cond ((= rv "Length")
(setq tv (+ tv (getvar "PERIMETER"))))
(T
(setq tv (+ tv (getvar "AREA")))
(if (/= (logand (cdr (assoc 70 (entget en))) 1) 1)
(setq op (1+ op))))))
(princ (strcat "\nTotal " rv
" for layer " la
" = " (rtos tv 2 2)
" in " (itoa (sslength ss)) " polylines\n"
(if (/= rv "Length")
(strcat (itoa op) " with open polylines") "")))
(prin1))
现在保存文件为zone.lsp,给予它适当的文件名,并确保它有一个.LSP的文件扩展名。
加载lisp文件
打开AutoCAD选择菜单Tools——AutoLISP——Load Application….d出对话框(如下图所示):
load unload apps
使用下面的 *** 作来加载已保存lisp文件:
找到该lisp文件已保存的文件夹。
从列表中选择所需的文件。
单击 Load按钮。如果一切顺利,将出现一条消息说“*.lsp成功载入”。
单击Close按钮关闭对话方块。
运行AutoLISP程序
一旦lisp文件被加载,它可以在命令行运行。在运行时只需输入命令的名称(而不是文件名)。在lisp文件中开始是 (defun c:zone ,所以在命令行输入zone。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)