乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 27|回复: 1

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

[复制链接]

5

主题

10

帖子

3

银币

初来乍到

Rank: 1

铜币
30
发表于 2011-7-28 20:40:00 | 显示全部楼层 |阅读模式
高手,能不能帮我做个多段线上任意两点查询线长的vba啊研究了很久也不知道如何下手,实在不行就是批量查询多段线长的vba也行,不要总的距离要分开的,谢谢啦
回复

使用道具 举报

3

主题

58

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2011-9-19 17:15:00 | 显示全部楼层
参考一下下面的代码:      
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
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-30 16:45 , Processed in 0.930035 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表