当前位置:文档之家› 为什么要学ARX【金建承】

为什么要学ARX【金建承】

其实在很多情况下你并不一定要学ARX。如果想从事AutoCAD二次开发,LISP及VB(VBA)就是很好的选择。话虽如此,ARX还是有其优点。

在很多书上,总是要对各种开发语言做比较,对于ARX,每一本书上都有一个让我哭笑不得的评价,就是说"ARX的程序容易造成死机",天啦,这就是ARX的唯一缺点?是的,相对LISP和VB(甚至DELPHI等)其它语言而言,确实ARX是无可挑剔的。然而说"ARX的程序容易造成死机"我是永远都不会承认的,真正掌握了ARX的人是不会说这话的。ARX说到底就是VC,就是面向对象,就是类。其实ARX的程序是最不易死机的。

还是AutoCADR12的时候我就选用ADS做开发,当时是在DOS下的,为了不造成死机,不得不在编译的时候对内存进行跟踪,如果从程序启动到中间做了各种操作,最后关闭程序后,发现内存没有泄漏,那么就不会造成死机了。特别是使用链表的时候,内存处理是要有耐心的。但是到了R2000,由于在VC6.0的环境下进行开发,只要有C++的常识,已经是不用进行任何的内存管理了,容易死机之说在我看来是从来都不成立的。
由于ARX要经过严格的编译,在试运行的时候如果有问题是真会出问题的,但是只要试运行通过了,以后也就很稳定了,根本就不会造成系统崩溃。

在很多情况下可以用LISP做开发,可以用VBA做开发,然而在有两种情况是不合适的。一种是速度要求很高时、另一种是做高档的软件时。比如说最近有人做分形理论仿真,用VBA,结果速度慢得要命,还有人做SQL数据库接口,用VBA,速度也是不能承受。

假设有以下一个项目:你的老板要你把SQL数据库、ACCESS数据库同AutoCAD联系起来,很多设计参数要能从数据库里自动查找,设计结果要能在PDM软件上自动流览,(做一个AutoCAD与PDM的接口),很多情况下不许运行AutoCAD软件本身,(因为AutoCAD软件只买了有限的几套不能人人都装的),你打算用什么来做呢?

这样的项目当然也是能用VB做的,然而不可否认,用ARX最好。特别是,随着社会的进步,AutoCAD本身不适用了,有一天老板要你把以前的二次开发的软件移植到Think3(一套高档的三维CAD软件)上,那又怎么办呢?在VC下的ARX显然更具有可移植性,如果你写程序时就留有一手的话。

LISP本身有很多局限,速度也是有限的,很多书上都这么说,大家也承认。可是对VBA,就不太有人明白了。VBA是VB的应用程序接口,在WORD\EXCELL里也有,AutoCAD的VBA接口使用相同的原理。在Microsoft应用程序中,所有的VBA接口都是通过Idispatch::Invoke进行数据交换的,所有的数据都用VARIANT来转换,而一

次这样的调用要花掉0.5ms,Microsoft公司已经意识到了这一点,又推出了一种双接口的变种接口用来提高VBA的速度,但是至少在VC6.0中还没有支持这种接口,显然AutoCAD2000中也不会有支持。

说了这么多,结论是什么呢?如果只是因为爱好,为了更好地使用AutoCAD,或者给AutoCAD做定制,而且你又没掌握C语言,最好是学VBA或LISP,因为易学且足够。如果你志存高远,随时想淘汰AutoCAD或站在管理的角度也站在PDM的角度处理问题而不是局限于设计本身,而且还想做出优质的产品来,最好还是学ARX。我想如果一个程序员掌握了一定的机械设计知识,一定的数据库知识,一定的管理知识,再同VC\OpenGL\DirectX等技术结合起来处理问题,这个人的力量是无穷的,AutoCAD软件本身也会被你早早地扔到垃圾堆里。


相关主题
文本预览
相关文档 最新文档