找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2486|回复: 10

[求助] 有选择集快速合并的方法或程序么

[复制链接]
发表于 2014-6-22 22:34:38 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 dzgsfjw 于 2014-6-22 22:49 编辑

我在网上找了下,如下程序。当两个选择集内对象少时没什么问题,但当选择集内对象很多,成千上万个,比对时花时太多(1分钟以上)。
有什么好方法可以提高速度,节省时间?


(defun ssheh (ss1 ss2 / i e1 )
  (setq sss nil)
  (if (and ss1 ss2 )
    (progn
      (setq sss ss2)
      (setq i 0)
      (while (setq e1 (ssname ss1 i))
        (if (= (ssmemb e1 ss2) nil)
            (ssadd e1 sss)
         )
        (setq i (1+ i))
      )
      (if (> (sslength ss) 0)  sss  )
    ) ; progn
  ) ;if and
sss
)


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

已领礼包: 7221个

财富等级: 富甲天下

发表于 2014-6-22 23:02:57 | 显示全部楼层
...成千上万个...   没遇上
试试
(command "Select" ss1 ss2 "")
(setq sss (ssget 'P"))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-6-22 23:03:22 | 显示全部楼层

  1. (defun ssu (s1 s2 /)
  2.   (vl-cmdf ".select" s1 s2 "")
  3.   (ssget "P")
  4. )
  5. (defun ssu1 (s1 s2 / s3 i)
  6.   (if (< (sslength s1) (sslength s2))
  7.     (setq s3 s1
  8.           s1 s2
  9.           s2 s3
  10.     )
  11.   )
  12.   (setq i (sslength s2))
  13.   (while (setq e (ssname s2 (setq i (1- i))))
  14.     (ssadd e s1)
  15.   )
  16.   s1
  17. )

点评

谢谢 这也是个好思路,少的向多的中并。 应该会快些。  详情 回复 发表于 2014-6-23 08:12

评分

参与人数 1D豆 +5 收起 理由
炫翔 + 5 技术引导讨论和指点奖!

查看全部评分

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

使用道具 举报

 楼主| 发表于 2014-6-23 08:12:05 | 显示全部楼层
本帖最后由 dzgsfjw 于 2014-6-23 08:14 编辑

谢谢
这也是个好思路,少的向多的中并,但要增加是否重复判断。
应该会快些。

点评

你就直接SSADD往里面添加吧,让SSADD自己处理是否重复,比你判断的快。  详情 回复 发表于 2014-6-23 08:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-6-23 08:38:41 | 显示全部楼层
dzgsfjw 发表于 2014-6-23 08:12
谢谢
这也是个好思路,少的向多的中并,但要增加是否重复判断。
应该会快些。

你就直接SSADD往里面添加吧,让SSADD自己处理是否重复,比你判断的快。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-6-23 08:54:47 | 显示全部楼层
添加好整(command "._Select" ss1 "_Add" ss2 "")
相减(command "._Select" ss1 "_Remove" ss2 "")可能不是你希望的结果

点评

签名是英文歌 sailing 里面的词吗?  详情 回复 发表于 2014-6-23 09:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-6-23 09:50:57 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-6-23 08:54
添加好整(command "._Select" ss1 "_Add" ss2 "")
相减(command "._Select" ss1 "_Remove" ss2 "")可能不 ...

签名是英文歌 sailing 里面的词吗?

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 06:31 , Processed in 0.379768 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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