mccad 发表于 2002-9-24 22:14:00

请问:在下面的程序中,gpCode(0)=0,gpCode(1) =8,gpCode(0) =-4 表示?

请问:在下面的程序中,gpCode(0)=0,gpCode(1) =8,gpCode(0) =-4 分别表示
什么意思?
Sub AddToASelectionSet()
    ' 创建新的选择集
    Dim sset As AcadSelectionSet
    Set sset = ThisDrawing.SelectionSets.Add("SS1")
   
    Dim FilterType As Variant, FilterData As Variant
    Dim gpCode(1) As Integer, dataValue(1) As Variant
   
    '创建过滤器
    '本例为过滤图层为“7”的直线
    '使用的是变体数组进行定义
   
    '直线过滤器
    gpCode(0) = 0
    dataValue(0) = "LINE"
   
    '图层过滤器
    gpCode(1) = 8
    dataValue(1) = "7"
   
    FilterType = gpCode
    FilterData = dataValue
   
    ' 添加至选择集中,在选择过程中进行过滤
    ' 完成选择后按回车。
    sset.SelectOnScreen FilterType, FilterData
   
    ' 在选择集中循环并将每一已合条件的对象颜色更改为蓝色。
    Dim entry As AcadEntity
    For Each entry In sset
      entry.Color = acBlue
      entry.Update
    Next entry
End Sub
 
    用户也可以创建使用下表中的逻辑分组运算符的布尔表达式,以进行多条件的过滤,这些布尔运算符可以进行嵌套:
       起始运算符       包含的内容      结束运算符
         ""
         ""
         ""
         ""
    分组运算符由 -4 组指定。它们是成对出现的,必须在过滤器表中适当均衡。
    以下是使用布尔运算符的多条件过滤的例子,它过滤直线或圆弧:
Sub AddToASSet2()
' 创建新的选择集
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("SS1")
Dim FilterType As Variant, FilterData As Variant
Dim gpCode(3) As Integer, dataValue(3) As Variant
'创建过滤器
'本例为过滤直线或圆弧
'使用的是变体数组进行定义
'分组运算符
gpCode(0) = -4
dataValue(0) = ""
FilterType = gpCode
FilterData = dataValue
' 添加至选择集中,在选择过程中进行过滤
' 完成选择后按回车。
sset.SelectOnScreen FilterType, FilterData
' 在选择集中循环并将每一已合条件的对象颜色更改为蓝色。
Dim entry As AcadEntity
For Each entry In sset
    entry.Color = acBlue
    entry.Update
Next entry
End Sub
页: [1]
查看完整版本: 请问:在下面的程序中,gpCode(0)=0,gpCode(1) =8,gpCode(0) =-4 表示?