动态块的参数读写
动态块的参数读写
' 查询动态块的自定义特性
Public Sub DynamicBlock()
Dim ent As AcadEntity
Dim blk As IAcadBlockReference
Dim pnt As Variant
On Error Resume Next
ThisDrawing.Utility.GetEntity ent, pnt, "GetBlock:"
Debug.Print ent.ObjectName
If ent.ObjectName = "AcDbBlockReference" Then
Set blk = ent
Else
Exit Sub
End If
Dim dyBlkPropCol As Variant ' 自定义特性的集合
Dim dyBlkProp As AcadDynamicBlockReferenceProperty ' 自定义特性
Dim i As Long
Dim j As Long
Dim v As Variant ' 参数值的范围
If blk.IsDynamicBlock Then
' 获得动态块的自定义特性
dyBlkPropCol = blk.GetDynamicBlockProperties
For i = 0 To UBound(dyBlkPropCol)
Set dyBlkProp = dyBlkPropCol(i)
Debug.Print "-----------------"
Debug.Print "名称:" & dyBlkProp.PropertyName
Debug.Print "说明:" & dyBlkProp.Description
Debug.Print "显示:" & dyBlkProp.show
Debug.Print "只读:" & dyBlkProp.ReadOnly
Debug.Print "类型:" & dyBlkProp.UnitsType
Debug.Print "值:" & dyBlkProp.Value
'注意写入值的类型、允许值要对应,否则不接受
dyBlkProp.Value=XXX
If IsArray(v) And UBound(v) >= 0 Then
Debug.Print "值范围"
For j = 0 To UBound(v)
Debug.Print v(j)
Next
End If
Next
End If
End Sub
浙公网安备 33010602011771号