Macro SW / Check existence de calque

Bonjour à tous,

Je cherche une synthaxe de programmation pour réaliser un check de l'existance ou non d'un calque.

Pour plus de détail, ce que je souhaite est :

 - Si le calque "toto" existe alors il faut le cacher.

 - Si le calque "toto" n'existe pas alors il faut le creer.

J'arrive déjà à cacher/montrer, creer un calque en macro mais je n'arrive pas à réaliser le check de l'existence ou non.

Merci d'avance pour votre support

Cdlt

Julien

Salut,

Il faut rechercher dans l'aide des API de SW.

Si tu recherches Layer (calque en anglais) ty trouveras deux exemples en VBA fort intéressant :

  1. Recherche de calque
  2. Création de calque

Bon code...

4 « J'aime »

Est ce que tu peux nous montrer un bout de code s'il te plait =)

Dimitri

1 « J'aime »

Bonjour,

Pour lister les calques et cacher le calque "toto" si il existe :

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

Cordialement,

2 « J'aime »

Merci d.roger

C'est effectivement le code auquel j'étais arrivé en étudiant les exemples donnés par remrem.

Merci à tous pour votre contribution !