szj612 发表于 2015-11-23 21:32:23

如何去除扩展属性?

例如:用 ent.SetXData Ty, v 添加的属性,其中Ty(0)="aaa"
    我想把这个属性去掉,用 ent.GetXData "aaa", Ty, v 得不到返回值

zzyong00 发表于 2015-12-1 22:12:03

Public Sub DeleteAllObjXData()             '删除多个对象的所有扩展数据                     
   
    Dim SSet As AcadSelectionSet
    For Each SSet In ThisDrawing.SelectionSets
      If SSet.name = "SS1" Then
            ThisDrawing.SelectionSets.Item("SS1").Delete
            Exit For
      End If
    Next
    Set SSet = ThisDrawing.SelectionSets.Add("SS1")
    SSet.SelectOnScreen
    ' 定义扩展数据变量以保存扩展数据信息
    Dim XdataType As Variant
    Dim xdata   As Variant
    Dim xd      As Variant
   
    Dim DataType(0) As Integer
    Dim Data(0)      As Variant
   
    '定义索引计数器
    Dim xdi       As Integer
    xdi = 0
    ' 遍历选择集中的对象
    ' 并检索对象的扩展数据
    Dim strAppName As String
    Dim objEnt      As AcadEntity
    strAppName = ""
    For Each objEnt In SSet
      xdi = 0
      ' 检索 appName 扩展数据类型和值
      objEnt.GetXData strAppName, XdataType, xdata
      ' 如果未初始化 xdataType 变量,
      ' 则没有可供该图元检索的 appName 扩展数据
      If VarType(XdataType) <> vbEmpty Then
            For Each xd In XdataType
                If StrComp(XdataType(xdi), "1001", vbTextCompare) = 0 Then
                  DataType(0) = 1001
                  Data(0) = xdata(xdi)
                  objEnt.SetXData DataType, Data
                End If
                xdi = xdi + 1
            Next xd
      End If
      ThisDrawing.Utility.Prompt "消除扩展数据成功!" & vbCrLf

    Next objEnt
End Sub

szj612 发表于 2015-12-7 17:01:26

谢谢楼上的热心解答!

szj612 发表于 2019-3-25 00:07:56

好久没有登录了,真的没有看到楼上的回复,不知zzyong00大侠还在吗?顺便请教一下加分如何操作?

szj612 发表于 2019-3-25 00:13:44

szj612 发表于 2015-12-7 17:01
谢谢楼上的热心解答!

分已加,但愿你能看到,很惭愧,在论坛上问了很多问题,从来没有给谁加过分,我一直以为那是管理员的事:L

zzyong00 发表于 2019-4-8 16:32:39

szj612 发表于 2019-3-25 00:13
分已加,但愿你能看到,很惭愧,在论坛上问了很多问题,从来没有给谁加过分,我一直以为那是管理员的事

:lol开个玩笑,当真了
页: [1]
查看完整版本: 如何去除扩展属性?