找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 413|回复: 0

[建议]:ARX里尽可能不要调用acedCommand()

[复制链接]
发表于 2004-5-16 16:10:23 | 显示全部楼层 |阅读模式

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

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

×
ARX程序的运行效率一定很高吗?其实不尽然。如果你在ARX程序里频繁调用acedCommand(),
其运行效率不可能高,如果用VBA、AutoLISP程序通过操作AutoCAD的数据库来达到同样目标,
程序本身不是太复杂的话,其运行效率可能会远远高于 主要通过调用acedCommand()的ARX程序。

acedCommand()的内部运行过程非常复杂和耗时。acedCommand()有时对屏幕显示敏感,也就是
说,如果屏幕显示不适当,有些acedCommand()是不能正常运作的。

============
  本论坛的文章中心有一篇文章 "ObjectARX语言编程的优势"(2003-10-09) 有如下说:

-----LISP本身有很多局限,速度也是有限的,很多书上都这么说,大家也承认。可是对VBA,
就不太有人明白了。VBA是VB的应用程序接口,在WORD\EXCELL里也有,AutoCAD的VBA接口使用
相同的原理。在Microsoft应用程序中,所有的VBA接口都是通过Idispatch::Invoke进行数据交
换的,所有的数据都用VARIANT来转换,而一次这样的调用要花掉0.5ms,Microsoft公司已经意
识到了这一点,又推出了一种双接口的变种接口用来提高VBA的速度,但是至少在VC6.0中还没
有支持这种接口,显然AutoCAD2000中也不会有支持。
-----

这里引用的数据有些过时,“一次这样的调用要花掉0.5ms”, 现在很多电脑会比这个快很多,
我在我的电脑(CPU 2.8G, MEM 1G) 里测试的结果是<0.02ms ! 很多情况下LISP、VBA程序的
运行效率不是一个问题,程序的运行效率往往跟程序的结构有关,语言的选择性很有限,大家
也不能做什么,但程序结构方面却大有可为之处。大家努力哦!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 16:37 , Processed in 0.188025 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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