arden 发表于 2004-5-21 16:40:00

[VBA]请问怎么判断多段线内部的岛或孔?

我在计算统计面积时怎么判断多段线内部的岛或孔然后将岛或孔的面积扣除?

今晚打老虎 发表于 2004-5-21 16:51:00

用多段线选择一下,把选中的对象的面积除去


建立个AcadSelectSet


然后SelectByPolygon


你看看行么?

arden 发表于 2004-5-21 16:56:00

"用多段线选择一下,把选中的对象的面积除去"


关键是怎样才能选中对象?岛是多段线而岛外围还是多段线,请详细些

今晚打老虎 发表于 2004-5-21 17:22:00

Sub sSelect()<BR>       Dim objSelect As AcadSelectionSet<BR>       'dpnts 就是多段线的控制点集<BR>       Dim dPnts(0 To 14) As Double<BR>       dPnts(0) = 0: dPnts(1) = 0: dPnts(2) = 0<BR>       dPnts(3) = 50: dPnts(4) = 0: dPnts(5) = 0<BR>       dPnts(6) = 50: dPnts(7) = 50: dPnts(8) = 0<BR>       dPnts(9) = 0: dPnts(10) = 50: dPnts(11) = 0<BR>       dPnts(12) = 0: dPnts(13) = 0: dPnts(14) = 0<BR>       <BR>       Set objSelect = ThisDrawing.SelectionSets.Add("temp11")<BR>       <BR>       objSelect.SelectByPolygon acSelectionSetWindowPolygon, dPnts<BR>       <BR>       '选择的所有内部的对象<BR>       MsgBox objSelect.Count<BR>End Sub<BR>

arden 发表于 2004-5-21 17:52:00

非常感谢 <A name=20054><FONT color=#000066><B>今晚打老虎</B></FONT></A>        你的意思是不是把多段线的端点做窗口选择?不过Dim dPnts(0 To 14) As Double中 dPnts的个数是不定的,怎样动态定义其大小?<BR>

efan2000 发表于 2004-5-21 22:54:00

使用动态数组


Dim dPnts() As Double


ReDim dPnts(0 To 14)

雪山飞狐_lzh 发表于 2004-5-21 23:03:00

直接按点求边界不就行了
页: [1]
查看完整版本: [VBA]请问怎么判断多段线内部的岛或孔?