欢迎来到天天文库
浏览记录
ID:8083552
大小:139.71 KB
页数:3页
时间:2018-03-05
《巧用autolisp,加快作图速度》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、奔/、r/乏·45·P、,一巧用AutoLISP,加快作图速度__丁∞垫了一(//。摘要期、总/本正给出了在AutoCAD环境下,用AutoIIsP编写用户程序.有效提高作图效‘率的方1去,此方法具有很大的推广价值及应用价值。期1.引言AutoLISP是一种嵌八在AutoCAD内部的LISP程序设计语言。AutolISP可使用户和AutoCAD开发者能以极强功能的高级语言编写出适合图形应用的程序和函数LISP易学易、用,十分灵活方便。由于LISI本身有着十分简洁的语法,所以编写LISP程序变得相当容易,_一
2、其程序尺寸也非常短小。六AutoCAD已经给用户提供了一个友好的作图界面及作图工具.在使用中也}分方便。但昕有时略显繁琐,若能巧妙利用AutoIISP开发相关6g功能程序,弥补这些不足,能极大地加快L学作图速度.收到事半功倍的效果。报,£下面给出了笔者在工作中积累的一点经验,供大家参考(所提供的程序对AutoCAD10.0、./一12.0版均适用)。1)2.建立精简的指令集在AutoCADR120版中,可以在ACAD.PGP文件中按照给定的格式方便地设置精简指令,如用R表示Redraw。10.0版不具备此项
3、功能,但可利用AutoLISP实现;让习惯使用10.0版的老同志也享受到此功能。格式如下:tclefunC。。rdnd1’]f)mmandc⋯and2J’程序单元,』说明:command1精简后的指令名command._.:精简前AuloCAD中的标准指令名利用上述格式,原则上可实现所有命令的精简。如使得可以用“I.”命令代替“Iine”命令(Iine命令仍可以继续使用.不受影响)。用户可以根据自己的需要,建立自己的精简指令集:Line(1)trim(t)offset(f)circle(c)·46七一六所科
4、技学报1996年第3期(总第21期)move(n1)∞rse(e)pline(p1)redraw(f)3.实现宏命令:类在画图过程中,经常要从一个层转到另一个层,下面是似标准的换层步骤:地c~mand,z/~akesetHe/0N0FF/c。Ior儿type/Freezc/ThawlLOCE/Unlook:羔necurreatIayer(0enter,:5L?/№ke/Set/~ew;ON/OFF,c。f。r儿type/FreezP/Thaw/LOCXr}。ck一Co~mflnd.{i共用四步完成从当前层(
5、center层)转换至dim层。帅说明:1、画横线的为用户输入,/表示回车-呈2、第三行尖括号内的层名为换层前的层名.不一定是centet层。在实际作图过程中.略显麻烦.可考虑用下面程序段,能方便地实现由任意层一步换至dim层。。tdefunCdd—ltcom~andLayerSdI111”)ln∞e可实现一步从任意层换至center层。仿照此格式,用户还可以根据要求编写自己的换层程序(要换的层必须已经存在)。4.标注汉字程序的改进目前所内使用的英文版AutoCAD.采用矢量汉字标注,由开发者提供了两个输入
6、程序。DDHZ.LSPPPHZ.LSP.DDHZ用于单个汉字输入,PPHZ用于批量汉字输入(批量汉字是用WPS等汉字处理软件编辑的文本格式文件)。下面仅以DDHZ.LsP程序的改造为倒。该程序采用拼音检索.十分方便.但有一个缺点:写完汉字退出该程序时,当前层变为NONE层(DDHZ.LSP程序创建的.用于存放汉字)I字塑变为汉字字型。若写完汉字后用Text(或Dtext)命令标注西文或数字时.会出现莫明其妙的汉字.得不到应有的标注。这样.就必须用Text(Dtext)中的换字型命令把字型换回STANDARD
7、。造成了不必要的麻烦.而且会经常忘记换字型等到屏幕上写出的是汉字时才如梦初醒。要改造该程序,可以这掸考虑:在DDHZ.LSP开始运行时,首先取得当前的绘图系统变量——层名,在DDHZ.LSP结束之前,将该层名设鼍成原当前层,同时将字型换回STAN—DARD。从而恢复了使用DDHZ.LSP前的绘图环境。DDHZ.ISP头部加上如下程序段:1995年第3期(第21期)七一六所科技学报·47·说明;这是一个赋值语句,将当前层名赋给变量一Layer。程序结束前恢复绘图环境的程序段:layef1STAND^RD。5.
8、结束语以上仅仅是利用Auto.LISP的几个简单实例,Auto.LISP还可方便地实现参数化绘图等十分有用的功能,在实际应用时,可将上述二、三中的程序段合成一个程序,不妨取名为my.IsP,利用ACAD.LISP能被自动装入的功能,在ACAD.LISP中加入下列语句:dfunCDHZ{rC0mdnd1-ddDD)lZ.LSP这样,可以直接使用精简指令及宏指令,就象它们是AutoCAD提供的标准命令,否则要在第一次
此文档下载收益归作者所有