基于AutoCAD二次开发技术的研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:zhaihuixinjie
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文对AutoCAD的二次开发技术进行了探讨,就AutoCAD六种开发技术AutoLISP,VisualLISP,ADS,VBA,Object ARX,Dot NET的内涵作了简要介绍,对其优缺点进行了详细的分析对比,指出ObjectARX和Dot NET是未来AutoCAD二次开发的方向,并为广大的AutoCAD二次开发人员选用其开发工具提供参考性意见。
  关键词:AutoCAD;AutoLISP;VBA;ObjectARX;Dot NET;二次开发
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)11-2pppp-0c
  
  Second Development Technology of AutoCAD
  KONG Yong-ping,ZHU Juan
  (South China University of Technology Computer Science and Engineering Institute,Guangzhou 510006,China)
  Abstract:In this paper the development technique of AutoCAD has been discussed,AutoLISP,VisualLISP,ADS,VBA,Object ARX,Dot NET six technique that are used to develop AutoCAD second- ly are introduced in this paper. The merit and demerit of the six technique is analyzed and compa- reed among the technique in detail. indicating that ObjectARX and .NET API is the trend of AutoCAD secondary development, Some suggestions in choosing the tools are offered for engineers who are engaged in secondary developing AutoCAD.
  Key words: AutoCAD;AutoLISP;VBA;ObjectARX;Dot NET;Second developed
  
  1 引言
  
  AutoCAD是美国Auto desk公司开发的通用型绘图软件,具有强大的图形编辑和处理功能、开放性结构以及良好的性能价格比,其版本从早期的1.0版到目前的2008版,在国内外都已得到广泛的应用。AutoCAD作为Auto desk公司CAD工业的旗帜产品,伴随着近年来整个PC基础工业的突飞猛进,正在迅速而深刻地影响着人们从事设计和绘图的基本方式。从始至今,AutoCAD是一种定位与全球各大领域和各类专业的通用微机CAD平台软件。到目前为止,Autodesk公司已经相继推出了四代二次开发工具,主要包括六种二次开发技术:AutoLISP,Visual LISP,ADS,VBA,ObjectARX和Dot NET, 其中ObjectARX和Dot NET是全新的的开发手段,功能非常强大,是AutoCAD二次开发的方向。表1为此六种开发技术的性能特点的比较
  
  由于每一种开发技术都有其优点和缺点,而且在有些情况下是不可以比拟的。每个二次开发者可以根据自己的爱好特长和所要完成的任务来选择具体的开发技术。下面将详细介绍这几种开发技术的特点和应用领域。
  
  2 基于AutoLISP/Visual LISP的开发技术
  
  2.1 AutoLISP开发环境
  AutoLISP是由Autodesk公司开发的一种采用LISP程序语言的编程工具。AutoLISP语言是一种嵌在AutoCAD内部的LISP编程语言,既具有一般高级语言的基本结构和功能,又具AutoCAD所特有的图形处理功能。利用AutoLISP可以直接增加,修改和调用AutoCAD命令,并能结合各类标准建立大量的参数图形库,还能够对当前图形数据库直接访问和修改等。AutoLISP编程语言最使用的应用之一是实现参数化绘图的实现,其中包括尺寸标注和鼠标拖动交互等等效果的实现,同时能够创建自己的对话框。 但AutoCAD和AutoCAD2.17以下版本的AutoCAD中不含AutoLISP,因此,AutoLISP只能够在AutoCAD2.18以上的版本中应用。AutoLISP不需要任何特定的硬件设备,只要一个系统能够运行AutoCAD就能运行AutoLISP。
  2.2 AutoLISP优缺点
  AutoLISP具有的优点:利用AutoLISP语言对AutoCAD进行二次开发,能够充分发挥AutoCAD的使用效率,而且AutoLISP特有的优点有,(1)编程十分简洁易懂,便于调试。(2)直接针对AutoCAD,易于交互。(3)解释执行,效果明显。AutoLISP在工程系统,特别是绘图系统的一个重要的开发工具。
  AutoLISP的缺点是:(1)功能单一,综合处理能力差。(2)解释执行,程序运行速度慢。(3)缺乏很好的保护机制,源程序保密性差。(4)LISP用表来描述一切,并不能很好地反映现实世界过程,跟人的思维方式不一致。(5)不能直接访问硬件设备和进行二制文件的读写。(6)由于AutoLISP编写的AutoCAD应用程序是用记事本等(7)字处理软件编写的,调试起来很不方便。AutoLISP的这些特点,使得其应用有一定的局限性,使其仅适合于有一定能力的用户来完成一些自己的开发任务。
  2.3 Visual LISP开发环境
  Visual LISP是Autodesk公司为AutoLISP提供的一个完整的开发环境,从R14版开始,AutoCAD支持Visual LISP开发工具。Visual LISP是一个可视化的LISP语言开发环境,它是AutoLISP语言的扩展和延伸。
  Visual LISP具有以下特性:(1)在完全可视化的开发环境下编写、调试程序。(2)Visual LISP程序经过编译后,提高了运行性能和保密性。(3)LISP代码通过AutoCAD R14的Object ARX接口,提高了程序的运行速度。(4)Visual LISP是一个被建立并装载的Object ARX应用程序,因而可以在AutoCAD外部装载和更新。
  
  3 基于ADS的开发技术
  
  3.1 ADS开发环境
  ADS(AutoCAD Development System)是AutoCAD的C语言开发系统,是继AutoLISP后的第二代开发工具,是从AutoCAD R14开始引入的C语言开发工具,ADS不是C语言的一个子集,也不是基于C而编译的专用语言(如Microstation的MDL)但它包括了C的全部功能。是一组可以用C语言编写AutoCAD应用程序的头文件和目标库。它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,因此ADS很轻易地克服了AutoLISP语言所固有的诸多缺点。且ADS由于其速度快,有采用结构化的编译体系,因而很适合高强度的数据处理,如二次开发的桥梁CAD,工程分析CAD,建筑结构CAD等等。
  3.2 ADS优缺点
  与AutoLISP相比,ADS优越之处在于:(1)具备错综复杂的大规模处理能力。(2)编译成机器代码后执行速度快。(3)编译时可以检查出程序设计语言的逻辑错误。(4)程序源代码的可读性好于AutoLISP。
  ADS的缺点:(1)C语言比LISP语言难于掌握和熟练应用。(2)ADS程序的隐藏错误往往导致AutoCAD乃至操作系统的崩溃。(3)需要编译才能运行,不易见到代码的效果。(4)同样功能,ADS程序源代码比AutoLISP代码长很多。
  ADS都是通过内部进程通信来和AutoCAD通讯,他们与AutoCAD是相互分离的过程;而ObjectARX以DLL形式与AutoCAD共享地址空间。因此相比之下,前者速度更快,运行更稳定,更简单。由于是在Windows及VC 编程环境里运行,所以,对开发者的编程要求较高。
  自从AutoLISP R14后,已经不再支持和发展ADS程序设计模式。从第二代的ADS开始,Autodesk开始采用多种语言环境下的开发工具,从LISP语言到Basic,C/C 等。
  
  4 基于VBA的开发技术
  
  4.1 VBA开发环境
  Autodesk公司自它的AutoCAD R14.01版开始,内置了VBA开发工具, VBA(Visual Basic for Application)是一种嵌入AutoCAD内部基于对象的集成编程环境。已经被集成到AutoCAD2000以后所有的版本中。VBA为开发者提供了一种新的选择,同时也为用户访问AutoCAD中丰富的技术框架打开了一条新的通道。VBA和AutoCAD中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式架构。VBA和AutoCAD运行在同一处理空间,为AutoCAD提供智能和快速的编程环境。VBA编程环境有它自己一套对象、关键词、常量,并且提供程序流程、控制、调试和执行。VBA具有强大的开发能力。
  VBA的主要功能和特点:(1)VBA可提供强大的窗体创建功能,为应用程序建立对话框及其他屏幕界面。(2)可创建自己的工具条。(3)可建立功能强大的模块级宏指令,宏名实质就是模块的过程名。(4)提供建立类模块的功能,这对开发大型工程非常有用,因为类可提供重用组件。另外,对于AutoCAD ActiveX技术中的应用程序级和对象级事件调用,将使用类模块。(5)具备完善的数据访问与管理能力,通过DAO(数据访问对象),可以对Access数据库或其他外部数据(象dBase,Foxpre等)实现访问与管理。此功能比直接使用AutoCAD的数据库管理系统要方便,且功能强大。(6)可以使用SQL语句检索数据,与RDO(远程数据对象)结合起来,能够建立客户机/服务器级的数据通信。(7)能够使用Win32API提供的功能,建立应用程序与操作系统之间的通信。
  VBA的不足之处:(1)VBA不能像Visual LISP那样可以随意使用AutoCAD命令,只能像脚本文件的模式,以字符串的方式向AutoCAD命令发送一串响应,这个字符串的内容也只要在自己的程序中生成和进行数据转换。(2)由于VBA是以对象作为数据处理的基本单元的,因此像Trim Extend之类的命令都不能真正实施,要想完成这样的操作,相关数据只能在程序中自己计算。(3)源程序始终以相当容易接近的方式,暴露在最终用户面前,由于拥护的误操作,很容易使正常的应用程序出错甚至崩溃。
  
  5 基于ObjeceARX的开发技术
  
  5.1 ObjectARX开发环境
  ObjectARX(AutoCAD Run-Time Extension)是基于AutoCAD R14的一种新的编程环境,它提供了以C 为基础的面向对象的开发环境及应用程序接口,能真正快速地访问AutoCAD图形数据库。ObiedARX程序本质上是Windows动态链接库(DLL)程序,与AutoCAD共享地址空间,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。ObjectARX程序与AutoCAD、Windows之间均采用Windows消息传递机制。
  由于ObjectARX应用程序是以C 为基本开发语言,而C 具有面向对象编程方式的数据可封装性、可继承性及多态性的特点,用其开发的AutoCAD软件具有模块性好、独立性强、连接简单、使用方便、内部功能高效实现以及代码可重用性强等特点,并且支持MFC基本类库,能简洁高效地实现许多复杂功能。ObjectARX的核心是两组关键的API,即AcDb (AutoCAD数据库)和AcE(AutoCAD编译器),另外还有其它的一些重要库组件,如AcRX (AutoCAD实时扩展)、AcGi(AutoCAD图形接口)、AeGe(AutoCAD几何库)、ADSRx(AutoCAD开发系统实时扩展)。
  与前面几中开发技术相比,这种开发技术拥有对AutoCAD最深入的控制能力,能够提供最多类型的窗体。使用ARX可以向AutoCAD注册自己的命令,用户运行该程序时无需了解关于AutoCAD更多的知识。这种便利的代价就是编制ARX程序比VBA和LISP程序需要花费更多的时间,因此用来编制简单的绘图工具有点浪费了。要掌握ARX的前提是必须熟练掌握C 。ARX能够访问很多的AutoCAD底层工具(这些东西可能VBA和LISP并不能访问),这是大多数开发者选择ARX的主要原因,他们需要作一些用其他两种开发工具不能完成的工作。此外,这也是唯一一种能够确保代码安全(不被别人阅读或非法复制)的开发工具。如果需要开发自定义实体,使用空间过滤,扩展一个使用其他开发工具的应用程序的功能,正在开发用于销售的第三方工具,或者用到一大堆用VBA和LISP不能访问的东西(或者费很大力气去实现的东西),那么ObjectARX是最佳选择。因此ObjectARX的许多特性能够实现很多原来开发环境难以实现的功能,提高了开发效率,它是AutoCAD新一代开发技术。开发人员可以开发相应的模块来定制和扩充AutoCAD的功能。同样,ARX库被设计成能够与AutoLISP和ADS应用程序协同工作,以便编程人员能够选择最能满足其需要和经验的编程工具。
  ObjectARX应用程序的主要特点:(1)基于WindowsDLL的编译应用程序环境。(2)集成了AutoCAD,AutoLISP和ADS。(3)提供220个类与3000多个不重复的成员函数。(4)最大的可操作性,直接利用C 进入AutoCAD数据结构内核。(5)运行时可扩展。(6)能够接受不同事件的声明。(7)替代扩充充实实体数据和构建应用程序消息。(8)在不同的操作系统中可以移植。(9)用户能够定义“原始”的AutoCAD命令。(10)对于INTEL平台,一个ARX动态链接库工作于所有的应用程序。
  ObjectARX的相对不足之处:对二次开发者的计算机专业知识、软件专业知识要求较高。增加了开发的复杂度和难度,加长了软件开发的周期。
  
  6 新一代基于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二次开发工具。
  6.1 .NET API与传统Object ARX
  ARX的主要区别.NET API与传统ObjectARX的区别主要在于:在.NET环境下开发应用程序与在VC环境下开发应用程序的区别。首先,在VC环境下,程序员需要自己管理内存的申请和释放,而.NET采用了垃圾回收机制,由.NET框架自行判断内存回收的时机并实行回收,从而解决了令C 程序员头痛的内存泄漏问题。也正是由于这个特点,在.NET环境下不能像在C 环境下那样利用析构函数释放其他资源,需要程序员在程序中显式地释放。在.NETAPI中,主要通过Dispose来函数进行资源的释放。其次,ObjectARX中的各种反应器(Reactor)在.NET API中由外包类映射为各种事件(Event),可通过定义这些事件的响应函数来响应AutoCAD的各种操作。同时对于错误信息的处理也从函数返回值改变为“通常;异常”来处理,使其更好地兼容.NET。由于VB.NET、C等语言都是完全面向对象的,没有全局函数的概念,所以.NET API将ObjectARX下的全局函数封装为.NET API下的某些对象或对象的属性,如ObjectARX下与用户交互的系列全局函数被封装为CommandLin -ePrompt类。.NET API在具有ObjectARX强大功能的同时,也具有VBA使用方便易用的优点,同时具有C 的强大功能,是较为理想的开发工具。虽然目前.NET API在某些方面还有些不足,但随着其版本的更新、完善,将会成为众多开发人员的首选工具。
  
  7 结束语
  
  本文对AutoCAD的四代开发技术分别做了详细的介绍和比较。从目前开发技术可知,第一代的AutoLISP基本上能够被第三代的Visual LISP完全替代,第三代和第四代开发工具将成为今后AutoCAD二次开发的必然选择。其中主要的四种开发技术VisualLISP,VBA, ObjectARX, Dot NET分别利用当前比较流行的编辑语言LISP,Visual Basic,Visual C 及Visual C#,。而ObjectARX着眼于应用程序开发的自动化,智能化,为适应未来发展的需要,ObjectARX代表了AutoCAD二次开发技术的一个主要方向,具有广阔的前景。ARX类库与MFC类库的有机结合,必将为AutoCAD的二次开发注入新的生机和活力。Dot NET在具有ObjectARX强大功能的同时,也具有VBA使用方便易用的优点,同时具有C 的强大功能,是最新的较为理想的开发工具。虽然目前.NET API在某些方面还有些不足,但随着其版本的更新、完善。将与ObjectARX一起代表了AutoCAD二次开发技术的未来发展方向。
  
  参考文献:
  [1]明经CAD社区.http://www.mjtd.com/bbs/.
  [2]ObjectARX编程站.http://www.objectarx.net/.
  [3]郭启全.AutoCAD 2002应用与开发教程.北京:机械工业出版社,2003.
  [4]孙江宏,丁立伟,米洁.AutoCAD ObjectARX开发工具及应用.北京:清华大学出版社,1999.
  [5]老大中,赵占强.AutoCAD 2000 ARX二次开发实例精粹.北京:国防工业出版社,2001.
  [6]孙海林,陆帅华,赵海峰.设计大师AutoCAD 2002高级使用篇.北京:清华大学出版社.
  [7]高成慧,李燕.关于AutoCAD二次开发工具的探讨.应用技术,2002,(2):31-33.
  
  收稿日期:2008-01-20
  作者简介:孔勇平,男,助教,硕士,主要从事CAD,三维设计方面的研究;朱娟,女,硕士生导师,主要从事CAD,三维设计方面的研究。
