乐筑天下

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

[编程交流] VBA-选择集

[复制链接]

9

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 15:00:28 | 显示全部楼层 |阅读模式
如何在vba中创建设备选择集?
 
提前感谢
 
卡尔
回复

使用道具 举报

0

主题

89

帖子

147

银币

限制会员

铜币
-9
发表于 2022-7-6 15:05:39 | 显示全部楼层
设备选择集?
卡尔,你说的设备是什么意思?
 
毫升
回复

使用道具 举报

4

主题

24

帖子

16

银币

初来乍到

Rank: 1

铜币
27
发表于 2022-7-6 15:10:08 | 显示全部楼层
也许他想要这样
  1. Sub sss()
  2. Dim SS As AcadSelectionSet
  3. Set SS = ThisDrawing.SelectionSets.Add("SS")
  4. SS.SelectOnScreen
  5. Dim Ent As AcadEntity
  6. Dim EntName As String
  7. For Each Ent In SS
  8. EntName = Ent.ObjectName
  9. EntName = Mid(EntName, 5, 10)
  10. MsgBox "This object selected is = " & EntName
  11. Next Ent
  12. SS.Delete ' to delete selection set exist
  13. End Sub

 
回复

使用道具 举报

9

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 15:14:36 | 显示全部楼层
我有一段代码,它创建了一个名为SYSNODE的块选择集
 
我想修改它以选择设备而不是块,但我不知道怎么做。
 
 
除了智能块之外,不确定如何定义它们。例如,我们使用的设备之一是插座。它存储设备的所有电气信息(面板、电路、电压、电流、导线尺寸等),然后我们使用标签显示某些信息。我认为设备仅在acad的MEP/ABS版本中可用。
回复

使用道具 举报

0

主题

89

帖子

147

银币

限制会员

铜币
-9
发表于 2022-7-6 15:17:20 | 显示全部楼层
哦,那就可以解释了
因此,它们不是块引用;否则,另一个代码将起作用。
 
在VBAIDE(VBA环境)中,如果转到“工具参考”(Tools References),
向下滚动,您可能会看到特定于该应用程序的类型库。
当我使用LDD时,有一个特定于这些对象的类型库。
 
因此,如果您看到MEP的类型库,然后选中该框,那么您应该能够访问这些对象进行编程。
当您发现这个对象(设备)在VBA中被调用时,您将能够在代码中包含它。如果还有问题,我们可以帮你更多。
 
毫升
回复

使用道具 举报

9

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 15:20:47 | 显示全部楼层
好的,我能够找到一个设备的解决方案,但是有人知道如何创建动态块的选择集吗?
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 15:22:05 | 显示全部楼层
我手头没有代码,但基本上是为块创建一个过滤器
回复

使用道具 举报

0

主题

132

帖子

198

银币

限制会员

铜币
-21
发表于 2022-7-6 15:28:01 | 显示全部楼层
基本上,您将获得一组blockref并根据其属性查询它们。IsDynamicBlock
回复

使用道具 举报

9

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 15:31:20 | 显示全部楼层
 
这就是我遇到的问题,我不知道如何设置过滤器。
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 15:33:13 | 显示全部楼层
  1.       Set objSelSet = objSelCol.Add("SSName")
  2.      intType(0) = 0: varData(0) = "INSERT"
  3.      intType(1) = 2: varData(1) = "BlkName"
  4.      objSelSet.Select Mode:=acSelectionSetAll, filtertype:=intType, filterdata:=varData
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 21:03 , Processed in 0.388756 second(s), 72 queries .

© 2020-2025 乐筑天下

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