Catia – VBA Lister Références et Instances

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 premier programme sert à lister tout les composants d’un assemblage ainsi que ces sous-assemblages en listant les éléments avec les références et instances :

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 :

Ci-dessous une autre forme de déclaration de variable, elle est publique également, donc accessible par toutes les autre procédures,  en déclarant cette variable avec  « Property  Get»  cela me permet de lui attribuer une valeur, valeur elle-même issue d’une variable.

Public Fonction DemAnalyse () : déclaration d’une procédure publique, cette procédure va lancer les commandes qui vont exécuter le programme

ListeProduct : renvoi à une procédure avec comme attribut la variable ASM

ListeShow : renvoi à la procédure qui va afficher la liste des éléments CATIA

Ci-dessous la commande ListeProduct, La variable ProduitReference as Product aura comme valeur ASM, c’est-à-dire l’assemblage affiché à l’écran.

For Each: lance une boucle (For Each = pour chaque), sur chaque élément trouvé dans l’assemblage

Next : renvoi au début de la boucle (Next = Prochain).

For Each SousReference In ProduitReference.Products : boucle chaque élément trouvé dans l’assemblage.

UserForm2.ListBox1.AddItem SousReference.PartNumber : Affiche le non de la référence de l’élément dans une liste (liste qu’il faudra créer dans une ‘form’)

Set ListesousProduct = SousReference.Products : à la variable ListesousProduct je lui donne la valeur de l’élément lister dans la boucle, ce qui me permet de faire une boucle sur cet élément en l’ajoutant à la commande ListeProduct, comme ci-dessous:

ListeProduct ListesousProduct

Si cet élément est un sous assemblage la commande va permettre de boucler sous tout les sous éléments.

La commande ListeShow, va afficher la Form avec les éléments listés

Pour ne pas lister les éléments en double :

Je vais trier les éléments en doubles en créant un tableau,
Pour déclarer mon tableau :

Dans la procédure j’ajoute une variable de type Booléen « True ou False », elle me permettra de définir si un élément existe déjà dans le tableau, elle sera déclaré False en début de procédure :

Ensuite, je vais redimensionner mon tableau au fur et à mesure que je liste des éléments :

For k = 0 To NbProduct – 1 : me permet de faire une boucle au fur et à mesure que j’ajoute des éléments dans le tableau, le NbProduct est incrémenté chaque fois que j’ajoute un élément dans le tableau, la variable NomRef aura pour valeur la référence de l’élément sur lequel je fais une boucle, ensuite je la compare avec les éléments du tableau : « If TableauTriProduct (0, k) = NomRef Then », si un élément portant la même référence existe dans le tableau le variable TestTrue prendra la valeur True ce qui indique à la procédure de ne pas le lister de nouveau dans le tableau.

Résultat avec le tri :

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 instances sont identiques mais également ajouter aussi une procédure pour lister les noms des fichiers et les comparer avec les références et les instances.

Télécharger les deux fichiers .bas de l’exemple (à insérer dans votre projet VBA)

Catia - VBA lister références
Catia - VBA lister références
Liste ref-inst.rar
Version: 1.0
1.0 KiB
585 Downloads
Détails