您当前的位置:主页>>AutoCAD>>AutoCAD二次开发  
                           AutoCAD二次开发技术的比较

                              高月华
 摘要:介绍了AutoCAD常用的几种二次开发技术, 并对它们各自的特点进行了分析比较。
 关键词:AutoCAD; 二次开发
     Abstract: Several kinds of tools for re-development of AutoCAD were presented, and whose characteristics were analyzed and compared with each other.
Key words: AutoCAD, re-development
 1、引言
    AutoCAD作为一种通用计算机辅助设计软件, 其二维图形设计功能非常强大, 目前已广泛应用于机械、电子、电气、建筑、土木、服装等领域, 深受国内外众多工程设计人员的喜爱, 成为目前世界上应用最广的计算机辅助设计工具。尽管如此, 人们在使用过程中还是发现其存在较多的不足之处, 如对于一些特殊曲线的绘制往往较为困难, 而对于一些标准件、常用件, 虽然从结构上看它们较为相似, 但却难以采用AutoCAD提供的复制、镜像、旋转等命令来实现,而必须一笔划一笔划的绘制, 显得费时费力。AutoCAD 是一种定位与全球各大领域和各类专业的通用微机CAD 平台软件。到目前为止, Autodesk 公司已经相继推出了四代二次开发工具, 主要包括六种二次开发技术: Auto LISP, Visual LISP,ADS,VBA, Object ARX 和Dot NET,本文试图结合这几种二次开发技术进行分析比较。
 2、Auto LISP
    Auto LISP最早出现在AutoCAD R2.17 中, 是一种嵌入在AutoCAD 内部的二次开发语言, 它的全名为表处理语言(LIST Processing Language) , 来源于人工智能语言LISP, 是被解释执行的, 任何一个语句键入后就能马上执行。由于使用方便, 其一直是低版本AutoCAD的首选编程语言。Auto LISP 严格遵循其语法和惯例,但又添加了许多AutoCAD 的功能Auto desk 公司在AutoCAD 2.1 版引入Auto LISP 作为应用程序编程接口(API) , 用于扩展和自定义AutoCAD 功能,借助Auto LISP , 用户可以用适合编写图形应用程序的强大的高级语言来编写宏程序和函数, 并开发各种软件包。
    Auto LISP 具有以下优点: (1) 语言规则十分简单,易学易用; (2) 直接针对AutoCAD , 易于交互; (3) 解释执行, 立竿见影。Auto LISP 的缺点是: (1) 功能单一, 综合处理能力差; (2) 解释执行, 程序运行速度慢; (3) 缺乏很好的保护机制, 源程序保密性差; (4) LISP 用表来描述一切, 并不能很好地反映现实世界和过程, 跟人的思维方式也不一致; (5) 不能直接访问硬件设备、进行二进制文件的读写。
  3、Visual LISP (VLISP)
    Visual LISP 是Autodesk 公司为Auto LISP 提供的一个完整的开发环境, 从R14 版开始, AutoCAD 支持Visual LISP 开发工具。Visual LISP 是一个可视化的LISP 语言开发环境, 它是Auto LISP 语言的扩展和延伸。Visual LISP具有以下特性: (1)在完全可视化的开发环境下编写、调试程序。(2)Visual LISP 程序经过编译后, 提高了运行性能和保密性。(3)LISP 代码通过AutoCAD R14的Object ARX 接口,提高了程序的运行速度。(4)Visual LISP是一个被建立并装载的Object ARX 应用程序, 因而可以在AutoCAD外部装载和更新。
  4、ADS
    ADS(AutoCAD Development System)是AutoCAD 的C 语言开发系统, 是继Auto LISP后的第二代开发工具, 是从AutoCAD R14 开始引入的C 语言开发工具, ADS不是C语言的一个子集, 也不是基于C 而编译的专用语言( 如Microstation 的MDL) 但它包括了C的全部功能。本质上是一组可以用C 语言编写AutoCAD 应用程序的头文件和目标库, 它直接利用用户熟悉的各种流行的C语言编译器, 将应用程序编译成可执行的文件在AutoCAD 环境下运行, 这种可以在AutoCAD 环境中直接运行的可执行文件叫做ADS 应用程序。与Auto LISP 相比, ADS 优越之处在于: (1) 具备错综复杂的大规模处理能力; (2) 编译成机器代码后执行速度快; (3) 编译时可以检查出程序设计语言的逻辑错误; (4) 程序源代码的可读性好于Auto LISP。而其不便之处在于: (1) C 语言比LISP 语言难于掌握和熟练应用; (2) ADS 程序的隐藏错误往往导致AutoCAD , 乃至操作系统的崩溃; (3) 需要编译才能运行, 不易见到代码的效果; (4) 同样功能, ADS 程序源代码比Auto LISP 代码长很多。
  5、VBA
    Autodesk 公司自它的AutoCAD R14.01 版开始, 内置了VBA 开发工具, VBA(Visual Basic for Application)是一种嵌入AutoCAD内部基于对象的集成编程环境。已经被集成到AutoCAD2000 以后所有的版本中。VBA 具有强大的开发能力。(1)VBA 可提供强大的窗体创建功能, 为应用程序建立对话框及其他屏幕界面。(2)可创建自己的工具条。(3)可建立功能强大的模块级宏指令。(4)提供建立类模块的功能。。(5)具备完善的数据访问与管理能力。VBA 的不足之处: (1)VBA 不能像Visual LISP 那样可以随意使用AutoCAD 命令, 只能像脚本文件的模式, 以字符串的方式向AutoCAD 命令发送一串响应, 这个字符串的内容也只要在自己的程序中生成和进行数据转换。(2)由于VBA 是以对象作为数据处理的基本单元的, 因此像Trim Extend 之类的命令都不能真正实施, 要想完成这样的操作, 相关数据只能在程序中自己计算。(3)源程序始终以相当容易接近的方式, 暴露在最终用户面前, 由于拥护的误操作, 很容易使正常的应用程序出错甚至崩溃。
  6、Object ARX
     Object ARX最早出现于R13.0 中, 它以C ++为编程语言, 采用先进的面向对象的编程原理, 提供可与AutoCAD直接交互的开发环境, 能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。ARX程序本质上为Windows 动态链接库(DLL) 程序, 这些库与AutoCAD 共享地址空间并能直接利用AutoCAD 核心数据结构和代码, 库中包含一组通用工具, 使得二次开发者可以充分利用AutoCAD 的开放结构, 直接访问AutoCAD 数据库结构、图形系统以及CAD 几何造型核心, 以便能够在运行期间扩展AutoCAD 固有的类及其功能, 创建能够全面享受AutoCAD 固有命令特权的新命令。Object ARX应用程序以C + + 为基本开发语言, 具有面向对象编程方式的数据可封装性、可继承性及多态性的特点, 用其开发的CAD 软件具有模块性好、独立性强、连接简单、使用方便、内部功能高效实现以及代码可重用性强等特点, 并且支持MFC 基本类库,能简洁高效地实现许多复杂功能。使用Object ARX 的用户可以完成各种开发工作。
  7、Dot NET
    Dot NET 是基于Mircosoft.NET 架构直接进行AutoCAD 二次开发的一种新技术。目前能支持Dot NET 开发方法的软件版本为AutoCAD2005 到AutoCAD2008, 但能完全支持Dot NET 开发方法的软件为AutoCAD2006 到AutoCAD2008。不管开发人员熟悉的语言是Visual Basic.NET 还是Visual C#.NET,使用Dot NET 进行AutoCAD 二次开发的基本方法和步骤基本上是一样的。在新推出的支持Dot NET 开发的AutoCAD 版本中, Autodesk 公司专门为其开发增加了.NETAPI。.NET API 提供了一系列托管的外包类(Managed Wrapper Class) , 使开发人员可在.NET 框架下, 使用任何支持.NET 的语言, 如VB.NET、C 和Managed C++等对AutoCAD 进行二次开发。其优点是完全面向对象, 在拥有与C++相匹配的强大功能的同时, 具有方便易用的特点, 是较理想的AutoCAD 二次开发工具。
  8、结束语
    AutoCAD 提供了丰富的二次开发功能, 各开发工具之间既有区别又有联系, 充分认识和掌握各开发工具的优缺点对构建属于自己的AutoCAD 系统, 提高工作效率, 将大有帮助。
  参考文献:
