Macro Catia V5 : Ouvrir CATDrawing sans charger le modèle 3D lié

Comment créer une macro VBScript dans Catia V5 pour ouvrir un fichier CATDrawing sans charger automatiquement le modèle 3D associé, et sans avoir à modifier manuellement l’option ‹ Chargement des documents référencés › dans les paramètres de Catia ?

Pour ouvrir un fichier CATDrawing sans charger le modèle 3D lié via une macro VBScript dans Catia V5, il est nécessaire de manipuler temporairement l’option ‹ Chargement des documents référencés › (RefDoc) des paramètres de session. L’erreur rencontrée dans le code initial provient d’une utilisation incorrecte de la méthode CATIA.Documents.Open.

Voici la procédure détaillée et le code VBScript corrigé :

Comprendre le Problème

L’option ‹ Chargement des documents référencés › (RefDoc) dans Catia contrôle si les documents liés (comme un modèle 3D pour un dessin 2D) sont chargés automatiquement à l’ouverture. Pour un chargement rapide des CATDrawing sans le 3D, cette option doit être désactivée temporairement.

L’erreur Set Doc = CATIA.Documents.Open(FileSys.GetFile(fpath)) survient car CATIA.FileSelectionBox retourne déjà le chemin complet du fichier sous forme de chaîne de caractères (fpath). Il n’est donc pas nécessaire d’utiliser FileSys.GetFile() qui attend un objet File et non une chaîne.

Procédure et Code VBScript

  1. Accéder à l’éditeur de macros :

    • Dans Catia, allez dans Outils > Macro > Macros... (ou Alt+F8).
    • Créez un nouveau module ou éditez un module existant.
  2. Insérer le code VBScript :
    Copiez et collez le code suivant dans votre module VBScript :

    Language="VBSCRIPT"
    
    Sub CATMain()
    
        Dim settingControllers1 As SettingControllers
        Dim generalSessionSettingAtt1 As CATCafGeneralSessionSettingCtrl
        Dim originalRefDocSetting As Boolean
        Dim fpath As String
        Dim Doc As Document
    
        ' 1. Accéder aux contrôleurs de paramètres de Catia
        Set settingControllers1 = CATIA.SettingControllers
    
        ' 2. Accéder au contrôleur des paramètres de session générale
        Set generalSessionSettingAtt1 = settingControllers1.Item("CATCafGeneralSessionSettingCtrl")
    
        ' 3. Sauvegarder l'état original de l'option 'Chargement des documents référencés'
        originalRefDocSetting = generalSessionSettingAtt1.RefDoc
    
        ' 4. Désactiver l'option 'Chargement des documents référencés'
        generalSessionSettingAtt1.RefDoc = False
        ' Appliquer la modification (optionnel si vous ne voulez pas que le changement persiste au-delà de la session)
        ' Si vous voulez que le changement soit écrit dans les paramètres Catia (fichiers .CATSettings) :
        generalSessionSettingAtt1.SaveRepository
    
        ' 5. Afficher une boîte de dialogue pour choisir le fichier CATDrawing
        ' Le chemin du fichier sélectionné est retourné directement dans 'fpath'
        fpath = CATIA.FileSelectionBox("Sélectionnez un CATDrawing à ouvrir", "*.CATDrawing", CatFileSelectionModeOpen)
    
        ' 6. Vérifier si un fichier a été sélectionné
        If fpath <> "" Then
            On Error Resume Next ' Gérer les erreurs d'ouverture de document
            ' 7. Ouvrir le CATDrawing sans le 3D lié (correction de l'erreur ici)
            Set Doc = CATIA.Documents.Open(fpath)
            If Err.Number <> 0 Then
                MsgBox "Erreur lors de l'ouverture du document: " & Err.Description, vbCritical, "Erreur d'ouverture"
                Err.Clear
            End If
            On Error GoTo 0 ' Désactiver la gestion d'erreur
        Else
            MsgBox "Aucun fichier sélectionné. Opération annulée.", vbInformation, "Annulation"
        End If
    
        ' 8. Restaurer l'état original de l'option 'Chargement des documents référencés'
        generalSessionSettingAtt1.RefDoc = originalRefDocSetting
        ' Appliquer la restauration (optionnel, comme ci-dessus)
        ' Si vous voulez que la restauration soit écrite dans les paramètres Catia :
        generalSessionSettingAtt1.SaveRepository
    
        ' Nettoyage des objets (bonne pratique)
        Set generalSessionSettingAtt1 = Nothing
        Set settingControllers1 = Nothing
        Set Doc = Nothing
    
    End Sub
    

Explication Détaillée

  • Set settingControllers1 = CATIA.SettingControllers : Permet d’accéder à l’ensemble des contrôleurs de paramètres de Catia.
  • Set generalSessionSettingAtt1 = settingControllers1.Item("CATCafGeneralSessionSettingCtrl") : Récupère le contrôleur spécifique qui gère les paramètres de session générale, dont l’option RefDoc.
  • originalRefDocSetting = generalSessionSettingAtt1.RefDoc : Il est crucial de sauvegarder l’état actuel de l’option avant de la modifier. Cela garantit que vos paramètres Catia seront restaurés à leur état d’origine après l’exécution de la macro.
  • generalSessionSettingAtt1.RefDoc = False : C’est la ligne clé qui désactive le chargement des documents référencés.
  • generalSessionSettingAtt1.SaveRepository : Cette méthode écrit les modifications des paramètres dans les fichiers de configuration de Catia (.CATSettings). Si vous souhaitez que le changement soit temporaire et ne persiste pas après la fermeture de Catia ou l’exécution de la macro, vous pouvez commenter cette ligne. Cependant, pour s’assurer que le paramètre est bien False au moment de l’ouverture et True après, il est souvent préférable de l’utiliser.
  • fpath = CATIA.FileSelectionBox(...) : Cette fonction affiche une boîte de dialogue standard de sélection de fichier. Le premier argument est le titre de la boîte, le second est le filtre de fichier (*.CATDrawing), et le troisième spécifie le mode (ici, CatFileSelectionModeOpen pour ouvrir un fichier).
  • Set Doc = CATIA.Documents.Open(fpath) : C’est la correction principale. fpath contient déjà le chemin complet du fichier sélectionné sous forme de chaîne. La méthode Open de la collection Documents attend directement ce chemin. L’ajout de FileSys.GetFile() était superflu et causait l’erreur.
  • generalSessionSettingAtt1.RefDoc = originalRefDocSetting : Restaure l’option à son état initial, assurant que les ouvertures futures de documents se comportent comme d’habitude.
  • Gestion d’erreurs (On Error Resume Next) : Ajoutée pour rendre la macro plus robuste, notamment si l’utilisateur annule la sélection de fichier ou si le document ne peut pas être ouvert.

Cette macro vous permettra d’ouvrir rapidement vos CATDrawing sans le chargement lourd des modèles 3D associés, tout en automatisant la gestion des paramètres de Catia.