gengzi1999
路人甲
路人甲
  • 注册日期2003-09-10
  • 发帖数238
  • QQ
  • 铜币956枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2006回复:4

ObjectARX语言编程的优势

楼主#
更多 发布于:2003-10-10 14:57
在很多书上,总是要对各种开发语言做比较,对于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软件本身也会被你早早地扔到垃圾堆里。




<img src="images/post/smile/dvbbs/em08.gif" />
喜欢0 评分0
我是农民,我怕谁!
huhoo
路人甲
路人甲
  • 注册日期2003-12-02
  • 发帖数93
  • QQ
  • 铜币328枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2003-12-02 16:56
举报 回复(0) 喜欢(0)     评分
hisum
路人甲
路人甲
  • 注册日期2003-11-24
  • 发帖数488
  • QQ
  • 铜币1683枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2003-12-02 17:14
我支持ARX ,可是太深了,如果专业开发软件就用吧,如果只是为了解决问题,我看还是lisp和VBA快一些了,不然autodesk 公司不会把这两个接口这么费力地做上,还是各尽其用,百花齐放的好!!!
举报 回复(0) 喜欢(0)     评分
huhoo
路人甲
路人甲
  • 注册日期2003-12-02
  • 发帖数93
  • QQ
  • 铜币328枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2003-12-08 14:43
我最初也是用lisp,后来换成arx,
我的意见是:还是用arx好。当然者需要有 c语言的知识。用惯了arx都不想用lisp了。
举报 回复(0) 喜欢(0)     评分
ngu
ngu
路人甲
路人甲
  • 注册日期2003-11-26
  • 发帖数49
  • QQ
  • 铜币215枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-03-18 21:09
我认为VBa,Lisp比较容易上手,而arx,如果你不想偷懒,就用它把
举报 回复(0) 喜欢(0)     评分
游客

返回顶部