[求助]:[0217]怎样捕抓用TRIM、BREAK等命令后所产生的两物件呢?
<P>[求助]:怎样捕抓用TRIM、BREAK等命令后所产生的两物件呢?<BR>小弟用TRIM、BREAK等命令后,<BR>物件就变成两个了,<BR>那如果要捕捉这两物件,<BR>该用哪各命令才可以捕抓的到呢?<BR>烦请各位高手可以解答一下<BR>谢谢~</P><P>如:<BR>TRIM一段弧后,所产生的两段弧,该怎样捕抓.<BR>BREAK一段线后,所产生的两段线,该怎样捕抓.</P> <P>在break和trim命令之前,本身就可以得到物体,break和trim命令之后,会多出一个物体,可以用(entlast)来得到。</P> <P> <A name=83998><FONT color=#000066><B>ljpnb</B></FONT></A> 楼主您这样说</P>
<P>是指之前用一次entlast</P>
<P>用过这些命令之后再用一次 entlast 吗?</P> <P>我用这样的程序但不行耶</P>
<P>(setq ee (car (entsel)))<BR>(setq ee1 (entget ee))<BR>(command "_.Break" ee "_f" Pause "@")<BR>(SETQ ss (entlast))<BR>(SETQ ss1 (entget ss))</P> 本帖最后由 作者 于 2006-2-18 5:56:31 编辑
小弟找到答案了
(setq e(entsel "\n选择多段线: ")
s1 (car e)
)
(command "break" e pause)
(setq s2 (entlast))
(princ "\ns1 = ")
(princ "\ns2 = ")
但如果是像 ljpnb 楼主您以前发过一篇
dispbbs.asp?boardid=3&id=46805(defun c:test ()
(setq obj1 (vlax-ename->vla-object (car (entsel "\n选择线段1:"))))
(setq obj2 (vlax-ename->vla-object (car (entsel "\n选择线段2:"))))
(setq startpoint1 (vla-get-startpoint obj1)
p1 (vlax-safearray->list (vlax-variant-value startpoint1))
endpoint1 (vla-get-endpoint obj1)
p2 (vlax-safearray->list (vlax-variant-value endpoint1))
startpoint2 (vla-get-startpoint obj2)
p3 (vlax-safearray->list (vlax-variant-value startpoint2))
endpoint2 (vla-get-endpoint obj2)
p4 (vlax-safearray->list (vlax-variant-value endpoint2))
)
(setq coord (vla-IntersectWith obj1 obj2 acExtendBoth)
p0 (vlax-safearray->list (vlax-variant-value coord))
)
(vla-put-startpoint obj1 coord)
(vla-put-startpoint obj2 coord)
(if (> (distance p0 p1) (distance p0 p2))
(progn
(vla-put-endpoint obj1 startpoint1)
(setq p2 p1)
)
)
(if (> (distance p0 p3) (distance p0 p4))
(progn
(vla-put-endpoint obj2 startpoint2)
(setq p4 p3)
)
)
(setq rad 10)
(setq point1 (vlax-3d-point (polar p0 (angle p0 p2) rad))
point2 (vlax-3d-point(polar p0 (angle p0 p2) (* rad 2.0)))
point3 (vlax-3d-point(polar p0 (angle p0 p4) rad))
point4 (vlax-3d-point(polar p0 (angle p0 p4) (* rad 2.0)))
)
(vla-put-startpoint obj1 point1)
(vla-put-endpoint obj1 point2)
(vla-put-startpoint obj2 point3)
(vla-put-endpoint obj2 point4)
)
写的程序,想要补抓往圆心的那线断,
是否也是使用
(vla-put-startpoint obj1 point1)
(vla-put-endpoint obj1 point2)
来重画线断呢?
但关於在圆上求出的相交点,
就不知道是在哪段描述,
及线转为 vlisp后就不用先删除线段在画出吗?
以上问题希望您能解答一下
感谢您
<P>你指出的我以前贴过那个程序,我是通过直接修改两直线的端点来实现最终的目的,并没有进行break或是trim。</P> <P>01.是这样的,如果以您这最后重绘而成的图元来说,</P>
<P>如要抓取该怎样做呢?</P>
<P>02.那如果是由这程序来完成重绘的动作,也可以轻易的重画出内圆的线了~</P>
<P>是否如此呢?</P>
页:
[1]