乐筑天下

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

有关块属性的读取

[复制链接]

6

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2004-10-14 17:03:00 | 显示全部楼层 |阅读模式
再次麻烦版主了,lzh741206
知道块名:a;块属性标记:如图号的属性标记值为:th;
如何快速找到这个块,并把图号的属性标记值为th的文字内容读出来,我用vb6.0,引用object cad 2004库,请列出源代码,谢谢!
回复

使用道具 举报

124

主题

837

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1333
发表于 2004-10-15 00:10:00 | 显示全部楼层
依据块名作选择集; 然后用下面方法得到属性:
                         ' Get the attributes for the block reference
                         Dim varAttributes As Variant
                         varAttributes = blockRefObj.GetAttributes
                               
                         Dim strAttributes As String
                         Dim I As Integer
                         For I = LBound(varAttributes) To UBound(varAttributes)
                                                         strAttributes = strAttributes & "         Tag: " & varAttributes(I).TagString & _
                                                                                                                                                                                         "                 Value: " & varAttributes(I).textString & "                         "
                         Next
回复

使用道具 举报

6

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2004-10-15 09:05:00 | 显示全部楼层
依据块名作选择集,怎么做,谢谢
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-10-15 09:08:00 | 显示全部楼层
(entget(car(entsel)))
命令行键入,选择一个块看看结果
回复

使用道具 举报

124

主题

837

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1333
发表于 2004-10-15 09:22:00 | 显示全部楼层
作选择集:
Public Sub test()
                         ' Create the selection set
                         Dim ssetObj As AcadSelectionSet
                         Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
                         Dim mode As Integer
                         mode = acSelectionSetAll
                         
                         ' Add all the Circles to the selection set that lie within the crossing of (28,17,0) and
                         ' (-3.3, -3.6,0) by filtering from the current drawing
                         Dim gpCode(0 To 1) As Integer
                         Dim dataValue(0 To 1) As Variant
                         gpCode(0) = 0
                         dataValue(0) = "Insert"
                         gpCode(1) = 2
                         dataValue(1) = "a"         '块名
                         
                         Dim groupCode As Variant, dataCode As Variant
                         groupCode = gpCode
                         dataCode = dataValue
                         
                         ssetObj.Select mode, , , groupCode, dataCode
                         MsgBox ssetObj.Count
                         
                         '然后你循环ssetObj中的每个块实体...
End Sub
回复

使用道具 举报

124

主题

837

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1333
发表于 2004-10-15 18:15:00 | 显示全部楼层
这样吧: Sub test()
                         Dim blks As AcadBlocks
                         Dim blk As AcadBlock
                         
                         Set blks = ThisDrawing.Blocks
                         
                         Set blk = blks.Item("a")
                         
                         Dim i As Integer
                         
                         For i = 0 To blk.Count - 1
                                                         Dim obj As AcadObject
                                                         Set obj = blk.Item(i)
                                                         Dim str As String
                                                         str = obj.ObjectName
                                                         If obj.ObjectName = "AcDbAttributeDefinition" Then
                                                                                         Dim attrObj As AcadAttribute
                                                                                         Set attrObj = obj
                                                                                         Dim tag, prompt, value As String
                                                                                         tag = attrObj.TagString
                                                                                         prompt = attrObj.PromptString
                                                                                         value = attrObj.TextString
                                                                                         MsgBox "Tag: " & tag & vbCr & "Value: " & value & vbCr & "Value: " & value & vbCr
                                                         End If
                         Next
                         
End Sub
测试dwg:
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:z5sifseylqs.dwg 
下载次数:0  文件大小:34.2 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

6

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2004-10-18 17:38:00 | 显示全部楼层
王咣生版主:
       
我能看到你的dwgtext的内容,但运行程序就是看不到我的图框里的内容,百思不得其解,麻烦你看看是怎么回事,比如我想看块tbz00的drawno标记的属性文字,总为空,读drawno这个tagstring倒是可以读到。
       
dwg图已发到你的邮箱里了,谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-16 05:33 , Processed in 0.448771 second(s), 71 queries .

© 2020-2025 乐筑天下

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