明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1067|回复: 1

关于多段线上任意两点查线长的问题

[复制链接]
发表于 2011-7-28 20:40:04 | 显示全部楼层 |阅读模式
高手,能不能帮我做个多段线上任意两点查询线长的vba啊研究了很久也不知道如何下手,实在不行就是批量查询多段线长的vba也行,不要总的距离要分开的,谢谢啦
发表于 2011-9-19 17:15:41 | 显示全部楼层
参考一下下面的代码:      
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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 19:52 , Processed in 0.156650 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表