乐筑天下

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

[编程交流] 按名称选择块

[复制链接]

16

主题

36

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 11:35:35 | 显示全部楼层 |阅读模式
如何使用VBA在模型空间中按(块)名称选择块?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:45:53 | 显示全部楼层
http://www.cadtutor.net/forum/showthread.php?t=25142
回复

使用道具 举报

16

主题

36

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 12:00:11 | 显示全部楼层
谢谢,
 
如何按块名创建Acad选择集?
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:06:17 | 显示全部楼层
创建一个包含特定名称的所有块引用的过滤选择集的过程如下所示:
 
  1. Sub GetNamedInserts()
  2.   Dim entbref As AcadBlockReference
  3.   Dim TempObjSS As AcadSelectionSet
  4.   Dim intCode(2) As Integer
  5.   Dim varData(2) As Variant
  6.   Dim strName As String
  7.   
  8.      strName = ThisDrawing.Utility.GetString(0, "Enter Block name to select: ")
  9.      SSInit
  10.      Set TempObjSS = ThisDrawing.SelectionSets.Add("TempSSet")
  11.      intCode(0) = 0: varData(0) = "Insert"
  12.      intCode(1) = 67: varData(1) = 0
  13.      intCode(2) = 2: varData(2) = strName
  14.      TempObjSS.Select acSelectionSetAll, , , intCode, varData
  15.      MsgBox "There are " & TempObjSS.Count & " inserts referencing " & strName & " in Modelspace"
  16. End Sub
  17. Sub SSInit()
  18. Dim SSS As AcadSelectionSets
  19. Dim SS As AcadSelectionSet
  20.   Set SSS = ThisDrawing.SelectionSets
  21.      If SSS.Count > 0 Then
  22.         For Each SS In SSS
  23.            If SS.Name = "TempSSet" Then
  24.               SS.Delete
  25.               Exit For
  26.            End If
  27.         Next
  28.      End If
  29. End Sub  

 
 
还要注意,过滤器数据还可以包含通配符,以便进行更广泛的选择。例如,如果过滤器是:
 
intCode(2)=2:varData(2)=strName&“*”
 
strName为“Block”,则选择集将包括引用“Block1”、“Block2”、“Block3”等的插入。
回复

使用道具 举报

3

主题

61

帖子

59

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:11:40 | 显示全部楼层
我们不能用filter或QSELECT来实现这一点吗?
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:18:48 | 显示全部楼层
 
绝对地
 
然而,可以想象,一个有用的VBA例程将处理选择集,而不仅仅是返回计数。
回复

使用道具 举报

16

主题

36

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 12:34:18 | 显示全部楼层
 
谢谢,
 
以及如何缩放到模型空间中的选定块?
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:42:42 | 显示全部楼层
该线程的第#6条显示了一种基于实体的边界框将视图缩放到特定实体的方法。
 
http://www.cadtutor.net/forum/showthread.php?t=42967
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:14 , Processed in 0.324348 second(s), 68 queries .

© 2020-2025 乐筑天下

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