Comment créer un texte dans une mise en plan (drawing) Catia qui soit dynamiquement lié à un paramètre d’un fichier 3D, en utilisant une macro VBA, afin de conserver le lien et non seulement la valeur du paramètre ?
Pour créer un texte dans une mise en plan Catia qui maintient un lien dynamique avec un paramètre d’un fichier 3D via VBA, il faut interagir avec les objets spécifiques de la mise en plan et de la gestion des liens.
Voici une approche générale et les étapes clés à considérer :
-
Accès à la mise en plan et à l’objet texte :
- Il faut d’abord obtenir une référence à la fenêtre de mise en plan active et à l’objet
DrawingTextque vous souhaitez créer ou modifier. - L’enregistreur de macro est souvent limité pour les opérations complexes dans les mises en plan. Une approche par programmation directe est nécessaire.
- Il faut d’abord obtenir une référence à la fenêtre de mise en plan active et à l’objet
-
Identification du paramètre 3D :
- Le paramètre 3D doit être accessible depuis le contexte de la mise en plan. Cela implique souvent de connaître le chemin d’accès au fichier 3D et le nom exact du paramètre.
- L’API Catia permet de naviguer dans la hiérarchie des documents et d’accéder aux
Parameters.
-
Création du lien :
- La fonctionnalité ‹ Lier à un attribut › dans l’interface graphique crée une relation spécifique entre un objet de la mise en plan (ici, un texte) et un paramètre externe.
- En VBA, cette opération est généralement réalisée en utilisant des méthodes spécifiques de l’objet
DrawingTextou un objet de gestion des liens (par exemple,LinkouConstraintselon la version et le contexte exact de l’API). - Il faut identifier la méthode qui permet d’établir ce type de liaison, souvent en passant en argument l’objet paramètre source.
-
Exemple de structure de code (conceptuel) :
Sub CreerTexteLieParametre() Dim oPartDoc As PartDocument Dim oParam As Parameter Dim oDrawingDoc As DrawingDocument Dim oDrawingView As DrawingView Dim oDrawingTexts As DrawingTexts Dim oDrawingText As DrawingText Dim sNomParametre As String Dim sCheminFichier3D As String ' --- Configuration --- sNomParametre = "NomDeVotreParametre" ' Ex: "Longueur" sCheminFichier3D = "C:\Chemin\Vers\Votre\Fichier.CATPart" ' Ou .CATProduct ' --- Obtenir le document 3D et le paramètre --- On Error Resume Next Set oPartDoc = CATIA.Documents.Open(sCheminFichier3D) If oPartDoc Is Nothing Then MsgBox "Impossible d'ouvrir le fichier 3D : " & sCheminFichier3D, vbCritical Exit Sub End If On Error GoTo 0 On Error Resume Next Set oParam = oPartDoc.Parameters(sNomParametre) If oParam Is Nothing Then MsgBox "Paramètre '" & sNomParametre & "' introuvable dans le fichier 3D.", vbCritical oPartDoc.Close Exit Sub End If On Error GoTo 0 ' --- Obtenir le document de mise en plan actif --- On Error Resume Next Set oDrawingDoc = CATIA.ActiveDocument If oDrawingDoc Is Nothing Then MsgBox "Aucun document de mise en plan actif.", vbCritical oPartDoc.Close Exit Sub End If On Error GoTo 0 ' --- Accéder à une vue de mise en plan (ou créer une feuille/vue si nécessaire) --- ' Ceci est un exemple, vous devrez peut-être adapter pour sélectionner la bonne vue If oDrawingDoc.Views.Count > 0 Then Set oDrawingView = oDrawingDoc.Views.Item(1) ' Prend la première vue Set oDrawingTexts = oDrawingView.Texts Else MsgBox "Aucune vue trouvée dans la mise en plan.", vbCritical oPartDoc.Close Exit Sub End If ' --- Créer le texte et établir le lien --- ' Les coordonnées (X, Y) sont relatives à la vue Set oDrawingText = oDrawingTexts.Add("Texte lié", 100, 100) ' *** LA PARTIE CRUCIALE EST ICI : Établir le lien *** ' La méthode exacte peut varier légèrement selon la version de CATIA et le type de paramètre. ' Il faut souvent utiliser une méthode qui prend le paramètre source. ' Exemple conceptuel (peut nécessiter une adaptation API spécifique) : ' oDrawingText.LinkToParameter oParam ' ou une méthode similaire via un objet de contrainte/lien. ' Il est possible que vous deviez d'abord créer un objet 'Link' et l'associer au texte et au paramètre. ' Une approche plus courante pour les liens de données est d'utiliser des 'Constraints' ou des 'Relations'. ' Il faut explorer l'API pour trouver la méthode exacte pour lier un texte à un paramètre. ' Recherchez des méthodes comme 'AddLink', 'SetLink', ou des objets dans la branche 'Knowledge' ou 'Constraints'. MsgBox "Texte créé. Le lien dynamique doit être établi via une méthode API spécifique.", vbInformation ' Optionnel : Fermer le fichier 3D si vous ne l'avez pas ouvert en lecture seule ' oPartDoc.Close End Sub
Conseils supplémentaires :
- API Catia : La clé réside dans la compréhension de l’API Catia pour les mises en plan (
Drawingworkbench) et la gestion des liens (KnowledgeorConstraints). Consultez la documentation de l’API Catia pour votre version spécifique. - Recherche de méthodes : Utilisez l’explorateur d’objets VBA (F2 dans l’éditeur VBA) pour naviguer dans les objets
DrawingDocument,DrawingView,DrawingTextet leurs propriétés/méthodes afin de trouver la fonction de liaison appropriée. - Tests itératifs : Commencez par des opérations simples (créer un texte sans lien) puis ajoutez progressivement la logique de liaison. Testez fréquemment.
- Version : L’API et les fonctionnalités peuvent évoluer. Le contenu date de 2013, donc certaines méthodes ont pu être remplacées ou améliorées dans les versions plus récentes de Catia.
Cette approche vous guidera pour trouver la méthode exacte dans l’API Catia pour réaliser cette fonctionnalité.