Rekomendowane odpowiedzi

Opublikowano

Cześć, używam kodu do zaznaczania bloków i filtruje je aby pobierało tylko te z nazwą "test". Czasem bloki te grupuję. Czy makro może wychwycić, że dany blok o nazwie "test" jest już w jakiejś grupie, wyrzuci mi błąd (msgbox) i wyjdzie z funkcji?

Dim oSset As ZcadSelectionSet
          With ThisDrawing.SelectionSets
               While .count > 0
                    .item(0).Delete
               Wend
          Set oSset = .Add("*")
          End With
           
          ftype(0) = 2: fdata(0) = "test"
          dxfCode = ftype: dxfValue = fdata

    oSset.SelectOnScreen dxfCode, dxfValue

 

Opublikowano

Trzeba sprawdzić porównać wybrane elementy z każdym elementem w każdej grupie.

    Dim ent As ZcadEntity
    For I = 0 To ssetObj.Count
        Set ent = ssetObj.Item(I)
    
        Dim grs As ZcadGroups
        Dim gr  As ZcadGroup
    
        Set grs = ThisDrawing.groups    
        For Each gr In grs
            For J = 0 To gr.Count
                Dim entwgrupie As ZcadEntity
                Set entwgrupie = gr.Item(J)
                If entwgrupie Is ent Then
                    MsgBox "element jest w grupie"
                    Exit Sub
                End If
            Next J
        Next
    Next I
    

 

Opublikowano

Jeżeli 

ssetObj

jest moim 
 

oSset

to wyskakuje mi błąd 

Run-time error '-2147467259 (80004005)':
Method 'Item" of object "IZcadSelectionSet' failed
 

->    Set ent = oSset.item(i)

 

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie