[求助]:怎样可以获得由-boundary命令生成的多条多义线或面域命(在含孤岛的情况)
<p>如题,怎样可以获得由-boundary命令生成的多条多义线或面域命(在含孤岛的情况)?</p><p>(defun test()</p><p>(setq ssee (ssget))</p><p>(setq ptt (getpoint))</p><p>(COMMAND "-boundary" "A" "O" "P" "B" "N" SSEE "" "X" PTT "")</p><p>(setq ss (ssget "p"))</p><p>)</p><p>ss返回最后一个边界名,得不到内部的检测孤岛生成的边界名,请高手指教!!!</p><p>如图十字丝为光标选择点,我想得到紫线与四条绿线的选择集,但只能得到紫线选择集,有没有其他办法得到我的效果,请指教,小弟先谢了!!!</p> 本帖最后由 作者 于 2007-3-4 10:49:02 编辑 <br /><br /> <p>我用的方法有两种,一种是反应器,一种是entnext,下面的是entnext方法</p><p>;;____________________________________________________________________________________________________<br/>;; 〓 (lt:sslast en mod) 〓<br/>;; [功能] 获取在图元 en 之后产生的图元的选择集<br/>;; [参数] en----图元名<br/>;; mod---返回方式,为T时返回选择集,为nil时返回图元名列表<br/>;; [返回] 选择集或图元名列表<br/>;; [测试]1.(setq ent (entlast))<br/>;; 执行创建图元的命令,如 LINE,BOUNDARY<br/>;; (setq lst (lt:sslast ent T))<br/>;; 2.(setq s (lt:sslast (car(entsel)) T))<br/>(defun lt:sslast (ent mod / enlst ss n)<br/> (while ent<br/> (setq ent (entnext ent))<br/> (if (and ent (not (vlax-erased-p ent))) (setq enlst (cons ent enlst)))<br/> )<br/> (if enlst<br/> (if mod<br/> (progn (setq ss (ssadd) n (length enlst))<br/> (repeat n (setq ent (nth (setq n (1- n)) enlst)) (ssadd ent ss))<br/> ss<br/> )<br/> enlst<br/> )<br/> )<br/>)</p> 我想在生成边界之前先生成一个临时图层,然后在边界生成后,可以选择这个图层上所有多义线得到,最后把它们转到我想要的图层上,再删除临时图层.这样比较麻烦,每次还要判断临时图层在不在图形中,如在,更改新的临时图层名.各位大侠有没有更简便的方法. caoyin发表于2007-3-4 10:07:00static/image/common/back.gif我用的方法有两种,一种是反应器,一种是entnext,下面的是entnext方法;;____________________________________________________________________________________________________;; 〓<p>谢谢caoyin的指点,用entnext函数得下一个实体的方法,这确实是个好方法,还可以再改进一下,只返回主图元的选择集或主图元名,一般我们不对子实体进行处理,如果需要,可以通过主实体找到子实体,下面是我改了一下,加了main参数,main为T时,返回主实体,main为nil时返回全部实体.再次谢谢!!!</p><p>(defun lt:sslast (ent mod main / enlst ss n)<br/> (vl-load-com)<br/> (while ent<br/> (setq ent (entnext ent))<br/> (if (and ent (not (vlax-erased-p ent)))<br/> (cond ((and main (not (MEMBER (CDR (ASSOC 0 (ENTGET ent))) (quote ("ATTRIB" "VERTEX" "SEQEND")))))<br/> (setq enlst (cons ent enlst)))<br/> ((not main) (setq enlst (cons ent enlst)))<br/> )<br/> )<br/> )<br/> (if enlst<br/> (if mod<br/> (progn (setq ss (ssadd) n (length enlst))<br/> (repeat n (setq ent (nth (setq n (1- n)) enlst)) (ssadd ent ss))<br/> ss<br/> )<br/> enlst<br/> )<br/> )<br/>)</p> byghbcx 发表于 2007-3-5 09:07 static/image/common/back.gif
谢谢caoyin的指点,用entnext函数得下一个实体的方法,这确实是个好方法,还可以再改进一下,只返回主图元的选 ...
正好要用到,但是看不明白是什么意思? :lol:lol:lol:lol:lol
页:
[1]