AutoCAD(AutoComputerAidedDesign)是美国Autodesk公司研制开发的一款计算机辅助设计软件,它不是一款简单的绘图工具,而是一个复杂的计算机辅助设计系统。我们可以根据他灵活的开放性对其进行二次开发定制,让它更加适用于某一具体的设计领域。
AutoCAD功能特点
【1】具有完善的图形绘制功能。
【2】有强大的图形编辑功能。
【3】可以采用多种方式进行二次开发或用户定制。
【4】可以进行多种图形格式的转换,具有较强的数据交换能力。
【5】支持多种硬件设备。
【6】支持多种操作平台。
【7】具有通用性、易用性,适用于各类用户。
为什么要对AutoCAD进行二次开发编辑
AutoCAD是目前在Windows和MAC系统中应用最为广泛、使用人数最多的CAD软件。但它只给我们提供了基础的CAD功能,如果我们想完成具体项目设计,就必须根据数据一笔笔绘制出图形,这样一旦在设计完成之后,要更改局部图形则需要重复原来的全部内容。造成了大量工作量的浪费。
如果使用AutoCAD的开发系统,我们就可以将以上的过程用程序编制出来,在需要设计时,只需一个命令就可以运行这个程序,自动完成绘图过程。显而易见,这不仅大大提高了设计效率,而且,还可以通过定制来完成某些专业化的模块,甚至大型设计软件,比如测绘行业的南方CASS软件、建筑行业的天正CAD软件等均是用AutoCAD开发系统实现的。
因此,要想让AutoCAD真正使用于某一具体领域,或让其经常完成一些重复性的工作,则必须利用AutoCAD的开发系统对其进行二次开发。
AutoCAD以其通用的格式、完善的图形绘制功能及强大的图形编辑功能在各行业计算机辅助设计方面发挥着举足轻重的作用,对其进行二次开发能以更高精度、速度的进行计算机辅助设计,提高工作效率。
如今AutoCAD支持的二次开发语言比较丰富,不管在哪种开发语言下对其进行二次开发AutoCAD的运行原理、程序设计的方法及开发思路是不变的。综合各种开发语言的性能、功能、开发周期、开发难度以及未来的趋势得出结论:在.NET(C#)环境下对其进行二次开发最为合适。
二次开发方式
AutoCAD自第一版推出,其二次开发语言及工具也在不断的涌现。
二次开发的接口原理:
开发环境对应的编程语言:
【1】编写各种用户自定义函数并形成若干LISP、ARX、VLX、ADS、DLL文件,以及一些DCL文件。
【2】建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,对于AutoCAD2000以后版本可增
加部分菜单文件,然后经交互方式加入到系统中去。
【3】在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。
【4】通过系统对话框设置某些路径。这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,大大提高工作效率。
开发环境对应的编程语言
【1】AutoLISP
AutoLISP的全名是LIST Processing Language,出现于1985年推出的 AutoCAD R2.18 中,是一种嵌入在AutoCAD内部的编程语言,是LISP原版的一个子集,一直是低版本 AutoCAD的首选编程语言。AutoLISP 是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行,对于交互式的程序开发非常方便。其缺点是继承了LISP语言的编程规则而导致繁多的括号。
【2】VisualLISP
VisualLISP是Autodesk公司在1997年14版本推出的。它是为加速AutoLISP程序开发而设计的软件开发工具,是一个完整的集成开发环境。 VisualLISP包括文本编辑器、格式编排器、语法检查器、源代码调试器、检验和监视工具、文件编译器、工程管理系统、上下文相关帮助与自动匹配功能和智能化控制台等。VisualLISP用户界面良好,用过Microsoft软件的用户只需很短的时间即可掌握它。
【3】ADS
ADS的全名是AutoCAD Development System,是AutoCAD的C语言开发系统,ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,直接利用用户熟悉的各种流行的 C 语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD 环境中直接运行的可执行文件叫做ADS应用程序。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。
【4】ObjectARX
ObjectARX是一种崭新的开发AutoCAD应用程序的工具,以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。 ObjectARX并没有包含在AutoCAD中,可在AutoDesk公司网站中去下载,ObjectARX 能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲,是一种特定的C++编程环境,包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用 AutoCAD核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受 AutoCAD 固有命令的新命令。ObjectARX的核心是两组关键的API,即AcDb(Auto CAD数据库)和AcEd(AutoCAD编译器),另外还有其它的一些重要库组件,如AcRX(AutoCAD实时扩展)、AcGi(Auto CAD 图形接口)、AcGe(Auto CAD 几何库)、ADSRX(AutoCAD开发系统实时扩展)。 ObjectARX 还可以按需要加载应用程序;使用ObjectARX 进行应用开发还可以在同一水平上与Windows 系统集成,并与其它Windows 应用程序实现交互操作。
【5】VBA
VBA即Mcrosoft office中的Visual Basic for Applications,被集成到AutoCAD中。VBA 为开发者提供了一种新的选择,也为用户访问 AutoCAD中丰富的技术框架打开一条新的通道。VBA和AutoCAD中强大的 ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。不过在2010以后的新版本中AutoCAD将不再支持VBA开发。
【6】AutoCAD .NET
从AutoCAD2006开始,Autodesk为其开发增加了.NETAPI。.NETAPI提供了一系列托管的外包类(ManagedWrapperClass),使开发人员可在.NET框架下,使用任何支持.NET的语言,如http://VB.NET、C#和ManagedC++等对AutoCAD进行二次开发。其优点是完全面向对象,在拥有与C++相匹配的强大功能的同时,具有方便易用的特点,是较理想的AutoCAD二次开发工具。
.NETAPI与传统ObjectARX的区别主要源于在.NET环境下开发应用程序与在VC环境下开发应用程序的区别。首先,在VC环境下,程序员需要自己管理内存的申请和释放,而.NET采用了垃圾回收机制,由.NET框架自行判断内存回收的时机并实行回收,从而解决了令C++程序员头痛的内存泄漏问题。也正是由于这个特点,在.NET环境下不能象在C++环境下那样利用析构函数释放其他的资源,需要程序员在程序中显式地释放。在.NETAPI中,主要通过Dispose函数进行资源的释放。
其次,ObjectARX中的各种反应器(Reactor)在.NETAPI中由外包类映射为各种事件(Event),可通过定义这些事件的响应函数来响应AutoCAD的各种操作。同时对于错误信息的处理也从函数返回值改变为通常异常来处理,使其更好地兼容.NET。由于http://VB.NET、C#等语言都是完全面向对象的,没有全局函数的概念,所以.NETAPI将ObjectARX下的全局函数封装为.NETAPI下的某些对象或对象的属性,如ObjectARX下与用户交互的系列全局函数被封装为CommandLinePrompt类。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删