2.ADS程序的隐藏错误,往往导致AutoCAD,乃至操 作系统的崩溃。 3.需要编译才能运行,不易见到代码的效果。 4.同样功能C语言的ADS程序一般比AutoLISP程序的 源代码要长不少,比较繁冗。 用ADSC++进行编程有如下优势: 1.全部面向对象的编程,使得程序层次分明,清晰 可读,从而提高软件的可维护性。 2.经过良好封装ADSC++的程序代码比ADSC程序简 洁的多,许多时候比AutoLIPS更简洁。 3.ADSC++的程序能够减少程序出现错误的概率, 经C++封装后的选择集和实体不再需要调用adsμssfree 和adsμrelrb进行内存释放,可以由对像的析构函数负责 内存的释放。 四、ARX ARX是AutoCADR13之后推出的一个全新的面向对象的 开发环境,也是AutoCAD第一次直接提供面向对象的第二次 开发工具。ADSC/C++使得可以在AutoCAD上开发大规模 综合应用软件,然而计算机技术的发展不仅要求CAD的交 互性、综合性,同时对自动化、智能化也提出了更高的要 求。可以说AutoLISP着眼于应用程序的交互性,ADSC/C+ +着眼于应用程序的综合性,而ARX则着眼于应用程序的 智能性。 ARX程序有如下特征: 1.能力强 ARX程序具有ADS程序和AutoLISP程序所不能具备的访 问和控制AutoCAD的能力。ARX程序可以监控和处理AutoCA D的各种事件,可以定义AutoCAD命令,包括可以透明执行 的命令,这些命令可以象AutoCAD自身的命令一样被AutoL ISP和ADS调用。可以定义AutoCAD数据库对象,包括可见 的实体和不可见的字典,这些对象的行为由程序规定,包 括对象的在各个视窗中的显示和对各种事件的响应。ARX定 义的实体往往可以用较少的数据,就可以实现较复杂的显 示,有利于减少磁盘文件的尺寸。ARX-COM程序是新一代 开放式ActiveX程序,可以被其它Windows应用程序访问。 2.速度快 这里指的是访问AutoCAD数据库的速度。ARX应用程序 本身是AutoCAD的一部分,即被ACAD.EXE调用的动态连接 库(DLL),拥有同AutoCAD一样的内存地址空间,直接访 问AutoCAD的各种内存对象。过去AutoLISP和ADS都是通过 函数间接的访问AutoCAD,以ADS读取AutoCAD数据库为例 ,通过ADS库函数取得把AutoCAD数据库对象变换成resbuf 链表,然后访问resbuf链表,需要变换数据结构和遍历链 表两步时间开销。这样在访问AutoCAD数据库的操作上,AR X应用程序比AutoLISP和ADS的速度要快的多。 3.面向对象的编程 ARX提供了六个主要类库来访问和控制AutoCAD及处理 CAD常见的事物,它们是: (1).AcRxAutoCAD运行扩展库 (2).AcEdAutoCAD命令扩展库 |