AutoCAD 二次开发学习系列【1】- 初步了解开发环境

来源:互联网 发布:淘宝商品降权3天恢复 编辑:程序博客网 时间:2024/06/04 23:18

如果不出意外的话,明年三月份开始读硕士了。项目就是AutoCAD的二次开发,要做一个系统出来,具体功能就不在这里列了。以前没有做过AutoCAD的开发,在这里写个系列博客,来记录学习的过程。

和其他任何一个成熟的产品一样,它有自己的一个完整的生态系统。初了自身的功能以外,它都支持被扩展。因为工程师在公司开发产品的时候,绝大部分功能都是产品级的,很通用,不针对某一行业或特定领域。当然,也有一些公司,也在特定领域推出一些专业的产品。如Photoshop,通用的功能基本上已满足绝大多数用户的需求,但也总有一部分情况不能覆盖到,或者用户有特定的需求。在这个时候就需要二次开发。

AutoCAD是AutoDesk的拳头级产品,专注于设计领域。在上世纪90年代的时候已经很流行,先已成为设计领域的行业标准。由于其广泛应用,才促成了它的丰富的二次开发工具。包括AutoLISP,Visual LISP, Visual Basic, ADS ,ARX,ADSRX,ObjectARX。

AutoLISP : AutoCAD最早的解释性API,不是面向对象的语言,它主要用来完成一些重复性的工作,可以进行客户化开发,编制AutoCAD菜单以及通过简单机制为AutoCAD增加命令。它是一个单独的进程,通过IPC于AUtoCAD交互,性能较差,且不适用于开发大型应用程序。优点是学习曲线不陡。

Visual LISP :  是面向对象的开发环境,是AutoLISP的扩展和延续。是编译型的API,且与AutoLISP完全兼容,是AutoLISP的替代产品。同时它能访问AutoCAD的多文档环境,COM/ActiveX用户界面与事件响应器。并且提供了完成的开发环境,包括括号匹配,跟踪调试,源代码和语法检查工具。

ADS是AutoCAD development System的缩写,是C语言的编程环境。除了标准的C库函数以外,还扩展专门对AutoCAD进行操作的函数。进过链接,生成EXE文件,由AutoLISP解释器加载和调用,它内部和AutoLISP一样,不是面向对象的,在运行时也是通过IPC与AutoCAD进行通信。

ARX是 AutoCAD Runtime eXtension的缩写,是面向对象的C开发环境,与ADS最大的不同在于它被链接为DLL,被加载到AutoCAD的进程空间里,不需要IPC,效率高,但缺点是自己crash会导致AutoCAD崩溃。

ObjectARX,是 Object AutoCAD Runtime eXtension的缩写,是C++的编程环境,与ARX一样,它被链接为DLL,由AutoCAD加载到自己的进程空间,不需要IPC进行通信,效率高。这个是AutoCAD的开发环境大集成,我们以后就在这个上面开发。它包括ADS的全局函数,然后也封装了4个重要的类库。

ADSRX是在向ObjectARX进化的过程中,认为的把ADS的功能包括进来,同时将ADS的功能封装成一个库,形成了ADSRX。

原创粉丝点击