autocad二次开发工具概述及特点
www.dimcax.com
autocad二次开发工具概述及特点
1)visual lisp
适于描述人机交互操作的过程,善于编写模拟设计师思路的专业设计程序。对于各种用户输入的接收、错误识别与恢复等操作具有相当优秀的功能,尤其是善于充分发挥cagd功能的巨大作用。
过去autolisp 最大的不足是不能编译,现在已经被 vlisp 圆满解决了,编译成vlx 的老的autolisp 程序,其效率比解释运行条件下提高了5~8倍。
2)ads
曾经是在 autolisp 之后的一种用户程序,在 r14 之前的autolisp 程序虽然是解释运行,仍比 ads 程序快一些,因为实际上ads是用autolisp与autocad交互。自autocad r14已经不再支持和发展 ads程序设计模式,同时却增加了visual lisp,以进一步提高autolisp 的整体性能。
3)vba
自 r14开始嵌套在autocad 之中的程序设计方法,vba是根据微软公司的规则,在每一个 windows 下的应用 软件 都必须具有的功能。
其优点是可以很容易地使用 windows 系统资源,使autocad能容易地与其他windows下的应用 软件 交互。vba 对话框设计能力比 dcl 好得多,多图档环境下的应用程序也比也比vlisp提供了更多的支持。由于它是使用activex与autocad交互,程序设计比较复杂。会成为与vlisp并列的另一种专业用户程序设计语言,不太容易学会。
在设计过程模拟类的程序设计中,vba明显不如 autolisp那样顺利,毕竟 autolisp 脱胎于人工智能语言。另外,如果 vba 作者因为“疏忽”,没有提供相应的方法和属性,老的autolisp能够访问的对象数据、能够激活的某些autocad对话框,vba却不能。vba虽然不是编译运行,数据结构和程序写法却像arx一样相当严格,这对于工程师来说,需要有一个适应过程,你只能按照vba的可能去组织自己的数据,而不能像vlisp那样按照专业设计要求去创建数据结构。
比较明显的几个缺憾是:vba中不能像vlisp那样几乎随心所欲地使用autocad命令,只能象脚本文件的模式,以字串方式向autocad命令行发送一串响应,这个字串的内容也只好在自己的程序中生成和进行数据转换。另外,由于vba是以对象作为数据处理的基本单元,在vlisp中堪称特色的cagd程序编法,vba则很难实现。因此像trim、extend、dim-diameter之类的命令都不能真正实施,要想完成这样的操作,相关数据只能在程序中自己计算。这样,程序设计就不能充分利用autocad的操作技巧,必然复杂和罗嗦。放着autocad优秀的数据库,却不能充分发挥它的作用,本来能用autocad完成的动作,却要自己编程实现。这就是vba最大的缺憾。vba 另外的问题是不能编译,源程序始终以相当容易接近的方式,暴露在最终用户面前。很容易由于用户的误操作,使曾经正常的应用程序出错甚至崩溃。这正好是老的 autolisp 的致命缺点,使用 vlisp 2000的程序包编译功能,目前还不能将 vba 包装进去之后解决源代码加密的问题。vba的源代码加密目前只有使用 password。另外,vba与visual lisp 之间仅有比较简单的内部数据通道,例如处理简单的点位表。从这方面说,vba的作者好像不太了解autocad的特色功能和用户们将会怎样使用autocad进行自己的设计。
扩充vba的功能可以用 vc++ / arx 程序,但是相当复杂,对于一般工程师来说,很难掌握。对vba的完善和扩充,只能等待autodesk的工作结果。
4)objectarx
一般是在autodesk内部或增值 软件 开发商中使用。由于arx是使用visual c++作为基本程序设计语言,无论其效率、数据处理和软硬件的控制能力都是最好的,是唯一圆满地针对多图档环境的程序设计方法。是从根本上扩展 vlisp / vba 的程序设计方法。
但是,与autocad命令交互的功能,arx与vba并没有实质性的区别,就是说,同样很难借用autocad强大的cagd功能。另外,要想真正发挥这种开发模式的作用,对于程序设计者的要求(计算机专业知识、 软件 专业知识等等)也较高,而且程序运行风险较大。要求程序自己做好各种数据的测试,自己设计好各种条件下的出错处理和恢复,否则arx 程序的崩溃常常会连带 autocad、甚至windows9x一起崩溃。因此,这种开发模式不适于在专业设计工程师中间普及。
粗略地说:arx/vba的特点在于以对象为基本操作数据,适合于充当“编写”acad的工具,而vlisp则是灵活而充分地使用autocad的现有功能,适合于充当“使用”acad的工具。
作为 cad 系统,通常由三个层次的 软件 组合而成:
a)设计 软件 的底台:提供界面、环境、核心算法、数据库等基础设施。现在我们是在 autocad 2000这个底台上进行工作。
b)设计支持 软件 ,提供与设计需要相关的,比较专业的支持 软件 :国标图库、通用设计工具、设计手册等等。这些 软件 多数是由增值 软件 开发商完成的。
c)专业设计 软件 ,提供窄范围、大深度的专业设计自动化或者辅助系统:例如:发动机装配工具设计、胶印机控制凸轮设计、组合机主轴箱设计等等。
谢谢介绍!有了大概了解。
了解多了,谢谢