本帖最后由 作者 于 2008-11-6 16:36:05 编辑
你的代码经过如下修改可用 Sub mysel() Dim sset As AcadSelectionSet '定义选择集对象 Dim element As AcadEntity '定义选择集中的元素对象 Dim objdic As AcadDictionary Dim objrec As AcadXRecord Dim jim As String Dim xdtype(10) As Integer '这里修改为Integer Dim xdt(10) As Variant Set sset = ThisDrawing.SelectionSets.Add("ca1110s") '新建一个选择集 sset.SelectOnScreen '提示用户选择 Set element = sset.Item(0) Dim i As Integer For i = 0 To 5 '好像这里不能大于10,这个得再研究研究,如果你研究出来了请与我分享一下(QQ:45096732) xdtype(i) = i xdt(i) = Str(i) Next Set objdic = element.GetExtensionDictionary() jim = "jim" '这里需要先初始化 Set objrec = objdic.AddXRecord(jim) objrec.SetXRecordData xdtype, xdt objrec.GetXRecordData xdtype, xdt '因为在上面数组的上限设的是10,所以 '后面的4个值是NULL For i = 0 To UBound(xdtype) MsgBox xdt(i) Next i End Sub XRecord 对象用来存储和管理任意数据。该对象概念上与 XData 相似但不限制长度和顺序。 与 XData 不同的是,XRecords 的值使用所有低于 1000 的标准 AutoCAD 组码。它支持所有标准的 AutoCAD 组码。也就是说,除了所有正常使用的数据类型,XRecord 还能够存储对象 ID,这使 XRecords 可以拥有其它对象包括其它的 XRecords。 以下组码对所有 XRecord 对象通用: 组码 | 描述 |
---|
100 | 子类标记 (AcDbXrecord) | 1-369 (除了 5 和 105) | 这些值可以由程序以任何方式使用。 |
|