乐筑天下

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

[编程交流] 具有filtertype的选择集

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 22:52:32 | 显示全部楼层 |阅读模式
您好,我想在我的图形中选择两种类型的块,插入点位于(比方说)-10、-10,0和10,10,0之间
 
以下代码正在运行(没有插入点部分)
 
 
  1. Dim ssNew as acadselectionset
  2. set ssNew = thisdrawing.selectionsets.add("newset")
  3. Dim FilterType(0 to 2) as integer
  4. Dim FilterData(0 to 2) as variant
  5. FilterType(0) = 0: FilterData(0) = "INSERT"
  6. FilterType(1) = 2: FilterData(1) = "Blockname1, Blockname2"
  7. FilterType(2) = 67: FilterData(2) = 0 'only modelspace...
  8. ssNew.Select acSelectionSetAll, , , FilterType, FilterData

将点-10、-10,0和10,10,0向右添加到选择部分将不起作用,因为这样整个块需要在该区域中,我只需要插入点。所以有些事
 
FilterType(3)=10:FilterData(3)=>=-10和
 
有什么想法吗?
 
提前谢谢。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 23:25:19 | 显示全部楼层
好的,发现了以下问题。。。
 
  1. Dim ssNew as AcadSelectionSetset ssNew = ThisDrawing.Selectionsets.add("newset")
  2. Dim dblPoint(0 to 2) as double
  3. dblPoint(0) = 0: dblPoint(1) = 0: dblPoint(2) = 0
  4. Dim FilterType(0 to 3) as integer
  5. Dim FilterData(0 to 3) as variant
  6. FilterType(0) = 0: FilterData(0) = "INSERT"
  7. FilterType(1) = 2: FilterData(1) = "Blockname1, Blockname2"
  8. FilterType(2) = 67: FilterData(2) = 0 'only modelspace...
  9. FilterType(3) = 10: FilterData(3) = dblPoint
  10. ssNew.Select acSelectionSetAll, , , FilterType, FilterData

 
通过这段代码,我得到了插入点与dblPoint完全相同的块。但我想要的不仅仅是点,而是一个点的窗口。。。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-7 00:05:05 | 显示全部楼层
只需选取所有块,然后单步穿过它们,检查插入点是否在您的窗口内,而不是尝试在选择中过滤。
 
 
对于Cntr=0到SSnew。计数-1
xmin xmax和ymin ymax true=在窗口内,然后执行某些操作
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 05:45 , Processed in 0.638730 second(s), 70 queries .

© 2020-2025 乐筑天下

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