Automatiser l'ouverture de multiples fichiers CATDrawing par macro CATIA

Comment créer une macro CATIA pour ouvrir automatiquement plusieurs fichiers (ex: CATDrawing) situés dans un répertoire spécifique, sans les lister un par un ?

Pour ouvrir automatiquement plusieurs fichiers CATDrawing (ou autres types de documents CATIA) depuis un répertoire spécifique via une macro, la méthode la plus efficace est d’utiliser un script VBA/VBScript qui parcourt le répertoire. La simple enregistrement de macro est limitée car elle liste chaque fichier individuellement, ce qui est inefficace pour un grand nombre de fichiers ou si le contenu du répertoire change.

Voici la procédure experte pour créer une macro CATIA qui itère sur les fichiers d’un dossier :

  1. ACCÉDER À L’ÉDITEUR DE MACROS

    • Dans CATIA, allez dans Outils > Macro > Macros... (ou Alt+F8).
    • Cliquez sur Créer... pour créer une nouvelle macro. Donnez-lui un nom significatif (ex: OuvrirFichiersRepertoire).
    • Sélectionnez le type VBA Project ou CATScript si vous préférez. L’exemple ci-dessous est en VBScript, compatible avec CATScript.
    • Cliquez sur Éditer pour ouvrir l’éditeur VBA (ou l’éditeur de script).
  2. INSÉRER LE CODE DE LA MACRO

    • Copiez et collez le code suivant dans le module de votre macro :
    Sub CATMain()
    
        Dim documents1 As Documents
        Dim partDocument1 As PartDocument ' Peut être remplacé par DrawingDocument si uniquement des CATDrawing
        Dim windows1 As Windows
        Dim specsAndGeomWindow1 As SpecsAndGeomWindow
    
        Dim objFSO, objDossier, objFichier
        Dim Repertoire As String ' Déclare la variable Repertoire comme String
    
        On Error Resume Next ' Gère les erreurs sans arrêter le script (ex: répertoire non trouvé)
    
        ' --- DÉFINIR LE CHEMIN DU RÉPERTOIRE ---
        ' IMPORTANT : Remplacez ce chemin par le chemin réel de votre dossier
        Repertoire = "F:\CATIAV5\Tempo\TUTU\" ' Exemple : "C:\MesDessinsCATIA\"
    
        ' --- INITIALISATION DES OBJETS SYSTÈME DE FICHIERS ---
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objDossier = objFSO.GetFolder(Repertoire)
    
        ' --- VÉRIFICATION ET OUVERTURE DES FICHIERS ---
        If (objDossier.Files.Count > 0) Then
            For Each objFichier In objDossier.Files
                ' Optionnel : Vérifier l'extension si vous ne voulez ouvrir que certains types de fichiers
                ' If LCase(objFichier.Extension) = "catdrawing" Then
                    Set documents1 = CATIA.Documents
                    ' Utilisez documents1.Open pour ouvrir le fichier
                    ' Le type de document (PartDocument, DrawingDocument, ProductDocument) sera
                    ' déterminé automatiquement par CATIA lors de l'ouverture.
                    Set partDocument1 = documents1.Open(Repertoire & objFichier.Name)
                ' End If
            Next
        Else
            MsgBox "Le répertoire spécifié est vide ou n'existe pas.", vbExclamation, "Erreur"
        End If
    
        ' --- NETTOYAGE DES OBJETS ---
        Set objFichier = Nothing
        Set objDossier = Nothing
        Set objFSO = Nothing
        Set documents1 = Nothing
        Set partDocument1 = Nothing
        Set windows1 = Nothing
        Set specsAndGeomWindow1 = Nothing
    
    End Sub
    
  3. PERSONNALISER LE CHEMIN DU RÉPERTOIRE

    • Modifiez la ligne Repertoire = "F:\CATIAV5\Tempo\TUTU\" pour qu’elle pointe vers le dossier contenant vos fichiers CATIA. Assurez-vous d’utiliser des barres obliques inverses simples \ ou doubles \\ selon votre configuration, bien que la simple barre oblique inverse \ fonctionne généralement.
  4. EXÉCUTER LA MACRO

    • Fermez l’éditeur VBA.
    • Dans la boîte de dialogue Macros, sélectionnez votre macro OuvrirFichiersRepertoire et cliquez sur Exécuter.

Explication du code :

  • CreateObject("Scripting.FileSystemObject") : Permet d’accéder aux fonctionnalités du système de fichiers de Windows (lecture de dossiers, fichiers).
  • objFSO.GetFolder(Repertoire) : Récupère l’objet dossier correspondant au chemin spécifié.
  • For Each objFichier In objDossier.Files : Boucle à travers chaque fichier trouvé dans le dossier.
  • documents1.Open(Repertoire & objFichier.Name) : Ouvre chaque fichier en construisant son chemin complet (répertoire + nom du fichier).
  • On Error Resume Next : Une bonne pratique pour éviter que le script ne s’arrête si un fichier est corrompu ou inaccessible.

Alternative (moins flexible) : Enregistrement de macro avec sélection multiple
Pour un nombre fixe et limité de fichiers, vous pouvez enregistrer une macro :

  1. Allez dans Outils > Macro > Démarrer l'enregistrement....
  2. Cliquez sur l’icône Ouvrir dans CATIA.
  3. Dans la boîte de dialogue d’ouverture, naviguez vers votre répertoire.
  4. Sélectionnez tous les fichiers désirés en utilisant Shift (pour une sélection contiguë) ou Ctrl (pour une sélection non contiguë).
  5. Cliquez sur Ouvrir.
  6. Arrêtez l’enregistrement de la macro.
    Cette méthode est plus rapide à mettre en place mais ne gérera pas l’ajout de nouveaux fichiers au répertoire sans modification manuelle de la macro.