在选择集时能不能用画一条直线来选择图元?
<P>在选择集时能不能用画一条直线来选择图元,而不用框选的方式?</P><P>意思就是画一条直线,跟这个直线相交的所有图元均被选中</P> 在图元很多的时候这样要比框选要慢 沿着直线做若干个选择集. <TABLE class=tablebody2 style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="90%" border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 12pt" width="100%">
<P><IMG alt=发贴心情 src="http://www.mjtd.com/Bbs/skins/default/topicface/face1.gif" border=0> <B></B><BR>沿着直线做若干个选择集. ?</P>
<P> 这说的轻巧,但要怎样实现得了呢</P></TD></TR></TBODY></TABLE> 以直线的包装盒为线框用选择集选择,然后依次判断各实体是否与直线相交 WHOLIN高明之士,实现应不难:1)直线设定为N等份,求出各等份点坐标,2)以各等份点建立选择集,3)建立1-N的循环. <DIV>哪有没这么复杂的?建立选择集有acSelectionSetFence方式的</DIV>
<DIV> '起点<BR> FromPnt = ThisDrawing.Utility.GetPoint(, vbCrLf & "扯旗线起点: ")<BR> If err Then<BR> err.Clear<BR> End<BR> End If<BR> <BR> '终点<BR> Topnt = ThisDrawing.Utility.GetPoint(FromPnt, vbCrLf & "扯旗线终点: ")<BR> If err Then<BR> err.Clear<BR> End<BR> End If<BR> </DIV>
<DIV> '画标注线<BR> Set LineObj = ThisDrawing.ModelSpace.AddLine(FromPnt, Topnt)<BR> <BR> '与标注线相交的线段组成选择集<BR> Set ssetobj = CreateSelectionSet("ObjSet")<BR> mode = acSelectionSetFence<BR> pointsArray(0) = FromPnt(0): pointsArray(1) = FromPnt(1): pointsArray(2) = 0<BR> pointsArray(3) = Topnt(0): pointsArray(4) = Topnt(1): pointsArray(5) = 0<BR> gpCode(0) = 0: dataValue(0) = "LINE"<BR> ssetobj.SelectByPolygon mode, pointsArray, gpCode, dataValue<BR> <BR></DIV>
页:
[1]