金属加工论坛
贸易平台·行业报道·技术社区
论坛名称:中国金属加工论坛    网址:http://www.mw1950.com/forum/
 提醒您:如果本页图片或flash动画无法正常显示,请点击这里访问原帖。
autocad开发环境的发展 作者:Frest 时间:2007-7-10 15:25:00
1


  • autocad开发环境的发展   从1986年autocadv2.18提供的autolisp程序支持, 到1997年autocadr14中面向对象的开发环境arx,autocad 用于二次开发的开发方法及开发环境,一直在不断地发展 与完善。本文对这种发展做了简单的介绍。    本期要目   多媒体:   vb4.0多媒体创作技巧   实用网络:   e-mail工具foxmail   oa软件:   实用时钟   硬件与维修:   利用微机串口做控制信号源      一、综述   autocad是世界上最流行的通用cad平台。在国内更是 用户众多,影响深远,尤其是在建筑行业和机械行业拥有 数十万的应用队伍,堪称cad的标准平台。自1982年autod esk公司推出autocad1.0,到今年推出的autocadr14,au tocad经历了15年的发展。   autocad于1986年v2.18版时提供了autolisp程序设 计的支持,从此开始了可以在一个通用的cad平台上添加自 己所需的特殊功能的能力。1987年autocadv2.6版推出, autolisp得到一些改善,这也正是国内流行autocad及a utocad环境下开发编程的开始。1988年推出的autocadr 10开始使得autolisp程序可以在扩展内存中允许,这对于 编写稍大一点规模的应用程序提供了可能。autocad第一 代开发工具开发出的第一代应用软件开始在国内流行。   1990年推出的autocadr11第一次在pc版的autocad 上提供了c语言开发环境(ads)的支持,这使得在autocad 的上开发大规模的综合性的应用程序成了可能,autocad 下的应用程序可以利用标准c语言提供的能力,编制出第一 代工具无法实现的应用。真正在国内普遍流行用第二代开 发工具开发autocad,是在1992年推出的autocadr12的基 础上进行的。   1994年推出的autocadr12上第一次提供了面向对象的 c++开发环境的支持(arx),这就是autocad第三代开 发工具。autocad本身在内核上也发生了本质的变化,尽管 最终用户并不会感觉到,但autocad确实走向了一个开放 式的面向对象的cad平台,为今后的进一步发展奠定了技术 基础。很遗憾的是r13上的arx是个新生事物,本身不完善 ,在不同的小版本上的arx程序不兼容,直至r13c4版才较 为稳定。arxsdk发布的初期所要求的开发环境也较为苛刻 (要求msvc2.1~2.2),现在已经可以利用msvc4.x作 为开发环境。今年刚发布的autocadr14将是经三代开发工 具应用的舞台,一方面的r14对arx的支持更加可靠和稳定 ,另一方面arx经过一定时间的摸索,二次开发商逐步具 备开发arx应用程序的能力。    二、autolisp   autolisp是autocad内嵌的一种解释语言开发环境。a utocad从v2.18版开始,一直支持这种开发环境。autoli sp的大部分功能是直接针对autocad,它是一种很好的交 互语言,很适合于cad这类交互性很强的应用。   autolisp有如下优点:   1.语言规则十分简单,易学易用   autolisp来源了lisp语言,以一种通用的规则-表( list),来描述过程和数据。由于这种规则极其简单,一 个对计算机了解不太深入的工程专业人员,仅需经短期的 学习,就可以熟练掌握这门语言。lsip语言的简洁性是其 它许多计算机语言所无法相比的,“万能”的表屏蔽了复 杂的过程,可描述任何数据结构。   2.直接针对autocad,易于交互   autolisp提供的大多数函数都是直接针对autocad的 操作,用autolisp编写访问autocad图形数据库(dwg)图 形数据库的操作   3.解释执行,立竿见影   程序员既可以一次运行一段autolisp代码,也可以在 autocad的command下逐条键入autolisp指令,立即得到结 果。   随着计算机技术的发展,cad编程更加复杂,代码越 来越庞大,autolisp的缺点的愈来愈明显:   1.功能单一,综合处理能力差   2.解释执行,程序运行速度慢   3.缺乏很好的保护机制,软件质量不易保证   4.lisp用来表描述一切,并不能很好的反映现实世 界和过程,跟人的思维方式也不太一致。   5.autolisp的这些特点,仅适合于有能力的终端用 户做些自己的开发任务。    三、ads   ads是autocadr11开始支持的一种基于c语言的灵活的 开发环境。   r11上的ads程序的编译环境是不流行的c编译器,hig hc和watcomc以及zotechc。r12dos虽然支持流行的实模式 的borlandc/c++编译器和microsoftc/c++编译器, 但640k的局限性太大,r12dos上的主要编译器仍是highc 和watcomc。在r12windows版上,borland公司和microsoft 公司的编译器已经可以很好的发挥作用了,不过从运行效 率和规模较大的应用程序来看,watcom公司的编译器是更 好的选择。   ads程序的许多特点正好同autolisp相反,它比autol isp程序优越的地方在于:   1.具备错缩复杂的综合大规模处理能力;   2.编译成机器码后执行,速度快;   3.编译时可以检查出程序设计语言的逻辑错误;   4.程序源码的可读性好于lisp。   和autolisp相比,不便之处在于:   1.c语言比lisp语言要复杂的多,难以在短时间内掌 握,熟练应用需求更长的周期。   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命令扩展库   (3).acdbautocad数据库访问库   (4).acge通用几何库   (5).acgiautocad图形界面库   (6).acbr边界描述库   然而,arx应用程序比ads程序具备更大的危险性和破 坏必arx程序设计比ads要复杂的多,程序设计的错误,经 常导致autocad崩溃,甚至操作系统的崩溃。程序员需要 有很高的职业素质,才能编制好arx应用程序。此外,arx 应用程序是一个动态连接库,调试时需频繁启动autocad, 额外的时间开销比windwos下的ads要多。这些都说明,开 发arx应用程序,需要更多的投入。

  • 所属版面:CAD交流区 本帖第1页
    共有回复: 0 共有页数: 1 显示帖数:50


    欢迎光临中国金属加工论坛 网址:http://www.mw1950.com/forum/