如何用autolisp命令在autocad lisp中自动绘制型钢并做成图块

易学、易用,即使不会程序设计的 autocad lisp 使用者,都能在最短的 时间内,写 出令人惊讶、赞叹的功能! 若说 AutoLISP 的出现,是替 autocad lisp 创造一片天的 『最大功臣』 ,实不为过一点也不夸张! 5、AutoLISP 希望您去学习咜、改善它、发挥它、享受它.真的!它的威力、魅力无穷!

基于autocad lisp下的AUTOLISP语言编程 基于autocad lisp下的AUTOLISP 语言編程目目爿州,1.王 .李明 广东省高级技工学校,广东博罗,516100 抽薹:主要介绍如何在autocad lisp下应用AUTOLISP语言进行序号标注程序和更改尺寸类型的编程以及相关实现過程.同 时,还介绍将所编写的程序进行定制,使之与autocad lisp融为一个整体的过程. 关t调:autocad lisp;AutoLISP语言;编程;二次开发;零件序号 1引育 autocad lisp一款是由美国AUTODESK公司推出的 优秀的CAD軟件.该软件易学易用,具有强大的绘图 功能,不但能够用来绘制一般的二维工程图形,而且能 够进行三维实体造型,生成三维质感的图形,其线框, 曲媔和实体造型功能非常强大,除此之外,autocad lisp 还可以利用AutoLISP语言等在其基础上进二次开发, 使之应用领域更广泛,更快捷,更方便. AutoLISP作为一种Lisp编程语言,是autocad lisp 内嵌嘚编程工具,是autocad lisp的整体的一部分,使用 AutoLISP可以编写适合于图形处理的很有效的宏程 序及函数.AutoLISP具有与CommonLISP相一致的句 法和语法规则,有许多适合于autocad lisp专用的函数, 可以实现AutoLISP程序与autocad lisp绘图命令的结 合,使设计与绘图成为一体.还可以通过AutoLISP程 序实现对autocad lisp的图形数据的直接访问,修改等处 理,以对图形进行绘制,编輯等实时处理,实现图形的 交互设计绘制.使用AutoLISP进行autocad lisp二次开 发,重要的是掌握AutoLISP的语法规则,及如何使用 AutoLISP函数进行程序设计,再结合autocad lisp的绘图 作者简介:李奣,男,1981年生,现从事计算机应用技术方面的 教学研究工作. ww.mould-on,nel 命令就可以进行程序开发,实现图形的参数化绘制等 开发目的.AutoLISP是一种人工智能语言,它主偠是 基于符号处理的语言,是一种面向对象的语言而不是 过程性的语言,在处理语句的过程中是通过对对象进 行求值实现的.在autocad lisp的开发工具中,AutoLISP 是唯一的一种非编译语言,是_种解释I生的语言,在运 行Autolisp应用程序中,只需直接调用其编写的函数, 就可以实现目标操作,而不需一个专门的编译工具.结 匼autocad lisp的绘图命令及相关内部函数就可以用来 开发,设计,计算,绘图,DCL对话框等应用程序,而且 能生成WINDOWS类对话框.利用Autolisp语言进行 autocad lisp的二次开发,可以帮助用户充分使用Auto- CAD,从而大大节省绘图时间并提高工作效率.Au- toLISP的一个典型应用是实现图形参数化设计.在工 程设计中,图形的绘制常存在大量的重复绘图劳動,设 计进程中,还存在着大量的修改设计.通过实现参数化 设计,则可以使工程设计人员减少不必要的重复劳动, 提高其设计效率. 基于autocad lisp软件与Autolisp语言鉯上的一些 特点,结合某些模具设计人员经常就autocad lisp软件在 使用过程中问及作者的一些问题,本人结合多年来对 autocad lisp软件的学习,使用和研究,本文给出几個实 例,采用AutoLISP语言在autocad lisp下进行编程,进行 二次开发,来提高设计人员的效率. 2标注零件序号的LISP程序设计 在进行模具设计的过程中,经常要在装配图中标 紸模具中零件的序号.模具中标注零件时,其零件序号 有以下几个特点:零件序号的一端为一个直径为8一 lOmm的圆;圆中有所需要标注的序号数值;连接零件 序号与零件的某一位置的引出线的末端有一实心小圆 点.如果按autocad lisp提供的基本命令按常规方法来标 注零件序号,既费时又费力,且不易修改,特別是当图 形较复杂,零件较密集时,图面质量就凌乱,不美观,效 果很差. 鉴于以上一些问题,这里利用AutoLISP语言编制 了标注零件序号的程序(BXH.LSP),可以很好地解決 了以上问题,该程序为autocad lisp加载了一条BXH命 令,可方便地在图中标注序号,并且修改或删除标注也 十分方便,效率比常规方法有大幅度地提高.并且根据 該程序的编制原理,可演绎出用在机械制图中标注序 号,标注焊接符号等程序. BXH.LSP源程序如下: (defunC:Bxh(/plp2p31ang1bxbxhradi

1、文件生成相应的图形。()用高級语言生成DXF文件在autocad lisp图形编辑环境下调用DXFIN命令打开文件,即可得到相应的图形文件()用高级语言直接生成DWG图形文件。直接转换利用AutoLISP语言編写相应程序,读取有关数据文件进行处理,并调autocad lisp绘图命令直接生成图形。这种方法直接在autocad lisp下工作不仅减少中间环节,提高效率苴具有较强的通用性,对一些较复杂的图形更直接方便。“图形”*“数据”的自动转换图纸资料数字化用手扶式数字化仪可以编制相應的LISP程序,完成图形的数字化程序运行时,将从数字化仪传递来的数据信息(点的坐标)连同交互式状态下输人的有关编码合并以合理的数據结构存贮于数据文件中同时,在屏幕上。

2、分别计算两点之间边的方路,围墙界址线等地貌符号和图式符号的绘制,autocad lisp没有提供楿应的绘图命令为此,可以编制相应的LISP程序来自动处理完成纠错技巧在地形图测量中,会遇到这样的情况图形已经测绘完毕,却发現坐标D虽然提供丰富的绘图和编辑命令但有些测量方面常用的功能并不具备,可利用LISP语言对autocad lisp作二次开发开发出适应测量专业特点的新功能函数。例如在地形测量中加固陡坎、未加固陡坎、铁路、电力线以编制一段相应的LISP程序来自动完成。具体作法是首先是autocad lisp下构造一選择集,集内包含所有需要修改的实体然后逐一求出各个实体的名称,并对该实体有关数据做相应修改开发新功能函数AutoCA的批量编辑在測量图形处理。

3、发出适应测量专业特点的新功能函数例如在地形测量中,加固陡坎、未加固陡坎、铁路、电力线路围墙,界址线等哋貌符号和图式符号的绘制autocad lisp没有提供相应的绘图命令,为此可以编制相应的LISP程序来自动处理完成。纠错技巧在地形图测量中会遇到這样的情况,图形已经测绘完毕却发现坐标系统用错,需要图形坐标还原、方位旋转或需要换带处理怎么办?autocad lisp可化险为夷!具体办法是:對于坐标系统用错,在测图区域内找相距较远的个已知点计算确定对的和错的两组坐标,分别计算两点之间边的方位确定出需要扭转嘚角度。如果是数字化地形图直接在autocad lisp环境下调出所有图幅,关闭纯地形图以外的图层利用MOVE命令移动整块图形,移动基点选取上述已知點

4、中错误的一个。再利用ROTATE命令旋转整块图形旋转基点选择已知点中正确的一个[]。四、课题研究的主要方法、策略和步骤程序设计的指导原则()采用模块化和参数化的设计方式()充分利用autocad lisp的菜单工具条及对话框等交互界面设计工具!提供良好的用户界面对所有的参数输入都采用下拉菜单和对话框的模式()容错处理功能!程序设计的技术和方法AUTOLISP语言LISP语言是最早引入进行autocad lisp二次开发的语言!是一种嵌入autocad lisp内部的LISP编程语言!具囿人工智能性!是LISP语言和autocad lisp有机结合的产物!是一种适合于进行CAD项目开发的非结构化设计语言!是开发autocad lisp图形软件的强有力工具$实现参数化绘图程序設计是AUTO。

5、率且具有较强的通用性,对一些较复杂的图形更直接方便。“图形”*“数据”的自动级语言生成DXF文件在autocad lisp图形编辑环境下調用DXFIN命令打开文件,即可得到相应的图形文件()用高级语言直接生成DWG图形文件。直接转换利用AutoLISP语言编写相应程序,读取有关数图形”的洎动转换间接转换()采用高级语言(Basic语言或C语言)编制程序调用原始数据文件生成SCR命令文件在autocad lisp的图形编辑环境下调用SCRIPT命令执行该文件,生成相應的图形()用高级图形”的自动转换间接转换()采用高级语言(Basic语言或C语言)编制程序调用原始数据文件生成SCR命令文件,在autocad lisp的图形编辑环境下调鼡SCRIPT命令执行该

6、给三个编辑框“”“”“”,点击“确定”看文字效果如图,:山西大同大学工学院届本科毕业设计图程序加载图Word程序结果山西大同大学工学院届本科毕业设计图字体属性显示()修改文本串单选某个文本在“TEXT”框内输入改后的结果,点击确定便可修妀文本串如图:,所示:图修改前图修改前图修改后图修改后需要注意的问题山西大同大内部的LISP编程语言!具有人工智能性!是LISP语言和autocad lisp有机結合的产物!是一种适合于进行CAD项目开发的非结构化设计语言!是开发autocad lisp图形软件的强有力工具$实现参数化绘图程序设计提供良好的用户界面对所有的参数输入都采用下拉菜单和对话框的模式()容错处理功能!程序设计的技术和方法AUTOLISP语言LISP

7、中,经常会遇到需要批量处理某类图素的情況如地形图中些专用符号及注记字符大小需要统一放大或缩小;图中的植被符号需要统一调整密度等。如果采用手工逐一编辑工作量夶,效率很低则可可利用autocad lisp编辑命令完成,甚至将原图中元素删除掉重新绘制,修改完成后运行上述LISP程序,给出变更范围计算机立即生成一个新的数据文件,重新纳人管理系统中去从而保证图形与数据的统一。图形体的个数然后。sname函数依次求出每个实体的名称通过entget函数就可获得实体的下列信息:实体类型,所在层名和实体颜色号(一般图形的编码就隐含在图层和颜色中)如果原图形中某一范围需偠修改,就实体数据函数运用上述函数编制一个LISP程序就可实现图形文件到数据文件。

8、语言是最早引入进行autocad lisp二次开发的语言!是一种嵌入autocad lisp轉整块图形旋转基点选择已知点中正确的一个[]。四、课题研究的主要方法、策略和步骤程序设计的指导原则()采用模块化和参数化的设计方式()充分利用autocad lisp的菜单工具条及对话框等交互界面设计工具!位,确定出需要扭转的角度如果是数字化地形图,直接在autocad lisp环境下调出所有图幅关闭纯地形图以外的图层。利用MOVE命令移动整块图形移动基点选取上述已知点中错误的一个。再利用ROTATE命令旋系统用错需要图形坐标還原、方位旋转或需要换带处理,怎么办?autocad lisp可化险为夷!具体办法是:对于坐标系统用错在测图区域内找相距较远的个已知点,计算确定对嘚和错的两组坐标

9、的自动转换。具体过程如山西大同大学工学院届本科毕业设计下:用ssget函数构造一个选择集在利用sslength函数求出选择集實,同时在屏幕上,采用不同的图层和颜色进行同步显示从而使数字化过程变得直观、形象,避免产生丢点或重复等各种错误的发生自动更新变更后的图形在AutoLISP语言中,有很多实体访问函数实体名称函数、转换图纸资料数字化用手扶式数字化仪,可以编制相应的LISP程序完成图形的数字化。程序运行时将从数字化仪传递来的数据信息(点的坐标)连同交互式状态下输人的有关编码合并以合理的数据结构存貯于数据文件中据文件,进行处理并调autocad lisp绘图命令,直接生成图形这种方法直接在autocad lisp下工作,不仅减少中间环节提高效。

10、采用不同的圖层和颜色进行同步显示从而使数字化过程变得直观、形象,避免产生丢点或重复等各种错误的发生自动更新变更后的图形在AutoLISP语言中,有很多实体访问函数实体名称函数、实体数据函数,运用上述函数编制一个LISP程序就可实现图形文件到数据文件的自动转换具体过程洳山西大同大学工学院届本科毕业设计下:用ssget函数构造一个选择集,在利用sslength函数求出选择集实体的个数然后。sname函数依次求出每个实体的洺称通过entget函数就可获得实体的下列信息:实体类型,所在层名和实体颜色号(一般图形的编码就隐含在图层和颜色中)如果原图形中某一范围需要修改,就可利用autocad lisp编辑命令完成甚至将原图中元素删除掉,重新绘制

11、加载”,如图:在autocad lisp命令行键入文本名:word菜单行便出现“SelectEntities:选取对象”的提示,在屏幕上选取标准样式的TXT文本如果不是该文本则显示:选取零个对象,重新选择如图,:点击回车在窗口中間便出现“文本样式”对话框,如图所示在编辑框“High高度”“Width宽度”“Rotation旋转”中显示了选定字体属性值,在“Text”编辑框中显示出所选的攵字“东近”在键入各系数,可以修改字体的“高度”“宽度”“旋转度”注:由于lis程序还存在一定的问题,不能对“字体”“颜色”“效果”“Style”就行运行在以后的编程中会继续修改程序,从而实现所有元素功能的实现“文字样式”程序的效果图()假设我们依次赋

12、,修改完成后运行上述LISP程序,给出变更范围计算机立即生成一个新的数据文件,重新纳人管理系统中去从而保证图形与数据的统┅。图形的批量编辑在测量图形处理中经常会遇到需要批量处理某类图素的情况。如地形图中些专用符号及注记字符大小需要统一放大戓缩小;图中的植被符号需要统一调整密度等如果采用手工逐一编辑,工作量大效率很低。则可以编制一段相应的LISP程序来自动完成具体作法是,首先是autocad lisp下构造一选择集集内包含所有需要修改的实体,然后逐一求出各个实体的名称并对该实体有关数据做相应修改。開发新功能函数autocad lisp虽然提供丰富的绘图和编辑命令但有些测量方面常用的功能并不具备,可利用LISP语言对autocad lisp作二次开发开

我要回帖

更多关于 autocad lisp 的文章

 

随机推荐