明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1801|回复: 5

不能用getxdata

[复制链接]
发表于 2006-6-4 21:23:00 | 显示全部楼层 |阅读模式

本人选择一个物体,并对其set xdata,其中data为“螺丝”,现在想用get xdata方法得到

“螺丝”,但msgbox 后是空的 ,请问为什么,程序如下,多谢各位
Public Sub xd()
Dim i As Integer, ssetobj As AcadSelectionSet, selobj As AcadEntity
Dim i1 As Integer, datatype(0) As Integer, data(0) As Variant, getobj As Variant, dattype As Variant, dat As Variant
i = ThisDrawing.SelectionSets.Count
While (i > 0)
If ThisDrawing.SelectionSets.Item(i - 1).Name = "xd" Then
ThisDrawing.SelectionSets.Item(i - 1).Delete
End If
i = i - 1
Wend
Set ssetobj = ThisDrawing.SelectionSets.Add("xd")
datatype(0) = 1001: data(0) = "螺丝"
For i1 = 0 To ssetobj.Count - 1
    Set selobj = ssetobj.Item(i1)
    selobj.SetXData datatype, data
    getobj = selobj.GetXData("", dattype, dat)
Next
    MsgBox getobj
End Sub

发表于 2006-6-5 13:21:00 | 显示全部楼层

setXData中datatype, data的元素个数都要大于1,否则将把符合1001码的XData删除

1001码是程序名,不要带参数

后面可以跟一个1000码附上文本信息

 

 

 楼主| 发表于 2006-6-5 13:31:00 | 显示全部楼层

斑竹,去改了一下,好象还是不行,斑竹能不能帮我修一下,只在执行时msgbox可以显示"螺丝"这两个字就行,在此先谢谢斑竹!!

发表于 2006-6-5 13:41:00 | 显示全部楼层

Public Sub xd()
On Error Resume Next
Dim ssetobj As AcadSelectionSet
Dim selobj As AcadEntity
Dim xt, xd
Dim datatype(1) As Integer, data(1)
ThisDrawing.SelectionSets("xd").Delete
Set ssetobj = ThisDrawing.SelectionSets.Add("xd")
ssetobj.SelectOnScreen
datatype(0) = 1001: data(0) = "myapp"
datatype(1) = 1000: data(1) = "螺丝"

For i = 0 To ssetobj.Count - 1
    Set selobj = ssetobj.Item(i)
    selobj.SetXData datatype, data
    selobj.GetXData "myapp", xt, xd
     MsgBox xd(1)
  
Next
End Sub

发表于 2006-6-5 14:00:00 | 显示全部楼层

顶顶!

 楼主| 发表于 2006-6-5 16:55:00 | 显示全部楼层

多谢版主这样好心的人

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 02:50 , Processed in 0.179296 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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