如何获取COPY后的选择集实体
如题,如何获取COPY后的选择集实体,在论坛找了类似的帖子,好像都没有解决。(setq ss (ssget));选择集A
(command "copy" ss "" (getpoint) '(0 0 0)); 如何获得类似代码执行后的选择集呢?
目前我知道笨点的方法就是遍历SS,然后得到一个复制一个,然后加入新的选择集,大家有没有更高效的方法? 速度好慢,求高效的代码。;原地拷贝,并返回一个新的选择集
(defun get_newss (ss / n ss2 en)
(setq n -1
ss2(ssadd))
(while (setq en(ssname ss (setq n(1+ n))))
(command "copy" en "" "@" "@")
(ssadd(entlast) ss2)
)
ss2)
(setq ss (get_newss (ssget))) 两个方法:
1)拷贝前设定一个标记实体ENTLAST,拷贝后从标记实体EXTNEXT直到NIL
2)拷贝前选择所有实体为选择集A,拷贝后再全选,Remove选择集A kozmosovia 发表于 2016-1-19 17:52 static/image/common/back.gif
两个方法:
1)拷贝前设定一个标记实体ENTLAST,拷贝后从标记实体EXTNEXT直到NIL
2)拷贝前选择所有实体为 ...
这个想法不错,谢谢了,按照您这个思路在去写代码。。 ;;;============获得COPY后的实体集
(defun c:2t ( / en ss ss2)
(setq en(entlast)
ss2(ssadd))
(while (or(not ss)(= ss ""))(setq ss(ssget)))
(command "copy" ss "" pause pause)
(while (setq en(entnext en))
(ssadd en ss2)
)
(sssetfirst nil ss2)
(princ)
)
页:
[1]