新复制的文件全部添加到选择集的问题
本帖最后由 作者 于 2008-7-1 18:24:30 编辑 <br /><br /> <p>请教各位</p><p>我图中有很多个圆</p><p>(setq en (ssget)) ;选择图中所有圆</p><p>(command "_.copy" en2 "" "0,0,0" "0,0,0") ;全部在原位置复制</p><p>如何把新复制的圆全部添加到选择集中</p><p>用(setq en2_2 (entlast))</p><p>只能添加复制的最后一个~</p><p></p> 本帖最后由 作者 于 2008-7-2 16:19:58 编辑 <br /><br /> (DEFUN ENT_FROM (E / SS SN);返回自实体E之后生成的实体选择集<br/> (IF (/= (TYPE E) (quote ENAME))<br/> (ALERT "Parameter ERROR in ENT_FROM")<br/> )<br/> (SETQ SS (SSADD))<br/> (WHILE E<br/> (SETQ E (ENTNEXT E))<br/> (IF E<br/> (PROGN<br/> (SETQ SN (CDR (ASSOC 0 (ENTGET E))))<br/> (IF (NOT (MEMBER SN (quote ("ATTRIB" "VERTEX"<br/> "SEQEND"<br/> )<br/> )<br/> )<br/> )<br/> (SETQ SS (SSADD E SS))<br/> )<br/> )<br/> )<br/> )<br/> SS<br/>) 你那 ENAME 是什么? CADghost发表于2008-7-2 8:08:00static/image/common/back.gif你那 ENAME 是什么?<p>ENAME是图元名</p><p>只要把上次最后一个图元定义为EN (setq en (entlast))</p><p>执行过copy命令后,再用(ent_from en)函数就能得到所有新复制的对象了</p> <p>无意中看 龙老大多年前的作品, <strong>LISP程序]能一次选取COPY出来的对象[原创]</strong></p><p><a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=102">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=102</a></p> 多谢<strong><font face="Verdana">byghbcx的函数</font></strong> (defun ent-from-ss (e / ss)
;返回自实体E之后生成的实体选择集
(setq ss (ssadd))
(while (setq e (entnext e))
(or (member (cdr (assoc 0 (entget e))) '("ATTRIB" "VERTEX" "SEQEND")) (ssadd e ss))
)
ss
)
(defun ent-from-lst (e / lst)
;返回自实体E之后生成的实体
(while (setq e (entnext e))
(or (member (cdr (assoc 0 (entget e))) '("ATTRIB" "VERTEX" "SEQEND")) (setq lst (cons e lst)))
)
(reverse lst)
) 先辈,怎么用啊?请举个例子
页:
[1]