Catia – VBA Boîte de dialogue pour cartouches

Important : Je ne suis pas un expert en programmation VBA, le peut de connaissances que je partage ici sont issues de mes expériences et des différentes aides que j’ai pu trouver sur internet, les programmes que je partage sur ce site peuvent être améliorés mais quel que soit mon niveau en VBA ces programmes pourront rendre service à ceux qui comme moi ont des difficultés à commencer leur premières programmations en VBA sous CATIA.

Ce programme sert a fait pour remplir un cartouche à l’aide d’une boite de dialogue à l’aide éventuellement de paramètres crées dans les modèles 3D. Pour ce tutoriel j’ai utilisé un cartouche dans lequel je vais me servir uniquement de la ligne « description », vous pourrez ensuite à l’aide de cet exemple ajouter des lignes et les configurer de la même façon.

Il faudra créer un cartouche et une ligne de texte, pour mon exemple la deuxième ligne prend la valeur « description » la première ligne ne sera pas utilisée dans cet exemple.

On crée un paramètre Chaîne « Outils / Formule… » :

On renomme ce paramètre « Description », c’est très important, si vous changez la dénomination de ce paramètre, il faudra également changer ce nom dans la macro.
Pour l’instant je n’ai pas mis de valeur à ce paramètre mais on peut lui en affecter une, cela n’aura aucune incidence sur la bonne marche du programme.
Ensuite, faire un clic droit sur le texte « description » puis sélectionnez « Propriétés »
Dans l’onglet « Propriétés de l’élément » en face de la propriété Nom, entrez la valeur « Description
Ci-dessous le programme tel que je l’ai écrit
Ce programme fonctionne avec une FORM :
Fonctionnement de la Macro :
Au démarrage de la macro une FORM va s’ouvrir, je clic sur le bouton « Paramètres », le programme va récupérer la valeur du paramètre « Description » si cette valeur est vide cela n’aura aucune incidence sur la bonne marche du programme, pour l’exemple j’ai entré la valeur « essai »
La valeur du paramètre « Description » vient s’inscrire dans la TEXTBOX :
Je modifie la valeur de la TEXTBOX, puis je clic sur le bouton « Change Paramètres »
On peut voir que le texte de la ligne description a changé, il a pris pour valeur celle de la TEXTBOX, de même que le paramètre « Description »
Explication de la MACRO :
Déclaration des variables publiques, publiques veut dire que je pourrais utiliser la valeur de ces variables n’importe où dans le programme :
Fonction pour lancer la FORM/
Déclaration des variables publiques en leur affectant une valeur :

La fonction ChargeParam sert à récupérer la valeur du paramètre Description et de l’inscrire dans le TEXTBOX description :

En 1, on affecte la valeur CATIA.ActiveDocument à la variable DrawDocument, on indique au programme que DrawDocument est le document ouvert sur lequel on travaille soit pour notre exemple la mise en plan.
En 2, on affecte la valeur DrawDocument.Parameters à la variable param, on indique au programme que param est un paramètre de la mise en plan.
En 3, on affecte la valeur DrawDocument.Sheets.ActiveSheet à la variable Calque, on indique au programme que Calque est la feuille active de notre mise en plan.
En 4, on affecte la valeur Calque.Views à la variable AcView, on indique au programme que AcView est une vue active de notre mise en plan.
En 5, on affecte la valeur Calque.Views.ActiveView.Texts à la variable MaNote, on indique au programme que MaNote est une note dans une vue active de notre mise en plan.

La fonction ChargeParam sert à récupérer la valeur du paramètre Description et de l’inscrire dans le TEXTBOX description :

Je crée un nouvelle variable qui sera utilisée uniquement dans la fonction ChangeParam, puis je lui affecte la valeur du TEXTBOX description :

Dim NouveauDescription As String
NouveauDescription = UserForm1.TxtDescription.Text

Puis je fais une boucle sur tous les paramètres de la mise en plan, à la variable AncienParam, j’affecte le nom du paramètre :

Le renvoie à la fonction SplitName ne sert pas (ce sont des essais pour d’autres fonctions)

NBParam = param.Count : compte le nombre de paramètres de la mise en plan

Je fais une boucle sur tous les paramètres :

For i = 1 To NBParam

Pour (For) chaque paramètre,  je récupère le nom du paramètre et je l’affecte à la variable NameParam :

NameParam = param.Item(i).Name

Puis je compare la valeur de cette variable au terme « Description », si (if) la variable et le terme sont identiques, alors (then), le TEXTBOX de la FORM prend la valeur du paramètre :

        If NameParam = « Description » Then

            UserForm1.TxtDescription.Text = param.Item(i).ValueAsString

        End If

La fonction ChangeParam sert à récupérer la valeur du TEXTBOX description que l’on aura modifiée, et de l’utiliser pour modifier le texte du cartouche ainsi que le paramètre « Description »

Je crée un nouvelle variable qui sera utilisée uniquement dans la fonction ChangeParam, puis je lui affecte la valeur du TEXTBOX description :

Dim NouveauDescription As String
NouveauDescription = UserForm1.TxtDescription.Text

Puis je fais une boucle sur tous les paramètres de la mise en plan, à la variable AncienParam, j’affecte le nom du paramètre :

AncienParam = param.Item(i).Name

Puis je compare la valeur de cette variable au terme « Description », si (if) la variable et le terme sont identiques, alors (then) le paramètre »Description » prend la valeur de la variable NouveauDescription.

La fonction RempliCart va servir à remplir le cartouche :

AcView.Count sert à compter le nombre de vues dans la mise en plan, la boucle qui suit sert à trouver le Background View (le fond de plan) une fois trouvé on l’active AcView.Item(k).Activate:

Ensuite je crée une variable à laquelle j’affecte la valeur du TEXTBOX, puis j’indique le nombre de note (texte) qu’il y a dans le fond de plan CountNote = MaNote.Count

Ensuite la deuxième  boucle K sert à trouver la note du cartouche nommée « Description » et à remplacer sa valeur par la valeur de la variable « description », la troisième boucle K va permettre de sélectionner le calque des vues et de l’activer (une fois le cartouche modifié on quitte le fond de plan).