乐筑天下

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

基于区块名称、属性值的区块计数

[复制链接]

6

主题

103

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2007-9-7 09:46:09 | 显示全部楼层 |阅读模式
我有一个程序,用不同的选择类型来计算不同的块。现在,我已经得到了它,这样它将根据属性标签的值来计算块数。现在,我想将块名添加到组合中,因为一些块可能与其他块具有相同的属性值。
所以现在代码抛出了类似这样的内容...
我想添加块名,使计数看起来更像这样,以显示哪个块与属性值相关联。
这是我目前为止的代码。我有一个创建字典的MS脚本运行时的参考。
  1. Private Sub GetAttributeCount()
  2.     Dim objAttKeys As Variant
  3.     Dim objAttItems As Variant
  4.     Dim objAttDict As Dictionary
  5.     Dim varAtts() As AcadAttributeReference
  6.     Dim objBlock As AcadBlockReference
  7.     Dim obj As AcadEntity
  8.     Dim i, x As Integer
  9.    
  10.     Set objAttDict = New Dictionary
  11.    
  12.     x = 1
  13.     For Each obj In SSet
  14.         Set objBlock = obj
  15.         If obj.HasAttributes Then
  16.             varAtts = obj.GetAttributes
  17.             For i = LBound(varAtts) To UBound(varAtts)
  18.                 If UCase$(varAtts(i).TagString) = "DATATYPE" Then
  19.                     If objAttDict.Exists(varAtts(i).TextString) = False Then
  20.                         objAttDict.Add varAtts(i).TextString, 1
  21.                     Else
  22.                         objAttDict.item(varAtts(i).TextString) = objAttDict.item(varAtts(i).TextString) + 1
  23.                     End If
  24.                 End If
  25.                 On Error GoTo 0
  26.             Next i
  27.         End If
  28.     Next obj
  29.    
  30.     i = 0
  31.    
  32.     objAttKeys = objAttDict.Keys
  33.     objAttItems = objAttDict.Items
  34.     For x = 0 To UBound(objAttKeys)
  35.         Debug.Print objAttKeys(x) & vbTab & objAttItems(x)
  36.         i = i + objAttItems(x)
  37.     Next
  38. End Sub

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-9-9 09:43:14 | 显示全部楼层
嗨Matt
看看这个线程
http://discussion.autodesk.com/thread.jspa?threadID=606029
希望可能有帮助
~'J'~
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-9-9 12:00:45 | 显示全部楼层
字典可能不是最好的容器
在我看来,您可以拥有
Block1 A 3和Block1 B 2。
通过解析逗号,您可以使用
Block1,A”3和“Block1,B”2实现这一点
,但在集合中使用变体数组通常更容易
Bc(0)=块。名称:Bc(1)=附件。textstring:Bc(2)=count
现在您按名称为每个blockref创建一个selset,
对该块的Bc进行排序
添加到集合中
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-9-10 08:33:23 | 显示全部楼层
谢谢伙计们!
这会给我一些思考的东西。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 00:53 , Processed in 0.625694 second(s), 61 queries .

© 2020-2025 乐筑天下

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