楼上的,这个方法我知道.只是前段讨论的viewport不能用entmod改扩展数据. alin,这个方法是"定式"(哈哈,围棋术语都出来了),我就是想看看连(1001),("MYAPP")都不要(为空数组)是否可以删除xdata.不过我对数组以前研究不多,所以集思广益.问问大家. - 本例显示上例所附着的扩展数据。如果附着的扩展数据不是字符串(类型 1000)类型,则需要修改此代码。 Sub Ch10_ViewXData() ' 查找上例中创建的选择集 Dim sset As Object Set sset = ThisDrawing.SelectionSets.Item("SS1") ' 定义扩展数据变量以保存扩展数据信息 Dim xdataType As Variant Dim xdata As Variant Dim xd As Variant '定义索引计数器 Dim xdi As Integer xdi = 0 ' 遍历选择集中的对象 ' 并检索对象的扩展数据 Dim msgstr As String Dim appName As String Dim ent As AcadEntity appName = "MY_APP" For Each ent In sset msgstr = "" xdi = 0 ' 检索 appName 扩展数据类型和值 ent.GetXData appName, xdataType, xdata ' 如果未初始化 xdataType 变量, ' 则没有可供该图元检索的 appName 扩展数据 If VarType(xdataType) <> vbEmpty Then For Each xd In xdata msgstr = msgstr & vbCrLf & xdataType(xdi) _ & ": " & xd xdi = xdi + 1 Next xd End If ' 如果 msgstr 变量为 NULL,则没有扩展数据 If msgstr = "" Then msgstr = vbCrLf & "NONE" MsgBox appName & " xdata on " & ent.ObjectName & _ ":" & vbCrLf & msgstr Next entEnd Sub
看这句:' 如果 msgstr 变量为 NULL,则没有扩展数据.那么反过来,是不是可以通过setxdata空数组参数来消除扩展数据?
|