找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1213|回复: 3

[日积月累]:试了试 Vla-selectatpoint

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-5-27 17:12:31 | 显示全部楼层 |阅读模式

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

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

×
选择集放到  ActiveSelectionSet

  1. (defun ax:BuildFilter (filter)
  2.   ;;(vl-load-com)
  3.   (mapcar '(lambda (lst typ)
  4.              (vlax-make-variant
  5.                (vlax-safearray-fill
  6.                  (vlax-make-safearray
  7.                    typ
  8.                    (cons 0
  9.                          (1- (length lst))
  10.                    )
  11.                  )
  12.                  lst
  13.                )
  14.              )
  15.            )
  16.           (list (mapcar 'car filter) (mapcar 'cdr filter))
  17.           (list vlax-vbInteger vlax-vbVariant)
  18.   )
  19. )
  20. (defun xdl-getptss (pt filter / cset ftyp ss)
  21.   (if (not (vl-catch-all-error-p
  22.              (setq cset        (vl-catch-all-apply
  23.                           'vla-item
  24.                           (list
  25.                             (setq sset (vla-get-selectionsets
  26.                                          (setq eDoc (vla-get-activedocument
  27.                                                       (vlax-get-acad-object)
  28.                                                     )
  29.                                          )
  30.                                        )
  31.                             )
  32.                             "CURRENT"
  33.                           )
  34.                         )
  35.              )
  36.            )
  37.       )
  38.     (vla-delete cset) ;_ "CURRENT"
  39.   )
  40.   (setq        ss   (vla-add sset "CURRENT")
  41.         ftyp (ax:BuildFilter filter)
  42.   )
  43.   (vla-selectatpoint
  44.     ss
  45.     (vlax-3d-point pt)
  46.     (car ftyp)
  47.     (cadr ftyp)
  48.   )
  49. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2006-5-28 13:05:46 | 显示全部楼层
不知道版主有没有比较过,vla-selectatpoint和ssget那个效率更高些,用vla-selectatpoint有什么好处呢?要处理变体,感觉挺麻烦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2006-5-28 13:46:04 | 显示全部楼层
没有用过 Vla 的选择方法,这是第一次写 vla-select 类的选择函数,尝试而已。不过感觉用点选而且后面是 vla 方法处理用这个方法也不错,ssget 同样要处理 pickbox 和 osmode
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-12 07:47:15 | 显示全部楼层
本帖最后由 st788796 于 2014-3-12 09:21 编辑

这个不好用,ActiveX Help 的 Example 中是分了两步获取,第一步 SelectAtPoint 所有,第二步然后是获取过滤的

测试中发现 vla 方法不稳定,还是用 ssget C 后调用 Activeselectionset 更灵活更保险
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 00:34 , Processed in 0.369153 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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