tiger0101 发表于 2007-10-11 11:20:00

请问vba如何实现选择图层为"aa",块名不是"405"的所有图元

请问vba如何实现选择图层为"aa",块名不是"405"的所有图元
   事实上,"aa"层中只应该有块名是“405”的块,我是要把除块名为"405"的其它块选出来标识错误。   
   这个选择语句如何实现

zzcctt 发表于 2007-10-15 08:59:00

dim II as integer
Dim gpCode(0 To 0) As Integer
    Dim DateValue(0 To 01) As Variant
    gpCode(0) = 0
    DateValue(0) =LayName'图层名自己输入
    Dim Filtertype As Variant, FilterDate As Variant
    Filtertype = gpCode
    FilterDate = DateValue
    Dim SSetObj As AcadSelectionSet
   
    If ThisDrawing.SelectionSets.Count0 Then
      For II = 0 To ThisDrawing.SelectionSets.Count - 1
            Set SSetObj = ThisDrawing.SelectionSets.Item(II)
            SSetObj.Delete
      Next
    End If
   
    Set SSetObj = ThisDrawing.SelectionSets.Add("AA")
    SSetObj.Select acSelectionSetAll, , , Filtertype, FilterDate'这是选择指定图层上所有的物体
Dim BLK As AcadBlockReference
    For II = SSetObj.Count - 1 To 0 Step -1
      If SSetObj.Item(I).ObjectName = "AcDbBlockReference" Then
            Set BLK = SSetObj.Item(I)
            If BLK.Name"405" Then
                '自己写要操作的代码
            End If
            
      End If
    Next

yusicad 发表于 2007-10-16 17:26:00

   Set BLK = SSetObj.Item(I)
            If BLK.Name"405" Then
好顶一下

fjfhgdwfn 发表于 2007-10-16 20:58:00

Dim FilterType(2) As Integer
   Dim FilterData(2) As Variant

   
   FilterType(0) = 8
   FilterData(0) = "aa"
   FilterType(1) = -4
   FilterData(1) = "/="'不是   
    FilterType(2) = 2
   FilterData(2) = "块名"'块名   
这样应好一些
页: [1]
查看完整版本: 请问vba如何实现选择图层为"aa",块名不是"405"的所有图元