乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: T.Willey

设置XRecord

[复制链接]

28

主题

249

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2006-7-17 20:35:41 | 显示全部楼层
Bob,这实际上并不完全正确……如果您的索引基数为0,则使用Dim数据(1)作为任意值;知道你指的是数据(0到1)…这里是#039;这是一个简单的例子来证明这一点:
  1. Sub test()
  2. Dim MyArray(2) As String
  3. MyArray(0) = "Test1"
  4. MyArray(1) = "Test2"
  5. MyArray(2) = "Test3"
  6. Dim i As Integer
  7. For i = 0 To UBound(MyArray)
  8.     Debug.Print MyArray(i)
  9. Next
  10. End Sub
现在,我更喜欢你展示的方式,让你知道较低的&上界,但它'不是强制性的
Tim,
关于对象的错误是由于您使用此格式造成的
  1. Set Data(0) = Str1
  2. Set Data(1) = Str2
  3. Set DataType(0) = 1
  4. Set DataType(1) = 2
只有在投射某种类型的对象时才使用Set。在这种情况下,字符串和整数不是对象,因此请丢失集合….但会出现另一个错误,因为Autocad希望DXF代码是整数,并且数组必须按此进行尺寸标注….请确保更改第一个函数/子以接受整数数组
因此,对于使用DXF代码的任何内容,例如Xrecords、SelectionSet过滤器等,您需要使用以下格式:
  1. Dim DataType(1) As Integer
  2. Dim Data(1) As Variant
  3. Data(0) = Str1
  4. Data(1) = Str2
  5. DataType(0) = 1
  6. DataType(1) = 2
HTH
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2006-7-17 22:19:39 | 显示全部楼层
谢谢杰夫 即#039;这就是我快速回答而不是集中注意力的结果 
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2006-7-18 11:06:16 | 显示全部楼层
谢谢杰夫和鲍勃 现在我'我犯了另一个错误,我不知道;我不明白为什么 这是代码
  1. Public Sub AddXRec(ByRef XrecName As String, DataType As Variant, Data As Variant)
  2. Dim DictCol As Collection
  3. Dim MyDict As Object
  4. Dim Xrec As AcadXRecord
  5. Set DictCol = This.Drawing.Dictionaries
  6. MyDict = DictCol.Add("VBAtoLisp")
  7. Xrec = MyDict.AddXRecord(XrecName)
  8. Xrec.SetXRecordData DataType, Data
  9. End Sub
这里出错了
  1. MyDict = DictCol.Add("VBAtoLisp")
说它是;预期函数或变量;。。它想要什么 我想我可以用add添加一本新词典,但它没有#039;我似乎不喜欢它 它正在突出显示;。添加;代码的一部分,如果有帮助的话
编辑:;如果我使用Set MyDict=DictCol,它甚至会出错。添加(“VBAtoLisp”)[根据Jeff关于使用Set for objects的评论尝试。]
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2006-7-18 11:29:01 | 显示全部楼层

  1. Public Sub AddXRec(ByRef XrecName As String, DataType As Variant, Data As Variant)
  2. Dim DictCol As Collection
  3. Dim MyDict As AcadDictionary
  4. 'you want this to be a dictionary so no reason not to Dim it as such
  5. Dim Xrec As AcadXRecord
  6. Set DictCol = This.Drawing.Dictionaries
  7. Set MyDict = DictCol.Add("VBAtoLisp")
  8. 'if you are setting an object, you need Set X = Y
  9. Set Xrec = MyDict.AddXRecord(XrecName)
  10. Xrec.SetXRecordData DataType, Data
  11. 'if you are setting the properties of an object, you don't
  12. End Sub
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2006-7-18 11:33:08 | 显示全部楼层
我也试过了,鲍勃 也许你没有'看不到我对其他帖子的编辑 我将继续查看帮助,看看是否能够理解正在发生的事情;再次感谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 23:55 , Processed in 1.008987 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表