[1] 北京博彦科技发展有限公司. AutoCAD 综合提高[M] .北京: 北京大学出版社, 2001.
[2] 徐凯, 等. CAD 二次开发技术[J ] . 包装与食品机械,2004 , (1) : 16 - 17.
[3] [美] Ellen Finkelstein. AutoCAD 2004 宝典[M] . 罗军等译. 北京: 电子工业出版社, 2004.
[4]李世国1AutoCAD 高级开发技术ARX 编程及应用 [M ] .北京: 机械工业出版社, 1999.
[5] 郭启全.AutoCAD 2002 应用与开发教程.北京: 机械工业出版社,2003.
[6] 孙江宏,丁立伟,米洁.AutoCAD Object ARX 开发工具及应用.北京:清华大学出版社,1999.
[7] 老大中,赵占强.AutoCAD 2000 ARX 二次开发实例精粹.北京:国防工业出版社,2001.
[8] 孙海林,陆帅华,赵海峰.设计大师AutoCAD 2002 高级使用篇.北京:清华大学出版社.
[9] 高成慧,李燕.关于AutoCAD 二次开发工具的探讨.应用技术,2002,(2):31- 33。

 
 
 
 
 ☆生活有进有退,输什么也不能输了心情。
  民众工作室.制作  版权所有