SW-Makro / Vorhandensein der Schicht prüfen

Hallo ihr alle

Ich bin auf der Suche nach einer Programmier-Synthaxis, um das Vorhandensein oder Nichtvorhandensein einer Schicht zu überprüfen.

Für weitere Details, was ich möchte, ist:

- Wenn die "foo"-Ebene existiert, muss sie ausgeblendet werden.

- Wenn die Ebene "foo" nicht existiert, muss sie erstellt werden.

Ich kann bereits ein- und ausblenden, eine Makroebene erstellen, aber ich kann das Vorhandensein nicht überprüfen oder nicht.

Vielen Dank im Voraus für Ihre Unterstützung

Cdlt

Julianisch

Hallo

Sie müssen in den SW-APIs nach Hilfe suchen.

Wenn Sie nach Layer suchen , finden Sie in VBA zwei sehr interessante Beispiele:

  1. Layer-Suche
  2. Erstellen einer Ebene

Guter Code...

4 „Gefällt mir“

Kannst du uns bitte ein Stück Code zeigen =)

Dimitri

1 „Gefällt mir“

Hallo

So listen Sie die Ebenen auf und blenden die "foo"-Ebene aus, falls sie vorhanden ist:

Sub main()
    Dim swApp                       As SldWorks.SldWorks
    Dim swModel                     As SldWorks.ModelDoc2
    Dim swLayerMgr                  As SldWorks.LayerMgr
    Dim vLayerArr                   As Variant
    Dim vLayer                      As Variant
    Dim swLayer                     As SldWorks.Layer
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swLayerMgr = swModel.GetLayerManager
    vLayerArr = swLayerMgr.GetLayerList
    For Each vLayer In vLayerArr
        Set swLayer = swLayerMgr.GetLayer(vLayer)
        If swLayer.Name = "toto" Then
            swLayer.Visible = False
        End If
    Next
End Sub

Herzliche Grüße

2 „Gefällt mir“

Danke d.roger

Dies ist in der Tat der Code, zu dem ich durch das Studium der von remrem gegebenen Beispiele gelangt bin.

Vielen Dank an alle für Ihren Beitrag!