此处修订代码:
必须将存储在Textstring数组属性中的属性值赋给变量,然后将新块属性值赋给变量。
- Public Sub Merge_LnBLk()
- Dim ss As AcadSelectionSet
- Dim UNode As Variant 'AcadText
- Dim UGL As Variant 'AcadText
- Dim UIL As Variant 'AcadText
- Dim DNode As Variant 'AcadText
- Dim DGL As Variant 'AcadText
- Dim DIL As Variant 'AcadText
- Dim LnLen As Variant 'AcadText
- Dim Size As Variant 'AcadText
- Dim GetPt As Variant
- Dim BlkName As String
-
- Dim NodeBlk As AcadBlockReference
- Dim FromBlk As AcadBlockReference
- Dim ToBlk As AcadBlockReference
- Dim SizeBlk As AcadBlockReference
-
- Dim objAttribs As Variant
- Dim FromobjAttribs As Variant
- Dim ToobjAttribs As Variant
- Dim SizeobjAttribs As Variant
-
- On Error Resume Next
- ThisDrawing.SelectionSets("s").Delete
- On Error GoTo 0
- Set ss = ThisDrawing.SelectionSets.Add("s")
- ss.SelectOnScreen
-
- Set FromBlk = ss.Item(0)
- Set ToBlk = ss.Item(1)
- Set SizeBlk = ss.Item(2)
- GetPt = ActiveDocument.Utility.GetPoint(, "Pick where the block to be inserted")
- BlkName = "LNNode"
- Set NodeBlk = ActiveDocument.ModelSpace.InsertBlock(GetPt, BlkName, 1, 1, 1, 0)
-
-
- FromobjAttribs = FromBlk.GetAttributes()
- UNode = FromobjAttribs(0).TextString
- UGL = FromobjAttribs(1).TextString
- UIL = FromobjAttribs(2).TextString
-
- ToobjAttribs = ToBlk.GetAttributes()
- DNode = ToobjAttribs(0).TextString
- DGL = ToobjAttribs(1).TextString
- DIL = ToobjAttribs(2).TextString
-
- SizeobjAttribs = SizeBlk.GetAttributes()
- LnLen = SizeobjAttribs(0).TextString
- Size = SizeobjAttribs(1).TextString
-
-
- objAttribs = NodeBlk.GetAttributes()
- objAttribs(0).TextString = UNode
- objAttribs(1).TextString = UGL
- objAttribs(2).TextString = UIL
- objAttribs(3).TextString = DNode
- objAttribs(4).TextString = DGL
- objAttribs(5).TextString = DIL
- objAttribs(6).TextString = LnLen
- objAttribs(7).TextString = Size
- NodeBlk.Update
-
- End Sub
|