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