乐筑天下

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

我对VB熟悉,但对AUTOCAD VBA还是一知半解。。。求图内查找物料程序

[复制链接]

3

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
17
发表于 2014-4-27 17:38:00 | 显示全部楼层 |阅读模式
我在图内画了若干个房间,房间用双层矩形表示,
            每一个矩形内写一个文字(物料名称)    矩形代表一种物料大类
            每一个圆形内写一个文字(物料名称)    圆形代表另一种物料大类
            每一个自画形状写一个文字(物料名称)  自画形状代表另一种物料大类
想写一个查找程序,这个图内查找物料摆放在哪里。。。
我写了一段初始窗口的。。求助高手帮忙解答。。。
1、如何获取每个形状内的文字。。。
2、如何获取每种不同的形状,并且包括有自画的形状
3、 VBA中是如何查找的,这几个问题解决了,我估计就可以自已解决的问题了。。。 谢谢!

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

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

使用道具 举报

19

主题

71

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
147
发表于 2014-4-27 22:21:00 | 显示全部楼层
你就不能将那些圆、方框什么的做成属性块啊,如果是那样的话遍历起来岂不是容易多了。
回复

使用道具 举报

3

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
17
发表于 2014-4-28 20:43:00 | 显示全部楼层
可以呀,定义成块后,只要能找到就可以。。。
楼上的高手能否出手?给一点代码
回复

使用道具 举报

19

主题

71

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
147
发表于 2014-4-28 22:45:00 | 显示全部楼层

我算不上是高手,也是初学一二,最近乐筑天下论坛的大神似乎都不在家。
下面是我写的一个供你参考,并附上你的图纸:
  1. '我在你的图上创建了3种属性快,名称分别为:
  2. '“福瓶”——方框,“花瓶”——圆,“青花缸”——圆锥
  3. '现在以“福瓶”为例子
  4. Private Sub Demo()
  5.    
  6.     '先创建选择集,为了可以多次创建选择集应该删掉原来存在的选择集
  7.     Dim i As Integer
  8.     Dim SSet As AcadSelectionSet
  9.     For i = 0 To ThisDrawing.SelectionSets.Count - 1
  10.         If StrComp("X_SSET", ThisDrawing.SelectionSets.Item(i).Name, vbTextCompare) = 0 Then
  11.             ThisDrawing.SelectionSets.Item(i).Delete
  12.             Exit For
  13.         End If
  14.     Next
  15.     Set SSet = ThisDrawing.SelectionSets.Add("X_SSET")
  16.      '定义过滤表,做到精确选取
  17.     Dim fType(2) As Integer
  18.     Dim fDate(2) As Variant
  19.     fType(0) = 0: fDate(0) = "INSERT"
  20.     fType(1) = 2: fDate(1) = "福瓶"
  21.     fType(2) = 66: fDate(2) = 1
  22.     '到图纸中选择
  23.     SSet.SelectOnScreen fType, fDate
  24.    
  25.     '遍历内容
  26.     Dim Ent As AcadBlockReference
  27.     Dim AttArry As Variant
  28.     For i = 0 To SSet.Count - 1
  29.         Set Ent = SSet.Item(i)
  30.         AttArry = Ent.GetAttributes
  31.         '应为我只定义一个属性,所以AttArry下标为0即可
  32.         ThisDrawing.Utility.Prompt vbCrLf & "第 " & i + 1 & " 个属性块的值为:" & AttArry(0).TextString
  33.     Next
  34.    
  35. End Sub

请点击此处下载

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

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

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


回复

使用道具 举报

1

主题

19

帖子

4

银币

初来乍到

Rank: 1

铜币
23
发表于 2017-10-16 13:46:00 | 显示全部楼层
谢谢楼主分享,学习了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 15:38 , Processed in 0.624555 second(s), 79 queries .

© 2020-2025 乐筑天下

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