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
-
Accéder à l’éditeur de macros :
- Dans Catia, allez dans
Outils > Macro > Macros...(ouAlt+F8). - Créez un nouveau module ou éditez un module existant.
- Dans Catia, allez dans
-
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’optionRefDoc.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 bienFalseau moment de l’ouverture etTrueaprè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,CatFileSelectionModeOpenpour ouvrir un fichier).Set Doc = CATIA.Documents.Open(fpath): C’est la correction principale.fpathcontient déjà le chemin complet du fichier sélectionné sous forme de chaîne. La méthodeOpende la collectionDocumentsattend directement ce chemin. L’ajout deFileSys.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.