动态块的参数读写

动态块的参数读写

' 查询动态块的自定义特性
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

posted on   因思道客  阅读(27)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示