• 1.摘要
  • 2.基本信息
  • 3.基本内容
  • 4.为什么要对AutoCAD进行二次开发
  • 5.怎样对AutoCAD进行二次开发
  • 5.1.AutoLISP和VisualLISP
  • 5.2.ADSARX和ObjectARX
  • 5.3.利用微软的ActiveX技术
  • 5.4.利用ObjectARXNET进行开发
  • 6.AutoCAD二次开发各编程接口的比较及选用

autocad二次开发

AutoCAD(Auto Computer Aided Design)是美国Autodesk公司研制开发的一款计算机辅助设计软件,它不是一款简单的绘图工具,而是一个复杂的计算机辅助设计系统。我们可以根据他灵活的开放性对其进行二次开发定制,让它更加适用于某一具体的设计领域。

基本信息

  • 中文名

    AutoCAD 二次开发

  • 外文名

    AutoCAD Development System

  • 目的

    提高效率建立适合本行业的平台

  • ADS

    已经淘汰的一种开发AutoCAD环境

  • AutoLISP

    语言的优点是语法规则简单

  • VisualLISP

    引入面向对象的LISP开发环境

基本内容

从1986年发布AutoLISP以来到现在的三十余年来,Autodesk公司推出了AutoLISP、ADS、VBA、ARX、ObjectARX、VisualLISP、ObjectARX.NET、JavaScript等开发方式。本章就是对上述开发方式进行讨论分析从而找到高效开发AutoCAD的一种方式。

为什么要对AutoCAD进行二次开发

AutoCAD是在Windows和MAC系统中应用最为广泛、使用人数最多的CAD软件。但它只给我们提供了基础的CAD功能,如果我们想完成具体项目设计,就必须根据数据一笔笔绘制出图形,这样一旦在设计完成之后,要更改局部图形则需要重复原来的全部内容。造成了大量工作量的浪费。

如果使用AutoCAD的开发系统,我们就可以将以上的过程用程序编制出来,在需要设计时,只需一个命令就可以运行这个程序,自动完成绘图过程。显而易见,这不仅大大提高了设计效率,而且,还可以通过定制来完成某些专业化的模块,甚至大型设计软件,比如测绘行业的南方CASS软件、建筑行业的天正CAD软件等均是用AutoCAD开发系统实现的。

因此,要想让AutoCAD真正使用于某一具体领域,或让其经常完成一些重复性的工作,则必须利用AutoCAD的开发系统对其进行二次开发.

怎样对AutoCAD进行二次开发

从AutoCAD 2.18开始推出AutoLISP开始到现在,我们所能使用的开发工具主要有:AutoLISP、VisualLISP、VBA、COM外部接口、ObjectARX、ObjectARX.NET等开发方式供用户选择。下面开始对上述开发方式进行简要介绍:

AutoLISP和VisualLISP

AutoLISP是进行对AutoCAD二次开发最早的API,它是人工智能语言LISP的一个分支.主要用来自动完成重复性任务,进行客户化开发和编制AutoCAD菜单以及通过简单机制为AutoCAD扩充命令,能够有机的和AutoCAD结合在一起,它语法简单容易上手,到仍有很多的活跃开发用户。但是由于它是解释型API而不是面向对象的编程语言,使它的效率低下,由于执行的是源代码文件所以导致保密性能不高很难用它开发大型的应用程序。

在AutoCAD R14.01中,Autodesk公司首次提供了一种新的LISP编程工具:Visual LISP,它是一种面向对象的开发环境,是AutoLISP的扩展和延伸。

在AutoCAD2000中,Visual LISP被集成到了AutoCAD环境之中。Visual LISP是一种半编译的API。由于可以被编译所以大大提高了运行效率和安全性。同时它又与AutoLISP完全兼容,又提供了AutoLISP的所有功能,同时它又能够访问AutoCAD的多文档环境,以及对COM/ActiveX技术的支持和反应器等。VisualLISP

IDE同时提供了完整的编辑环境使得用户可以对代码进行调试跟踪、源码语法检查、括号匹配、函数提示等工具,方便创建和调试LISP程序。由于VLISP集成于AutoCAD内部,而且随AutoCAD升级而升级所以兼容性比较好,这也是LISP深受广大编程爱好者使用的原因。

但在进行大数据的计算处理方面,Visual LISP不能很好的胜任这项任务,这使得开发大型数据运算的程序仍有一定困难。

ADSARX和ObjectARX

ADS(AutoCAD Development System)是Autodesk公司最早在AutoCAD R11中提供的C语言编程环境。ADS除可使用标准C的函数外,又增加了一组专用于对AutoCAD进行操作的函数。由于ADS程序具有C语言的一切优点,因而它曾是开发AutoCAD R11、AutoCAD R12应用程序的主要工具。用C写就的ADS程序,可在所有支持AutoCAD平台上进行源代码移植。只需使用普通的C语言编译器就可以编译生成ADS模块,与ADS库和标准C库链接后生成可执行文件,装入AutoCAD后即可运行。但是ADS和AutoLISP一样,内在结构不是面向对象的,用AutoLISP解释器加载和调用,利用IPC与AutoCAD通讯。

ARX(AutoCAD Runtime eXtension)是在ADS基础上发展起来的一种面向对象的C语言编程环境。由ADS到ARX的变迁就像C到C++的转变。ARX与老式的ADS及AutoLISP的最大差异在于ARX应用程序是动态链接库,共享AutoCAD地址空间,可以对AutoCAD进行直接函数调用,避免了IPC的系统开销和由此引起的性

能下降。因此那些频繁与AutoCAD通讯的应用程序在ARX环境下的运行效率明显优于老式ADS或AutoLISP环境。

ARX最早是在AutoCAD R13中提供的,但在AutoCAD R14中,ARX就被ObjectARX所代替。同时原来的ADS库函数全部被包含在ObjectARX中,将ADS函数合为单一的库就形成了ADSRX。ADSRX库已纳入到AutoCAD的总体结构中,因此它与其他ObjectARX库一样,能共享AutoCAD地址空间。