乐筑天下

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

进来讨论一下如何合并多段线

[复制链接]

3

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
17
发表于 2014-4-18 17:54:00 | 显示全部楼层 |阅读模式
小弟刚编完一个软件,是VBA编程的。做完后想把整个图形做一次多段线合并操作。查阅了不少资料,最后别人给我一段代码,原本
他那个都是三维多段线画的,我的是二维,就稍微改了下,可是运行程序也不能合并多段线,也不报错,希望有人能帮忙分析下我的
代码,看看哪里错了,谢谢哦!!
    Dim PlineObj As AcadLWPolyline
    Dim ss_line As AcadSelectionSet
    Dim ent As AcadEntity
    Dim line_code(0) As Integer
    Dim line_value(0) As Variant
    Dim coord As Variant
'    Dim i, j As Long
'    On Error GoTo errexit
    Set ss_line = AcadApp.ActiveDocument.SelectionSets.Add("sPolyLines")
    line_code(0) = 0
    line_value(0) = "POLYLINE"
    ss_line.Select acSelectionSetAll ', , , line_code, line_value
        For Each ent In ss_line
'            ent.color = acGreen
            If ent.ObjectName = "AcadLWPolyline" Then
                Dim PL2D() As Double
                Dim count As Integer
                Dim ent2D As AcadLWPolyline
                Set ent2D = ent
                ent.color = acGreen
                count = (UBound(ent2D.Coordinates) + 1) / 2
                ReDim Preserve PL2D(cuunt * 2 - 1) As Double
                For j = 0 To UBound(ent2D.Coordinates) / 2
                    PL2D(j * 2) = ent2D.Coordinates(j * 2)
                    PL2D(j * 2 + 1) = ent2D.Coordinates(j * 2 + 1)
                Next
      
                Set PlineObj = AcadApp.ActiveDocument.ModelSpace.AddLightWeightPolyline(PL2D)
                PlineObj.Closed = ent2D.Closed
                PlineObj.color = ent2D.color
                PlineObj.Linetype = ent2D.Linetype
                PlineObj.Layer = ent2D.Layer
                PlineObj.LinetypeScale = ent2D.LinetypeScale
                PlineObj.Lineweight = ent2D.Lineweight
                ent2D.Delete
            End If
            ent.Update
        Next
'errexit:
'    ss_line.Clear
    ss_line.Delete
回复

使用道具 举报

0

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2014-4-20 21:38:00 | 显示全部楼层
我知道cass有相邻的复合线连接的功能,你可以尝试。多段线一般不都是三维的吗,不过z为0而已。如果你说的是二维多段线,那个属性比较特别,目前还没学习到那,我一般都是把二维多段线转成轻量线再处理呢。
回复

使用道具 举报

3

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
17
发表于 2014-4-21 15:38:00 | 显示全部楼层

你有做过的实例吗?可以指点一下吗?
回复

使用道具 举报

23

主题

561

帖子

13

银币

中流砥柱

Rank: 25

铜币
653
发表于 2014-4-27 22:59:00 | 显示全部楼层
可以调用cad 的命令pedit
回复

使用道具 举报

1

主题

21

帖子

5

银币

初来乍到

Rank: 1

铜币
25
发表于 2015-2-24 18:35:00 | 显示全部楼层
可以用么?
回复

使用道具 举报

pmq

14

主题

61

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2015-2-24 21:17:00 | 显示全部楼层
我做了一个多段线连接,只能一条一条的选择,把第一条多段线与第二条多段连接。选第一条需要连接的多段线的一端,再选择第二条多段线要连接的一端,把两条从段线连接成一条。
回复

使用道具 举报

0

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
9
发表于 2018-3-26 17:08:00 | 显示全部楼层
学习了谢谢!!
回复

使用道具 举报

3

主题

16

帖子

2

银币

初来乍到

Rank: 1

铜币
28
发表于 2018-9-18 21:38:00 | 显示全部楼层
If ent.ObjectName = "AcadLWPolyline" Then
轻量多段线的 objectName 是 AcDbPolyline ,你把名字写错了。
班上就没有个叫 AcadLWPolyline 的同学,所以老师怎么喊都没人答应!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 03:34 , Processed in 1.547696 second(s), 68 queries .

© 2020-2025 乐筑天下

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