我没有#039;t将扩展数据连接到as I'之前的块;我总是把它添加到blockreferences中
但现在我发现,如果我将其添加到现有块定义中,它将自动成为acad设计中心数据的一部分
此处';这是一对替补来展示它
如果运行第一个,则会得到预期(和期望)结果;1001年    ;您的;1000    ;CCCC第二个调试。打印;1001年    ;ACAD;1000    ;设计中心数据;1002    ;{1070 1
;1001年    ;您的;1000    ;中交
- Sub MakeBlockwithXdata()
- Dim oBlock As AcadBlock
- Dim Zero(2) As Double
- Set oBlock = ThisDrawing.Blocks.Add(Zero, "L")
- oBlock.AddCircle Zero, 4
- Dim DataType(1) As Integer
- Dim Data(1) As Variant
- DataType(0) = 1001: Data(0) = "Yours"
- DataType(1) = 1000: Data(1) = "CCCC"
- oBlock.SetXData DataType, Data
- getxd "L"
-
- End Sub
- Sub AddXdatatoBlock()
- Dim oBlock As AcadBlock, P
- Dim br As AcadBlockReference
- ThisDrawing.Utility.GetEntity br, P, "Pick"
- Set oBlock = ThisDrawing.Blocks(br.Name)
- Dim DataType(1) As Integer
- Dim Data(1) As Variant
- DataType(0) = 1001: Data(0) = "Yours"
- DataType(1) = 1000: Data(1) = "CCCC"
- oBlock.SetXData DataType, Data
- getxd oBlock.Name
-
- End Sub
- Function getxd(sBlock As String)
- Dim oBlock As AcadBlock
- Set oBlock = ThisDrawing.Blocks(sBlock)
- Dim sMt As String
- Dim xdataOut As Variant
- Dim xtypeOut As Variant
- Dim i As Integer
-
- Debug.Print
- oBlock.GetXData "", xtypeOut, xdataOut
- If IsEmpty(xtypeOut) = False Then
- For i = 0 To UBound(xtypeOut)
- Debug.Print xtypeOut(i), xdataOut(i)
- Next
- End If
-
- End Function
|