其他文献
孔子说:志于道,据于德,依于仁,游于艺。这里的“艺”虽并不等同于后世所说的艺术,但却包含了后世所说的艺术在内。所谓的“游于艺”的“游”正是突出了这种掌握中的自由感。  十多年来我一直从事环境艺术设计相关的社会工作,儿时的绘画情结得以如愿,我心欢喜,畅“游”其中,其犹鱼之有水也。   渐渐的明白了设计的入妙法门即为:“天人合一”论。它的合理内核令人想到天地自然作为人的生存环境,它生长万物以养人,人可
摘要:随着党校系统信息化建设进程不断推进,全省党校系统网络互联互通和资源共建共享越来越显得重要和急迫了。该文分析了VPN专网建设的可行性,详细论述了安徽省党校系统VPN专网建设的技术方案,并就在VPN专网平台上的资源共建共享进行了探析。  关键词:资源共建共享;SSL VPN;IPSec VPN  中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)33-9218-03  
摘要:针对变速器在线检测已经成为汽车工业生产流水线重要组成部分的情况,开发了一个基于组态王软件的变速器检测监控系统。阐述了系统的硬件结构和软件总体规划,在介绍使用组态网的数组字典定义变量的基础上,论述了软件中的核心模块-换挡控制模块的流程图和模块的详细设计过程。  关键词:变速器;检测;换挡;数组字典;流程图   中图分类号:TP319文献标识码:A文章编号:    0 引言    随着民族汽车工
摘要:ArcIMS是ESRI公司的产品之一,它是顺应地理数据在互联网上传输、共享的要求而产生的,定位于Internet网上地图发布层面。它能满足无论是本地还是全球的多用户的网上信息与数据共享的要求,方便多用户同时在线查询和浏览地理信息数据。ArcIMS安装平台很多。目前在Windows环境下以Microsoft的IIS(Internet Information Server)作为Web服务器的居多
摘要:根据本人参加企业PIIS系统的经验,详细介绍了电力施工企业项目管理信息集成系统(Project Information Integration System简称PIIS)的建设过程及系统功能特点,并分析了系统为企业管理所带来的积极改变和良好的经济效益,以及系统的成功建设与实施对提高企业管理水平、实现总部统一管理、提升集中调控能力起到的巨大推动作用。  关键词:施工企业;信息化建设;信息系统 
摘要:针对SNMP(简单网络管理协议)的安全威胁,文中对SNMP协议在安全性方面存在的问题进行了论述,以某知名厂商为例,探讨了利用SNMP协议对其网络设备的攻击,并据此提出了一些防范的建议与措施。  关键词:SNMP;MIB;攻击  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)09-11611-03    The Security Analysis of SNMP
摘要:单片机应用技术学习涉及到的实验实践环节比较多,而且硬件投入比较大。随着计算机技术的进步,基于EDA技术的Proteus能很好解决这个问题。本文通过介绍51单片机最小化应用系统设计实例,详细说明了Proteus在单片机系统开发中的应用。  关键词:单片机;51单片机最小应用系统;Proteus仿真  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)18-21ppp-
摘要:本文指出了当前市面上家用电脑电源关于EMC方面不足的情况,并依据国家标准研制出一种新型的可以解决家用电脑电源EMI问题的无源滤波器。  关键词:电脑;电源干扰;无源滤波器  中图分类号:TN912 文献标识码:A文章编号:1009-3044(2008)06-1pppp-0c    1 电脑电源干扰分析    在我们的日常生活用电中,其实额定频率为50HZ的市电并不是“纯净”。由于电网中存在着
摘要:俄罗斯方块游戏很有趣味性,游戏吸引人的地方在于几个不规则的图形变化。那不规则图形能否完全覆盖全部空间呢,在理论上能得到结论吗?文中试着对L形方块入手,从理论上给出它能充满游戏空间的条件。  关键词:俄罗斯方块;L形方块;完全覆盖  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)12-20ppp-0c    The Condition of Russia-Bloc
摘要:基于ASP.NET 2.0和SQL SEVER 2000技术,采用Microsoft Visual Studio 2005编程环境开发了一套毕业设计管理信息系统。该系统运行安全可靠,功能较全,有效地提高了高校毕业设计管理工作的效率,为高校毕业设计实践教学管理提供了新的模式。   关键词:管理信息系统;ASP.NET 2.0;SQL Server 2000;数据库  中图分类号:TP311文献