nami 发表于 2003-6-6 13:16:00

请教关于选择集过滤的问题

要在选择集中过滤出内容为“A“的文本,我的程序如下,不知道为何出错,请执教
Sub test()
    Dim Myss As AcadSelectionSet
    Set Myss = ThisDrawing.SelectionSets.Add("Myss")
   
    Dim Mode As Integer
    Mode = acSelectionSetWindow
   
    Dim Point1, point2 As Variant
    Point1 = ThisDrawing.Utility.GetPoint(, "Select the first point")
    point2 = ThisDrawing.Utility.GetCorner(Point1, "Select second point")
   
    Dim gpCode(0 To 2) As Integer
    Dim DataValue(0 To 2) As Variant

    gpCode(0) = 0
    DataValue(0) = "Text"
    gpCode(1) = -4
    DataValue(1) = "="
    gpCode(2) = 1
    DataValue(2) = "A"
    Myss.Select acSelectionSetWindow, Point1, point2, gpCode, DataValue

End Sub

是不是实体对象的公共组码不对呀,能提供完整的DXF组码吗?谢先!

efan2000 发表于 2003-6-6 13:28:00

过滤机制的用法有误

选择内容为"A"的单行文字,可以不使用逻辑运算符。下面的条件就够了。
    Dim gpCode(0 To 1) As Integer
    Dim DataValue(0 To 1) As Variant

    gpCode(0) = 0
    DataValue(0) = "Text"
    gpCode(1) = 1
    DataValue(1) = "A"

nami 发表于 2003-6-6 13:51:00

多谢,再问一个菜鸟问题

选择结束后,如何释放选择集。比如我现在的程序执行一遍后,再执行的话,就出现错误提示:the named selection set exists
谢先!

efan2000 发表于 2003-6-6 14:03:00

使用Delete方法删除它

不过,也可以在程序开始时检查它是否存在,如果存在就引用,再用Clear清空选择集内的实体,不存在就新创建一个。当然使用Delete方法也可以。

nami 发表于 2003-6-6 14:09:00

多谢

光想着delete方法是选择集连同实体一起删除,先清空的话,就没问题了。不知道自己在想什么。
页: [1]
查看完整版本: 请教关于选择集过滤的问题