找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1724|回复: 6

[研讨] [讨论]:关于command、entmake、vla-add速度的测试

[复制链接]
发表于 2006-4-22 16:50:43 | 显示全部楼层 |阅读模式

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

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

×
画10万条短线的测试程序:
  1. [FONT=courier new]
  2. (load "xyp_lib.vlx")                        ;版本 V.20060413
  3. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  4. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  5. ★1·在acad.lsp中增加(load"xyp_lib.vlx")
  6. ■2·在每个程序内增加(load"xyp_lib.vlx")
  7. ■3·在command下,输入(load"xyp_lib.vlx")
  8. ■4·在菜单.mnl中增加(load"xyp_lib.vlx")
  9. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]
  13. [url]http://free.ys168.com/?xyp1964[/url]
  14. |;

  15. (defun c:test ()
  16.   (CMDLA0)
  17.   (defun pt-vbd        (point)
  18.     (setq point
  19.            (vlax-safearray-fill
  20.              (Vlax-make-safearray vlax-vbdouble '(0 . 2))
  21.              point
  22.            )
  23.     )
  24.     point
  25.   )
  26.   (vl-load-com)
  27.   (setq        AcadObject   (vlax-get-acad-object)
  28.         AcadDocument (vla-get-ActiveDocument Acadobject)
  29.         mSpace             (vla-get-ModelSpace AcadDocument)
  30.   )
  31.   ;;command
  32.   (setq        i   -1
  33.         int 100000
  34.   )
  35.   (xyp-mklaco "test1" 1)
  36.   (xyp-get-StartTime)

  37.   (repeat int
  38.     (setq pt (list (* 10 (setq i (1+ i))) 0))
  39.     (command "line" pt (polar pt (* pi 0.5) 200) "")
  40.   )
  41.   (xyp-get-UsedTime)
  42.   ;;entmake
  43.   (setq i -1)
  44.   (xyp-mklaco "test2" 2)
  45.   (xyp-get-StartTime)
  46.   (repeat int
  47.     (setq pt (list (* 10 (setq i (1+ i))) 300))
  48.     (entmake (list (cons 0 "LINE")
  49.                    (cons 10 pt)
  50.                    (cons 11 (polar pt (* pi 0.5) 200))
  51.              )
  52.     )
  53.   )
  54.   (xyp-get-UsedTime)
  55.   ;;vla-addline
  56.   (setq i -1)
  57.   (xyp-mklaco "test3" 3)
  58.   (xyp-get-StartTime)
  59.   (repeat int
  60.     (setq pt1 (list (* 10 (setq i (1+ i))) 600 0)
  61.           pt2 (polar pt1 (* pi 0.5) 200)
  62.     )
  63.     (vla-addline mspace (pt-vbd pt1) (pt-vbd pt2))
  64.   )
  65.   (xyp-get-UsedTime)
  66.   (CMDLA1)
  67. )
  68. [/FONT]

Command: test

用时 : 54.78秒
用时 : 5.96秒
用时 : 23.71秒
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-22 20:33:13 | 显示全部楼层
呵呵。xd这里讨论过。vl 的表现有些方面让人眼睛一亮,有的方面不敢恭维。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2006-4-22 22:04:22 | 显示全部楼层
xyp版主,再来一个entmake+entdel 和entmode的比较,程序中往往构造临时实体,是用entmake+entdel 好呢,还是先用entmake生成一个,以后用entmode修改,最后再用entdel删除。
记得我的一个贴子中需要临时构造许多竖线吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-4-22 23:50:58 | 显示全部楼层
command,line之所以慢,是因为画一根线要显示一根,符合正常操作的要求。
entmake只在最后才显示,不知其是否能连续画线?
vla-addline似乎也在最后才显示。
从本质上似乎后两者不能与与command的方式相比。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-24 12:53:59 | 显示全部楼层
楼主辛苦一下了 ,顺便把这两个函数也比较一下吧
entmod   vla-put*
就是用autolisp ,visuallisp修改实体,那个更快

对了,还有autolisp的数组,与vlisp的数组存取速度看看哪个更快:)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 221个

财富等级: 日进斗金

发表于 2014-12-28 19:31:05 | 显示全部楼层
用entmake确实快,不过在用_u GROUP撤消命令时会取消上绘图命令,不知怎解决??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 16:30 , Processed in 0.219855 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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