明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2094|回复: 1

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

[复制链接]
发表于 2002-9-24 22:14:00 | 显示全部楼层 |阅读模式
请问:在下面的程序中,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

 

    用户也可以创建使用下表中的逻辑分组运算符的布尔表达式,以进行多条件的过滤,这些布尔运算符可以进行嵌套:

       起始运算符       包含的内容      结束运算符
         "<AND"      一个或多个操作数     "AND>"
         "<OR"       一个或多个操作数     "OR>"
         "<XOR"        两个操作数         "XOR>"
         "<NOT"        一个操作数         "NOT>"
    分组运算符由 -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) = "<or"

  '直线过滤器
  gpCode(1) = 0
  dataValue(1) = "LINE"

  '圆弧过滤器
  gpCode(2) = 0
  dataValue(2) = "ARE"

  '分组运算符
  gpCode(3) = -4
  dataValue(3) = "or>"

  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
发表于 2002-9-25 12:10:00 | 显示全部楼层

建立过滤器,如果你用过ALISP编过程序应该可以了解的

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

本版积分规则

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

GMT+8, 2024-11-28 20:59 , Processed in 0.247488 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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