明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2994|回复: 3

看这里死气沉沉,继续放码,查看对象扩展属性

[复制链接]
发表于 2014-6-5 21:38 | 显示全部楼层 |阅读模式
这里个查看对象扩展属性的过程,网上有类似的,但是,哪个代码有问题,好像还是一本正规出版物里的代码!
  1. Public Sub ViewXData()                                         ' 查找上例中创建的选择集
  2. '   On Error Resume Next
  3.     Dim sset As AcadSelectionSet
  4.     For Each sset In ThisDrawing.SelectionSets
  5.         If sset.Name = "SS1" Then
  6.             ThisDrawing.SelectionSets.Item("SS1").Delete
  7.             Exit For
  8.         End If
  9.     Next
  10.     Set sset = ThisDrawing.SelectionSets.Add("SS1")
  11.     sset.SelectOnScreen
  12.     ' 定义扩展数据变量以保存扩展数据信息
  13.     Dim xdataType As Variant
  14.     Dim xdata     As Variant
  15.     Dim xd        As Variant
  16.     '定义索引计数器
  17.     Dim xdi       As Integer
  18.     xdi = 0
  19.     ' 遍历选择集中的对象
  20.     ' 并检索对象的扩展数据
  21.     Dim msgstr     As String
  22.     Dim strAppName As String
  23.     Dim ent        As AcadEntity
  24.     strAppName = ""
  25.     For Each ent In sset
  26.         msgstr = ""
  27.         xdi = 0
  28.         ' 检索 appName 扩展数据类型和值
  29.         ent.GetXData strAppName, xdataType, xdata
  30.         ' 如果未初始化 xdataType 变量,
  31.         ' 则没有可供该图元检索的 appName 扩展数据
  32.         If VarType(xdataType) <> vbEmpty Then
  33.             For Each xd In xdata
  34.                
  35.                 If VarType(xd) And vbArray Then
  36.                     msgstr = msgstr & vbCrLf & xdataType(xdi) & ": " & CStr(xd(0)) & "," & CStr(xd(1)) & "," & CStr(xd(2))
  37.                 Else
  38.                     msgstr = msgstr & vbCrLf & xdataType(xdi) & ": " & CStr(xd) 'xd如果是数组或其他对象类型就会出错
  39.                 End If
  40.                 xdi = xdi + 1
  41.             Next xd
  42.         End If
  43.         ' 如果 msgstr 变量为 NULL,则没有扩展数据
  44.         If msgstr = "" Then msgstr = vbCrLf & "NONE"
  45.         'MsgBox strAPPNAME & " xdata on " & ent.ObjectName & _
  46. ":      " & vbCrLf & msgstr
  47.         ThisDrawing.Utility.Prompt strAppName & " XData on " & ent.ObjectName & ":" & _
  48.         vbCrLf & msgstr & vbCrLf
  49.         'ThisDrawing.SendCommand Chr$(vbKeyCancel)
  50.     Next ent
  51. End Sub


发表于 2014-6-6 10:05 | 显示全部楼层
谢谢您的好代码
发表于 2014-6-6 10:22 | 显示全部楼层
谢谢了!收藏了!
发表于 2024-2-23 13:38 | 显示全部楼层
谢谢了!谢谢了!谢谢了!谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 01:31 , Processed in 0.343222 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表