jiangmolhm 发表于 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

jiangmolhm 发表于 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
页: [1]
查看完整版本: [已解决]如何给两个同名的块重命名?