★★怎样获得前次生成的所有图元,entlast只能得一个★★
<p>经常碰到怎样的问题,若想修改连续偏移或复制后所有新图元的特性改颜色加粗之类什么的。但苦于找不到函数,entlast只能得最后一个,而ssget只能得到旧图元,而ssadd只能在循环程序中一个个添加图元,那么在我编的程序中新生成的所有图元用什么函数获取。</p><p>再如我选择了一些对象用ssget,然后炸开,然后我想修改这些炸开的图元的颜色或宽度什么的,那怎么选,用entlast只能选一个。请高手赐教!!!!</p> <a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=66014&replyID=86773&skin=1">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=66014&replyID=86773&skin=1</a> 龙龙仔版主有个“J”的透明命令,好像是反应器,挺实用的。 <p>这个程序有点问题,请高手帮帮忙!</p><p> </p><p> </p> 本帖最后由 作者 于 2008-3-18 11:07:38 编辑 <br /><br /> <p>有什么问题</p><p>(defun c:test (/ e ss)<br/> (princ "\n选择任意对象进行复制测试...")<br/> (setq e (entlast)<br/> ss (ssget)<br/> )<br/> (command "_.copy" ss "" "\\" "\\")<br/> (if (setq ss (lt:ss-entnext e))<br/> (progn<br/> (sssetfirst nil ss)<br/> (princ "\n新对象被选取。")<br/> ss<br/> )<br/> )<br/>)</p><p></p> 用这个看看(DEFUN ENT_FROM (E / SS SN);返回自实体E之后生成的实体选择集
(IF (/= (TYPE E) (quote ENAME))
(ALERT "Parameter ERROR in ENT_FROM")
)
(SETQ SS (SSADD))
(WHILE E
(SETQ E (ENTNEXT E))
(IF E
(PROGN
(SETQ SN (CDR (ASSOC 0 (ENTGET E))))
(IF (NOT (MEMBER SN (quote ("ATTRIB" "VERTEX"
"SEQEND"
)
)
)
)
(SETQ SS (SSADD E SS))
)
)
)
)
SS
) <p>关于<font color="#ff0000">
</font><font color="#ff00ff">"ATTRIB"</font>
<font color="#ff00ff">"VERTEX"</font>
<font color="#ff00ff">"SEQEND" 的情况我也发现了,代码没有更新。</font></p><p><font color="#ff00ff">向楼上学习</font></p> <font color="#ff00ff">学习学习</font> 这样就可以选择嵌套块炸开后的所有实体了!
炸开嵌套块后怎么结合上面的代码 把炸碎后的图元再生成块?
本帖最后由 zhuquanmao 于 2012-4-11 12:49 编辑这个怎么用啊 呵呵 我把一个嵌套块用下面的代码给炸开了
(setvar "qaflags" 1)
(setq ss (ssget '((0 . "INSERT"))))
(while (setq ss (ssget "P" '((0 . "INSERT"))))
(command ".explode" ss "")
)
然后呢?
页:
[1]
2