找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 627|回复: 7

[讨论]:arx是不是比LISP,VBA功能强大些?

[复制链接]
发表于 2004-9-5 21:32:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我知道问得比较菜,不过我想听听大家的意见来决定学不学ARX?

ARX能实现很多LISP,VBA所不能做到的吗?三者都有哪些优缺点?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-6 10:09:33 | 显示全部楼层
执行效率更高、运行速度更快
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8779个

财富等级: 富甲天下

发表于 2004-9-6 20:58:23 | 显示全部楼层
但是也难学得多了。尤其对没有程序开发基础的设计人员。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-6 22:49:57 | 显示全部楼层
[转帖]来自明经通道的话语
详情请见 http://www.mjtd.com/a2/list.asp?id=33

其实在很多情况下你并不一定要学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软件本身也会被你早早地扔到垃圾堆里。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-8 23:07:18 | 显示全部楼层
说的有理。谢谢指点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-11 19:36:36 | 显示全部楼层
arx是基于C++的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-11 20:30:07 | 显示全部楼层
比lisp,vba强大多了,但入门难度也大。正在学习中,呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-12 00:25:50 | 显示全部楼层
ARX功能很强,执行效率往往很高,这是最让人吹捧的地方。

多年前,作为解释型语言的LISP,运行效率是一个大问题,复
杂运算所造成的时间明显滞后,给人带来的感觉真的很难受,
甚至会出现内存不足而无法正常运行下去。可能是这个问题给
人们的印象太深刻,迄今不少人还对其耿耿于怀,殊不知已时
过境迁,当今电脑硬件取得飞速发展,尤其在CPU 运行速度、
内存存储量取得惊人进展,在很多情况下LISP程序的运行效率
不再是一个问题,在运行效率方面,ARX的优势已大不如前了!

4楼朋友所转载的文章中:
   。。。所有的VBA接口都是通过Idispatch::Invoke进行数据
交换的,所有的数据都用VARIANT来转换,而一次这样的调用要
花掉0.5ms。。。。

这里所用的数据应该是多年前的数据吧?我所用的电脑不是最好
的,但是我初步试验的结果是:该调用所要花费的时间 < 0.05ms
也就是仅仅是上述的十分之一还不到!

要不要学习、使用ARX,主要应该根据你要开发的程序要做到什
么程度、什么规模,如果都是一些简单东东,一般用不着使用
ARX,使用ARX开发简单东东,大有"牛刀杀鸡"之嫌!如果要在
AutoCAD二次开发方面大有作为,非得学习、使用ARX不可,同
时应该懂得LISP语言,好的程序往往是ARX + LISP的组合!

对于VBA,我不熟悉,曾经几次想认真学一学VB,但后来还是放
弃,我很不喜欢VB的程序结构,尤其是续行符'-'和太多关键字,
显得很罗嗦,表面上,这些关键字是为了提高程序的可读性(对
于初学者来说可能是这样),但是,事实上,不少地方用关键字
显得很多余,另外,用关键字控制程序结构的可读性的效果远不
如C/C++ 语言中用非字母字符 (比如 { })  来控制程序结构的效果,
有个网友用了几年VB,后来打算学用 VB.NET,发现VB.NET比VB
更恐怖,"象个很爱说话的孩子说个不停"(太多关键字),最后决定
放弃VB,改用C#. 一些C++程序高手称谓VB是垃圾语言,虽然有些
夸张,但是也说明一些问题。如果VB没有先天不足,M$大可以大
力拓展VB来与Java竞争,而不是推出C#,甚至*.NET。说这些,可
能会让VB爱好者们很不爽,其实大可不必,"情人眼里出西施"吧!
我说的可能很偏见,毕竟我没能深入VB,无法领略它的内在魅力!
请多多包涵!任何语言都有其存在的理由,也有其存在的局限。

ARX 是AutoCAD 的C/C++接口, 作为编译型语言的C/C++,要求程
序结构很好的完整性和相关专业知识,"麻雀虽小",必须"五脏具
全",因此,用ARX编程没有用解释型程序语言LISP那么方便、自由。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-22 04:04 , Processed in 0.293454 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表