关于多段线上任意两点查线长的问题
高手,能不能帮我做个多段线上任意两点查询线长的vba啊研究了很久也不知道如何下手,实在不行就是批量查询多段线长的vba也行,不要总的距离要分开的,谢谢啦 参考一下下面的代码:For i = 0 To lCount - 1
sName = sDT.Item(i).ObjectName
' Debug.Print sName
If sName = "AcDbPolyline" Then
Set dPlyLine = sDT.Item(i)
Coord = dPlyLine.Coordinate(0) '第一个点
dPoint(0) = Coord(0)
dPoint(1) = Coord(1)
' dPointFirst(0) = Coord(0)
' dPointFirst(1) = Coord(1)
' Debug.Print "0" & ":Coord(0)=" & Coord(0)
' Debug.Print "0" & ":Coord(1)=" & Coord(1)
lPtNum = (UBound(dPlyLine.Coordinates) - 1) / 2
'-------------------------------------------------------------
For i = 1 To lPtNum
Coord = dPlyLine.Coordinate(i)
dLen = dLen + Sqr((Coord(0) - dPoint(0)) ^ 2 + (Coord(1) - dPoint(1)) ^ 2)
dPoint(0) = Coord(0)
dPoint(1) = Coord(1)
' Debug.Print i & ":Coord(0)=" & Coord(0)
' Debug.Print i & ":Coord(1)=" & Coord(1)
Next
If dPlyLine.Closed Then
dLen = dLen + Sqr((dPointFirst(0) - dPoint(0)) ^ 2 + (dPointFirst(1) - dPoint(1)) ^ 2)
End If
end if
Next
如果是直接求多段线的长度,可以用下面的方法更简单,你要求多段线上任易两点的长度就用上面的方法改一下就可以了。
' Debug.Print "dPlyLine.Length= " & dPlyLine.Length
dLen = dPlyLine.Length
页:
[1]