乐筑天下

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

[已解决]如何给两个同名的块重命名?

[复制链接]

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2010-8-5 11:44:00 | 显示全部楼层 |阅读模式
我将一个块复制黏贴成另外一个块后,如何在VBA里给两个块重命名啊? 以下代码执行后,两个块还是变成一样的名字

  Dim sset As AcadSelectionSet
    Set sset = ThisDrawing.SelectionSets.Add("Selection")
    ' Define the filter list, only Circle objects
    ' will be selectable
    Dim FilterType(0) As Integer
    Dim FilterData(0) As Variant
    FilterType(0) = 0
    FilterData(0) = "Block"

    ' Prompt the user to select objects
    ' and add them to the selection set
    sset.Select acSelectionSetAll, FilterType, FilterData

    MsgBox "Number of objects selected: " & sset.Count
    For Count = 0 To sset.Count - 1
        Set BlockObj = ThisDrawing.Blocks(sset.Item(Count).EffectiveName) '感觉是这里有问题,但是不知道怎么分别查找这两个同名块
        BlockObj.name = sset.Item(Count).ObjectID
    Next Count
    sset.Delete
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2010-8-5 13:04:00 | 显示全部楼层
参考代码
    Dim objBlkRef As AcadBlockReference
    Dim blockNow As AcadBlock
    Dim objb As AcadBlockReference
    Dim BlockY As AcadBlock
    Dim BlockYorg As ACAD_POINT

                    Set objBlkRef = elem
                    Set BlockY = ThisDrawing.Blocks.Item(objBlkRef.EffectiveName)
                    BlockYorg = BlockY.Origin
                    
                    Set blockNow = ThisDrawing.Blocks.Add(BlockYorg, objBlkRef.ObjectID)
                    Set objb = blockNow.InsertBlock(BlockYorg, objBlkRef.name, 1, 1, 1, 0)
                    objb.Explode
                    objb.Delete
                    objBlkRef.name = blockNow.name
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-1 09:06 , Processed in 0.243524 second(s), 56 queries .

© 2020-2025 乐筑天下

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