CADghost 发表于 2008-7-1 18:24:00

新复制的文件全部添加到选择集的问题

本帖最后由 作者 于 2008-7-1 18:24:30 编辑 <br /><br /> <p>请教各位</p><p>我图中有很多个圆</p><p>(setq en (ssget))&nbsp; ;选择图中所有圆</p><p>(command "_.copy" en2 "" "0,0,0" "0,0,0")&nbsp;&nbsp;&nbsp; ;全部在原位置复制</p><p>如何把新复制的圆全部添加到选择集中</p><p>用(setq en2_2 (entlast))</p><p>只能添加复制的最后一个~</p><p></p>

byghbcx 发表于 2008-7-1 18:35:00

本帖最后由 作者 于 2008-7-2 16:19:58 编辑 <br /><br /> (DEFUN ENT_FROM (E / SS SN);返回自实体E之后生成的实体选择集<br/>&nbsp; (IF (/= (TYPE E) (quote ENAME))<br/>&nbsp;&nbsp;&nbsp; (ALERT "Parameter ERROR in ENT_FROM")<br/>&nbsp; )<br/>&nbsp; (SETQ SS (SSADD))<br/>&nbsp; (WHILE E<br/>&nbsp;&nbsp;&nbsp; (SETQ E (ENTNEXT E))<br/>&nbsp;&nbsp;&nbsp; (IF E<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (PROGN<br/>&nbsp;(SETQ SN (CDR (ASSOC 0 (ENTGET E))))<br/>&nbsp;(IF (NOT (MEMBER SN (quote ("ATTRIB" "VERTEX"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "SEQEND"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (SETQ SS (SSADD E SS))<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; SS<br/>)

CADghost 发表于 2008-7-2 08:08:00

你那 ENAME 是什么?

byghbcx 发表于 2008-7-2 16:38:00

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>

muwind 发表于 2008-7-6 11:31:00

<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>

chengzhang 发表于 2008-8-12 11:46:00

多谢<strong><font face="Verdana">byghbcx的函数</font></strong>

wkq004 发表于 2021-4-19 16:55:31

(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)
)

zmzk 发表于 2021-11-21 21:37:42

先辈,怎么用啊?请举个例子
页: [1]
查看完整版本: 新复制的文件全部添加到选择集的问题