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 moi ont des difficultés à commencer leur premières programmations en VBA sous CATIA.

Ce deuxième programme sert à lister tous les fichiers .CATPart et CATProduct d’un assemblage ainsi que ces sous-assemblages en listant les noms de fichiers, les chemins des répertoires de ces fichiers…, il permet également de lister les références CATIA de ces fichiers ce qui nous permettra de les associer avec les références et instances du programme précédent (lister les références et instances), ce qui nous permettra par la suite de manipuler ces fichiers (les modifier, les ouvrir …) :

Ci-dessous le programme tel que je l’ai écrit :

Explication :
Déclaration des variables publiques, elles se déclarent au début de fichier, elles sont « Public » de façon à être accessible par toutes les procédures :

Cette variable sert à déclarer un tableau, As String parce que dans ce tableau on va y entrer des chaînes de caractère, ce n’est pas obligatoire de créer un tableau, mais c’est plus pratique lorsque l’on veut manipuler des données croisées, de plus le traitement des boucles (for/Next par exemple) est beaucoup plus rapide dans un tableau que dans le modèle 3D :

La variable NomDocActif va renvoyer le nom du document actif (ProduitSelect.Name)

Je vais référencer le document actif avec la variable ci-dessous (Public Property Get ProduitSelect () As ProductDocument)

La fonction ci-dessous est le point d’entrée de la Macro, elle renvoie à deux fonctions (ListDoc et ListeProductShow) :

C’est la fonction ListDoc qui me permet de lister les éléments de l’assemblage :

Au début de la fonction, je mets le compteur de pièce à 0 (Nbdoc), puis je fais une boucle pour lister tous les éléments de l’assemblage, For Each NDocCatia : pour chaque document CATIA, In DocCatia : dans le document CATIA :

Dans les cadres en rouge, on va différencier les pièces et les assemblages, car en fonctions de ces éléments le paramètre qui sert à extraire des données n’est pas le même si c’est une Part ou un Product, au début de la procédure on à déclarer deux variables qui permettent de faire cette différence:

Public ProductDocCatia As ProductDocument
Public PartDocCatia As PartDocument

Cette partie de code me permet de redimensionner mon tableau au fur et à mesure que j’y entre des données, je le redimensionne en incrémentant le tableau avec Nbdoc = Nbdoc+ 1

Bien entendu une fois que l’on a listé les éléments on pourra les exporter dans un fichier, ou ajouter une procédure qui permettra de comparer si les références et les noms de fichiers sont identiques mais également d’ajouter le nom des instances avec la procédure déjà expliquées ici : https://cao-3d-pro.com/catia-vba-lister-references-et-instances/

CATIA VBA Lister Fichiers
CATIA VBA Lister Fichiers
MdlProduct.bas
Version: 1.0
2.7 KiB
409 Downloads
Détails