|
发表于 2004-11-17 20:26:00
|
显示全部楼层
多谢了,应该不成问题,可以弄出来了。附上我的另外一段代码,请斑竹看看,为什么只能读出第一个数据。
Dim returnobj As Object
Dim prjname As String
Dim ss As Object
Dim gpcode(1) As Integer
Dim datavalue(1) As Variant
Dim xdtype As Variant
Dim xdata As Variant
Dim p As Variant
Dim ent As Object
'On Error Resume Next
Call acadopen
AppActivate "Autocad"
Set acadutil = acadobj.ActiveDocument.Utility
Call acadutil.GetEntity(returnobj, , "..选择任意井")
prjname = returnobj.layer
Set ss = acadobj.ActiveDocument.SelectionSets.Add("*TEST*")
gpcode(0) = 8: gpcode(1) = 1001
datavalue(0) = prjname: datavalue(1) = "cj_gx_10"
ss.Select 5, , , gpcode, datavalue
'ss.selectonscreen gpcode, datavalue
If ss.Count = 0 Then
ss.Delete
Exit Sub
Else:
grid.Rows = 1
For Each ent In ss
'逐个加入表格
grid.AddItem (grid.Rows)
returnobj.GetXData "cj_gx_10", xdtype, xdata
grid.TextMatrix(grid.Rows - 1, 1) = xdata(4)
grid.TextMatrix(grid.Rows - 1, 2) = ent.Handle
grid.TextMatrix(grid.Rows - 1, 5) = xdata(3)
Next ent
End If
ss.Delete
上面是vb代码,可以读出当前图形中所有的含某特定扩展数据的物体,我看了一下,实体的句饼是不同的也就是确实把各个实体读了出来,但是用returnobj.GetXData "cj_gx_10", xdtype, xdata
获取实体的扩展数据的时候,第一次是能获得的,到第二次的时候好像是不能获得的,所以写出来的数据都是和第一次相同的。我想是可能xdtype, xdata不为空的原因,不知道是不是这个?又需要如何处理?
谢谢了。 |
|