xyz002 发表于 2009-12-22 00:15:00

如何获得boundary后的新生成的物体?

本帖最后由 作者 于 2009-12-22 9:10:29 编辑 <br /><br /> <p>怎么才能获得boundary后的所有物体或新生成的物体的选择集,然后转移到其它图层?下面的程序实现不了,问题出在哪?</p><p>(defun c:tt()&nbsp; <br/>&nbsp; (setq ss1 (ssget "X"))<br/>&nbsp; (command "boundary")<br/>&nbsp; (setq ss2 (ssget "_P"))<br/>&nbsp; (command "select" SS2 "r" SS1 "")<br/>)<br/></p>

sdls 发表于 2019-9-20 23:21:37

感谢楼主的问题,感谢版主的解答!谢谢!!!

xiaoniao7619 发表于 2019-6-11 19:56:52

学习了,多谢

phoenixdjq 发表于 2009-12-22 08:39:00

(entlast)

xyz002 发表于 2009-12-22 09:16:00

<p>是这样么,还是不行啊</p><p>(defun c:tt()&nbsp; <br/>&nbsp; (command "boundary")<br/>&nbsp; (setq ent (entlast)) <br/>&nbsp; (command "change" ent "" "p" "la" "1" "")<br/>)<br/></p>

xhq1954425 发表于 2009-12-22 10:30:00

(defun c:tt()&nbsp; <br/>&nbsp; (setq p (getpoint"\n拾取封闭线框内部点:"))<br/>&nbsp; (command "BOUNDARY" "A" "O" "P" "I" "N" "" ""&nbsp; p "")<br/>&nbsp; (setq ent (entlast)) <br/>&nbsp; (command "change" ent "" "p" "la" "图层1" "")<br/>)

caoyin 发表于 2009-12-22 11:26:00

<p>先&nbsp; entlast</p><p>然后 BOUNDARY</p><p>最后 entnext</p><p>这是老问题了,在论坛上搜一下</p>

xyz002 发表于 2009-12-22 11:47:00

<p>&nbsp;谢谢<strong><font face="Verdana" color="#61b713">xhq1954425</font></strong>帮助,按照你的程序能够获得边界并转移到新图层。不过对于不是封闭的多边形,点内部点会选择到外面的封闭多边形。我想要的是:点某个多边形(不管是封闭与否)内部点时,会出现虚线框,以便确认是否是对该多边形执行boundary,如果不是封闭的,会在其外面的闭合多边形上出现虚线框,以便检查使之封闭,然后再boundary。</p><p>如果去掉(command "BOUNDARY" "A" "O" "P" "I" "N" "" ""&nbsp; p "")最后的"",能够出现虚线框,但(setq ent (entlast)) 语句选不中boundary后新生成的边界,实现不了转移图层的目的,这是什么原因呢?如何才能实现?<br/><br/></p>

xyz002 发表于 2009-12-22 12:04:00

<p><strong><font face="Verdana" color="#da2549">caoyin</font></strong>版主说的我也试了,</p><p>(defun c:tt()&nbsp; <br/>&nbsp; (setq ent (entlast))<br/>&nbsp; (setq p (getpoint)) <br/>&nbsp; (command "boundary" p "") <br/>&nbsp; (setq ss (ssadd)) <br/>&nbsp; (while (setq ent (entnext ent)) <br/>&nbsp;&nbsp;&nbsp; (ssadd ent ss)<br/>&nbsp; )<br/>&nbsp; (command "change" ss "" "p" "la" "图层1" "")&nbsp; <br/>)</p><p>但只要去掉(command "boundary"&nbsp;p "") 最后的" ",还是不能选中boundary后的边界,也就不能转移到新图层了</p>

caoyin 发表于 2009-12-22 23:56:00

<p>;;;--------------------------------<br/>(defun ttt (en / ss)<br/>&nbsp; (if en<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq ss (ssadd))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (setq en (entnext en))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (not (member (cdr (assoc 0 (entget en)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '("ATTRIB" "VERTEX" "SEQEND")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ssadd en ss)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (zerop (sslength ss)) (setq ss nil))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (ssget "_x")<br/>&nbsp; )<br/>)</p><p><br/>;;;--------------------------------<br/>(defun c:tt (/ la p e ss)<br/>(setq la (getvar 'clayer))<br/>(setvar 'clayer "图层1")<br/>(setq p(getpoint "\n指定内部点: "))<br/>(setq e (entlast))<br/>(vl-cmdf "_.bpoly"&nbsp;p "")<br/>(or (setq ss (ttt e))<br/>&nbsp;&nbsp;&nbsp; (alert "* 错误 *\n\n未找到有限边界。\n\n边界不闭合,或边界对象不可访问。")<br/>)<br/>(setvar 'clayer la)<br/>ss<br/>)</p>

xyz002 发表于 2009-12-23 13:06:00

多谢<strong><font face="Verdana" color="#da2549">caoyin</font></strong>版主

xhq1954425 发表于 2009-12-24 05:10:00

<p>问一下,下面有一个单独的<font color="#ce350f">SS</font>(红色的)是什么意思?看不懂!<img alt="" src="http://www.mjtd.com/bbs/Skins/Default/emot/em11.gif" style="MARGIN: 6px; CURSOR: pointer;"/>帮忙给解释一下!谢谢!</p><p>(defun c:tt (/ la p e ss)<br/>(setq la (getvar 'clayer))<br/>(setvar 'clayer "图层1")<br/>(setq p(getpoint "\n指定内部点: "))<br/>(setq e (entlast))<br/>(vl-cmdf "_.bpoly"&nbsp;p "")<br/>(or (setq ss (ttt e))<br/>&nbsp;&nbsp;&nbsp; (alert "* 错误 *\n\n未找到有限边界。\n\n边界不闭合,或边界对象不可访问。")<br/>)<br/>(setvar 'clayer la)<br/><font color="#d73e18">ss</font><br/>)</p>
页: [1] 2
查看完整版本: 如何获得boundary后的新生成的物体?