SW Macro / Aanwezigheid van laag controleren

Hoi allemaal

Ik ben op zoek naar een programmeersynthaxis om het al dan niet bestaan van een laag te controleren.

Voor meer informatie wil ik:

- Als de "foo"-laag bestaat, moet deze worden verborgen.

- Als de "foo"-laag niet bestaat, moet deze worden aangemaakt.

Ik kan al verbergen/tonen, een macrolaag maken, maar ik kan het bestaan niet controleren of niet.

Bij voorbaat dank voor uw steun

Cdlt

Julian

Hallo

U moet in de SW-API's zoeken naar hulp.

Als je zoekt op Layer , vind je twee zeer interessante voorbeelden in VBA:

  1. Lagen zoeken
  2. Een laag maken

Goede code...

4 likes

Kun je ons een stukje code laten zien alsjeblieft =)

Dimitri

1 like

Hallo

Om de lagen weer te geven en de "foo"-laag te verbergen als deze bestaat:

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

Vriendelijke groeten

2 likes

Dank je wel d.roger

Dit is inderdaad de code waartoe ik was gekomen door het bestuderen van de voorbeelden die door remrem werden gegeven.

Bedankt allemaal voor jullie bijdrage!