- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈基于AutoLISPAutoCAD二次开发技术
浅谈基于AutoLISPAutoCAD二次开发技术
[摘要] 在以AutoCAD制图的工程应用中,经常需要开发一些符合工程需求的AutoCAD工具。AutoLISP语言是一种对AutoCAD进行二次开发的灵活手段。本文通过一个从上到下逐行写文本的简单程序,探讨了基于AutoLISP的AutoCAD二次开发程序设计的基本步骤和具体实现过程。
[关键词] AutoCAD AutoLISP 二次开发
AutoCAD是由美国Autodesk公司开发的通用计算机辅助绘图和设计软件包,它具有易于掌握、使用方便、体系开放等特点。已广泛应用于机械、建筑、电子、土木工程、轻工等各个领域。目前AutoCAD最新的版本是AutoCAD2006。
一、AutoLISP及二次开发的概念
AutoLISP 语言是嵌入在AutoCAD内部的LISP编程语言,它是LISP语言与AutoCAD有机结合的产物。AutoLISP的嵌入使AutoCAD真正成为能进行计算机辅助设计、绘图的CAD软件。
在使用AutoCAD制图中,大量操作都是通过鼠标点击控件和键盘输入相应参数组合实现的。有时在制图过程中会需要做大量重复的操作,这些操作又具有一定的规律。那么,便可以通过AutoLISP开发出AutoCAD中可以使用的自定义控件,在点击该控件后,大量繁琐的执行过程交由后台执行,用户仅需输入一些必要的参数,即可实现制图效果。这种方法就是所谓的“二次开发”。显然,二次开发能够提高工作的效率和减轻工作量。
二、使用AutoLISP进行二次开发的实例及过程剖析
(一)题目。
下面通过编写一个从上到下逐行写文本的小程序段来简要分析AutoLISP的开发过程。题目要求如下:
1. 用户只需点击一个自定义工具按钮,系统即会提示用户输入首行文本所在位置、相邻两行文本偏移量、文本高度这三个参数。其中,首行文本所在位置由鼠标在屏幕上点击获得,文本高度默认值为4。
2. 用户依次输入文本,回车表示结束当行输入。
3. 当所有文本输入结束后,按“Esc”键结束退出。AutoCAD回到等待命令输入状态下。
(二)题目编制依据。
设计人员经常会遇到一些“填表”的工作,譬如在电力系统设计中,工作人员现场测得各电力杆的间距,需要在AutoCAD中将其制成电子表格,在表格中从上到下依次填制数据。传统的办法就是,先用“Array”或“Copy”给每个空格都填上一个任意的数据,然后依次修改各个数据。使用这种方法填制数据需要频繁地交叉使用鼠标和键盘输入,如果要填制的电力杆多达上千根,那么设计人员的工作量将非常大。
如果编制出该控件,那么用户除输入三个必要参数外,只需依次输入各行数据即可,并且如果能够保证输入数据的准确性,设计人员甚至可以不看屏幕,只需看着记录文本即可实现快速录入,从而大大简化工作、压缩工作量、提高工作效率。
需要说明的是,在从AutoCAD2005始,软件中已增加了表格的功能,因此上述所提的困难主要是针对老版本AutoCAD的。但是考虑到本文仅仅是浅要剖析AutoLISP二次开发的过程,采取该程序例题作探讨仍然是合适的。
(三)程序流程及代码。
本例流程图如下所示:
在AutoCAD的环境变量中,cmdecho是控制命令回显的参数,将cmdecho设置为“0”后,可以屏蔽命令回显。由于程序执行时,其实是在后台频繁调用各种CAD命令进行制图,如果不屏蔽,则调用的各种命令都将在CAD主窗台下面的命令栏里滚动显示,造成命令行频繁刷屏,虽然没有影响,但却属于无用信息,因此需给予屏蔽。
环境变量osmode是控制捕捉的参数,将osmode置“0”后,捕捉状态即被屏蔽。如果没有屏蔽捕捉状态,当用户用鼠标点取文本起始位置时,往往会误捕捉到附近的交点、端点等等地方,造成不便。
另外,这两个变量只能在该程序段中置零,程序执行完必需予以还原,否则程序执行完之后,将存在没有命令回显和捕捉开关必须重设的麻烦。
在初始化环境变量后,就必需依次输入三个重要参数:起始位置、行距、文字高度。其中起始位置由用户在CAD主窗口用鼠标点取,而行距和文字高度,由用户键盘输入,在这文字高度问题上,当程序从键盘上可以获得一有效数字时,即将其设为文字高度,如果用户在该部分直接回车跳过,那么系统将默认文字高度为4。同理,该方法对行距调整也可适用。
在初始化及提供参数结束的情况下,用户可以逐行输入文本,回车表示结束一行文本录入,当一行文本输入结束后,程序对该行文本进行分析,如果发现所获得的文本不为空,则输出该行文本,并重新回到等待输入的状态下,等待新的输入。
您可能关注的文档
- 浅谈在水利工程中使用AutoLISP语言二次开发前景.doc
- 浅谈在水利工程测量存在问题和处理对策.doc
- 浅谈在欠发达供电地区实施标准计量与计量管理方面探讨.doc
- 浅谈在汉语语文教学中常见字词及单句模式.doc
- 浅谈在深圳市水务工程中开展履约评价意义及可行性.doc
- 浅谈在深基坑施工中实施专项方案重要性.doc
- 浅谈在游泳教学中培养良好水性重要性.doc
- 浅谈在游戏精神关照下小学数学教学.doc
- 浅谈在灭火与应急救援中导致消防员伤亡常见情况及相关安全注意事项.doc
- 浅谈在煤矿企业职工培训中注重创新能力培养.doc
- 机械停车库安全培训课件.pptx
- 超市安全生产培训材料课件.pptx
- 2025至2030谷物行业市场风险投资及运作模式与投融资报告.docx
- 2025-2030中国外资医院市场运营格局及投资策略分析研究报告.docx
- 2025至2030国内浓香型白酒行业市场发展分析及竞争格局及有效策略与实施路径评估报告.docx
- 电话中心客服年终总结报告.pptx
- 2025-2030中国养老服务机构行业深度发展研究与“十四五”企业投资战略规划报告.docx
- 2025-2030中国除草剂行业发展趋势及发展前景研究报告.docx
- 2025-2030中国T恤衫行业市场发展分析及发展趋势与投资前景研究报告.docx
- 2025至2030农业特色小镇行业发展研究与产业战略规划分析评估报告.docx
原创力文档


文档评论(0)