浅谈基于AutoLISPAutoCAD二次开发技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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。同理,该方法对行距调整也可适用。   在初始化及提供参数结束的情况下,用户可以逐行输入文本,回车表示结束一行文本录入,当一行文本输入结束后,程序对该行文本进行分析,如果发现所获得的文本不为空,则输出该行文本,并重新回到等待输入的状态下,等待新的输入。

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档