明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4741|回复: 8

autocad vba 选择集过滤器问题

[复制链接]
发表于 2008-9-28 20:56:00 | 显示全部楼层 |阅读模式

 AutoCAD vba 选择集过滤器问题

以下代码运行不正常
Sub aa()
On Error GoTo errcontrol
 
    '创建选择集
    Set FilterSet = ThisDrawing.SelectionSets.Add("xxx")
   
    Dim FilterType(0 To 1) As Integer
    Dim FilterData(0 To 1) As Variant
    '设置过滤器类型
    FilterType(0) = 0
    FilterType(1) = 0
    '设置过滤数据
    FilterData(0) = "line"
    FilterData(1) = "arc"
    '使用过滤器,由用户在屏幕上选择
    FilterSet.SelectOnScreen FilterType, FilterData
   
   

errcontrol:
  ThisDrawing.SelectionSets("xxx").Delete

End Sub
而这段代码却运行正常,
Sub aa()
On Error GoTo errcontrol
 
    '创建选择集
    Set FilterSet = ThisDrawing.SelectionSets.Add("xxx")
   
    Dim FilterType(0 ) As Integer
    Dim FilterData(0 ) As Variant
    '设置过滤器类型
    FilterType(0) = 0
        '设置过滤数据
    FilterData(0) = "line"
      '使用过滤器,由用户在屏幕上选择
    FilterSet.SelectOnScreen FilterType, FilterData
errcontrol:
  ThisDrawing.SelectionSets("xxx").Delete

End Sub
那我想同时选择两种对象怎样写代码

发表于 2008-9-29 07:42:00 | 显示全部楼层
可以用第二种方法,过滤数据改成:
FilterData(0) = "line,arc"
发表于 2008-9-30 13:41:00 | 显示全部楼层

你这样写line和arc就是and的关系,CAD里面没有图元即是line也是arc的,所以你选不到,可以按2楼说的,也可以这样写,把关系写出来

Sub aa()
On Error GoTo errcontrol
 
    '创建选择集
    Set FilterSet = ThisDrawing.SelectionSets.Add("xxx") 
    
    Dim FilterType(0 To 3) As Integer
    Dim FilterData(0 To 3) As Variant
    '设置过滤器类型
    FilterType(0) = -4
    FilterType(1) = 0
    FilterType(2) = 0
    FilterType(3) = -4
    '设置过滤数据
    FilterData(0) = "<or"
    FilterData(1) = "arc"
    FilterData(2) = "line"
    FilterData(3) = "or>"
    '使用过滤器,由用户在屏幕上选择
    FilterSet.SelectOnScreen FilterType, FilterData    
   

errcontrol:
  ThisDrawing.SelectionSets("xxx").Delete

End Sub

发表于 2008-10-3 23:11:00 | 显示全部楼层
经常可以看到有人发选择集问题的贴子,是否可以将这个作为一个专题来做一个详细的教程。
发表于 2008-10-4 09:03:00 | 显示全部楼层

这个建议不错。

过滤器问题从2000年大家开始尝试使用VBA编程时就开始有相关的提问,到现在在网上也没有详细的教程。

自己写过相关的内容(当时是为了某本书),但后来并没有发表,过段时间找找把那段内容放出来。

发表于 2008-10-4 12:51:00 | 显示全部楼层
mccad发表于2008-10-4 9:03:00这个建议不错。过滤器问题从2000年大家开始尝试使用VBA编程时就开始有相关的提问,到现在在网上也没有详细的教程。自己写过相关的内容(当时是为了某本书),但后来并没有发表,过段时间找找把那

支持明总!

发表于 2008-10-23 10:11:00 | 显示全部楼层
非常支持
发表于 2010-6-15 17:15:00 | 显示全部楼层
可以用,这个方法比较好
设置过滤器类型
    FilterType(0) = -4
    FilterType(1) = 0
    FilterType(2) = 0
    FilterType(3) = -4
    '设置过滤数据
    FilterData(0) = "<or"
    FilterData(1) = "arc"
    FilterData(2) = "line"
    FilterData(3) = "or>"
发表于 2010-10-22 10:03:00 | 显示全部楼层

支持,

是应该出点选择集的专题了,我在这论坛上找了好多,很多人咨询这个关于选择集的问题!明总出个专题吧!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 20:24 , Processed in 0.152673 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表