AutoLisp程(chéng)序编写工具LispLink是基于CAD的(de)一款非常优秀的autolisp程序编写(xiě)工具,具有匹配括号、自(zì)动缩进、优(yōu)化(huà)程(chéng)序格式、语法高亮等功(gōng)能,不(bú)仅(jǐn)可以独立于CAD运行,还可与lsp文件相关联,方便(biàn)用户进行程序的编(biān)辑,是一款操(cāo)作方便,功能(néng)非(fēi)常强大的编程工具。
LispLink(AutoLisp程序编写工具) LispLink 是一款可独立于 CAD 运行的 AutoLisp 程序(xù)编写工具,好像也是唯一(yī)的(de)一(yī)款可(kě)与CAD自带的Visual LISP媲美(měi)的工具。它能如同VL一样可以(yǐ)将函数、变量、字符串等以不同颜色显示,匹配(pèi)括号(hào),自动缩(suō)进,优化程序格式等(děng),并有许多VL没有的功能:输(shū)入某函数后,状(zhuàng)态栏上会提示该函(hán)数的参(cān)数的情况,如(rú)个(gè)数、类型等(děng),自(zì)定义函数也可(kě)以(yǐ)做到这(zhè)点,可对lsp文(wén)件进行保(bǎo)护,也能打开由其他软件加密过的lsp文件,并可(kě)以很方便(biàn)的转至(zhì)每(měi)个定义函(hán)数,这项功能对(duì)那些包含多个(gè)子函数的(de)程(chéng)序文件特别有用。
1、AutoLISP语言是在普通的LISP语言(yán)基础上,又扩充了许多(duō)适用于CAD应用(yòng)的功能而形成的一(yī)种程序(xù)设(shè)计语言。它(tā)是一种解释性求值语言,速(sù)度较(jiào)慢,难以保密(mì),可(kě)用任何文字编(biān)辑软件(jiàn)编辑,用纯文本的格式保存。例(lì)如(rú):
(setq i 1);就是代码i值是1
(command "CIRCLE" '(0 0) 100);命(mìng)令在坐(zuò)标原点绘制(zhì)半(bàn)径100的(de)圆。
2、AutoLISP语言中的一切成分都(dōu)是以函数形式(shì)给出的,它(tā)没有语句概念或其他语(yǔ)法(fǎ)结构。执行(háng)AutoLISP程序就是(shì)执行一些(xiē)函数,再调用(yòng)其它函数。例如:
(setq pt1 (getpoint "\n请选择(zé)圆心插入点(diǎn)"))
(command "CIRCLE" pt1 100);命令这个插入(rù)点绘制圆,半径为100
3、AutoLISP把(bǎ)数据和(hé)程序统(tǒng)一表达(dá)为表结(jié)构,故可(kě)把程序当作数据来处理,也(yě)可把数据(jù)当(dāng)作程(chéng)序(xù)来执行。
例如:一条直线,起点(diǎn)坐标'(0 0),端点坐标'(1000 0),图层为0层,颜色为1【红色】这(zhè)个是一条直线的一(yī)些数据,怎么执(zhí)行变为(wéi)程序代码如下(xià):
(entmake (list '(0 . "LINE") '(8 . "0") '(62 . 1) '(10 0 0) '(11 1000 0)))
以上可以直观的看(kàn)数据,也可以粘贴到AutoCAD的命令行(háng),就绘(huì)制(zhì)出以(yǐ)上要求的直线(xiàn)。
4、AutoLISP语言中(zhōng)程序运行过程(chéng)就是对函数求值的过程,是在对函数求值的过程中实现函数的功能(néng)。在AutoCAD里(lǐ)面,所有的对象可以(yǐ)看成(chéng)是由(yóu)无数的点构成,每个(gè)点都(dōu)有(yǒu)自己(jǐ)的坐标(biāo),函数(shù)的运行就是计算出这些点(diǎn)的(de)数值,根据得(dé)到的数(shù)值进行判断(duàn)。
5、AutoLISP语言的主要控制结构是采用递归方式。递归方式的使用(yòng),使得程序设(shè)计简单(dān)易懂。例如:
(setq &k1 (entsel));选择对象
(setq &k1 (car &k1));提取图元
(setq #g1 (entget &k1));取得属性列表
(setq c0 (cdr (assoc 0 #g1)));取得图元名称(chēng)
以上是(shì)一(yī)个个的(de)写(xiě)下来,可以写成(chéng)以下:
(setq c0 (cdr (assoc 0 (entget (car (entsel))))));简单易懂
6、由(yóu)于autolisp简单,容易,所以上手很(hěn)快。编写程序后,可以大(dà)大的提高绘(huì)图效(xiào)率,有名的【天正】插(chā)件,就是绘图的好帮手(shǒu)。
7、autolisp程序(xù)也有不足的(de)地方,如(rú)提取坐标,这个只能在图(tú)元属性里面(miàn)提取,这样的话(huà)会有局限(xiàn)性,法向坐标1与-1的(de)坐标值(zhí)相同,但是(shì)图形的位置不同,造成计算坐标(biāo)的(de)困难,所以提(tí)取坐(zuò)标值(zhí),最好使用VLAX函(hán)数来提取。
由于LispLink可独立与CAD运行,故(gù)可与lsp文件相关联,随(suí)时方便对程序的编辑,这(zhè)也是(shì)本人一直使用(yòng)它(tā)的原因。与CAD自家(jiā)的VL相比,其(qí)不(bú)足之处主要在于其调(diào)试功能,因为AutoLisp最终要在CAD下使用(yòng)的。可LL与VL结合使用,平时查看、编写程(chéng)序时用LL,最(zuì)终调试(shì)时则用VL,使两者互补。
