AutoCAD的二次开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈AutoCAD的二次开发
林学与园林学院 06园林傅欣蕾
摘要:通过对AutoCAD软件发展史的概述,从中归纳出CAD的总体发展趋势。从当今各行业所需的CAD专业化功能,提出对其进行二次开发的意义及具体实施步骤。
关键词:AutoCAD 发展史二次开发专业化功能
1.AutoCAD的发展简史:
1.1、第一次CAD技术革命—曲面造型系统
60年代出现的三维CAD系统只是极为简单的线框式系统。这种初期的线框造型系统不能有效表达几体数据间的拓扑关系。进入70年代,随着贝赛尔算法促使人们用计算机处理由线及曲面问题变得可行。
1.2、第二次CAD技术革命—实体造型技术
1979年世界上第一个完全基于实体造型技术的大型CAD软件发布。由于实体造型技术能够精确表达零件的全部属性,在理论上有助于统一CAD、CAE、CAM的模型表达,给设计带来了惊人的方便性。
1.3、第三次CAD技术革命—参数化技术
1.4、第四次CAD技术革命—变量化技术
成功运用参数化技术之后,开发人员发现了参数化技术尚有许多不足之外。首先,“全尺寸约束”这一硬性规定就干忧和制约着设计者创造力及想象力的发挥。再者,如在设计中关键形体的拓扑关系发生改变,失去了某些约束特征也会造成系统数据混乱。
1993年全新体系结构的I-DEAS Master Series软件问世,它第一次将变量化付诸实践。变量化技术既保持了参数化技术的原有优点,同时又克服了它的不足之处。无疑,变量化技术成就了SDRC,也驱动了CAD发展的第四次技术革命。
1.5、CAD的发展方向
任何一种软件都是有缺陷而非完美无瑕的。AutoCAD这一软件也是一样,只有在不断的发展中,找到自己的不足力求弥补,才能趋向臻化,达到一种完美。
纵观CAD的发展史,我们可以大略地看出该软件是朝着“人工智能化”、“专业应用化”等方向发展的。
而实现这样的发展方向的最佳手段就是通过对CAD的二次开发。将各类专业设计技术研制成CAD系统的各类设计工具和知识,从而使使用者能按照专业设计的方向进行,可以大大提高CAD的设计效率。
2.AutoCAD二次开发的意义
二次开发就是把你经常要用的图形用CAD的编程语言编成程序,要用时直接输入程序名就可以进行。
AutoCAD的二次开发即为CAD软件的本土化,使之更适应专业用途,减少重复劳动,建立企业内部统一标准,因为CAX软件都是面向所有工业部门的,为了能满足所有人的需要,所以对于特定的企业、行业来说,有的功能用不上、有的功能不够用。所以要做二次开发,来满足不同特定企业、行业的需要。
现通用的UG建模软件,仅为使用者提供了一般的功能,而具体的功能和开发者自己的算法要应用进去,就要通过二次开发了。通过二次开发,我们可以回避专业的计算机图形学的造型环境的构建,直接针对专门的问题,解决起来就方便了许多。
3. CAD二次开发的内容
(1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。
(2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。
(3)在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。
(4)通过系统对话框设置某些路径。这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。
4. CAD二次开发的思路
1)首先获得所在机器AutoCAD2000系统的安装路径;
2)寻找菜单文件AutoCAD2000\\support\\acad.mnu,打开文件并将要添加的内容加至末尾;3)寻找LISP文件AutoCAD2000\\support\\acad2000doc.lsp,打开文件并将要添加的内容加至末尾;
4)创建一个预先命名的子目录,将所有二次开发形成的各类文件拷入;
5)给出信息框,告知安装成功,如有问题则告知安装失败。
5. CAD的二次开发工具
主要选用一些标准件和常用件,因为使用的频率高,所以有必要做成能文便使用的工具。
现列举如下常用工具:
1)Visual LISP
适于描述人机交互操作的过程,善于编写模拟设计师思路的专业设计程序。对于各种用户输入的接收、错误识别与恢复等操作具有相当优秀的功能,尤其是善于充分发挥CAGD功能的巨大作用。过去AutoLISP 最大的不足是不能编译,现在已经被 VLISP 圆满解决了,编译成VLX 的老的AutoLISP 程序,其效率比解释运行条件下提高了5~8倍。
2)ADS
曾经是在 AutoLISP 之后的一种用户程序,在 R14 之前的AutoLISP 程序虽然是解释运行,仍比 ADS 程序快一些,因为实际上ADS是用AutoLISP与AutoCAD交互。自AutoCAD R14已经不再支持和发展 ADS程序设计模式,同时却增加了Visual LISP,以进一步提高AutoLISP 的整体性能。
3)VBA
自 R14开始嵌套在AutoCAD 之中的程序设计方法,VBA是根据微软公司的规则,在每一个Windows 下的应用软件都必须具有的功能。
4)ObjectARX
由于ARX是使用Visual C++作为基本程序设计语言,无论其效率、数据处理和软硬件的控制能力都是最好的,是唯一圆满地针对多图档环境的程序设计方法。但是,与AutoCAD命令交互的功能,ARX与VBA并没有实质性的区别,很难借用AutoCAD强大的CAGD功能。另外,要想真正发挥这种开发模式的作用,对于程序设计者的要求(计算机专业知识、软件专业知识等等)也较高,而且程序运行风险较大。要求程序自己做好各种数据的测试,自己设计好各种条件下的出错处理