Catia V5 – Création de paramètres via VB.Net

 

Quel code VB.Net utiliser pour créer des paramètres utilisateurs dans CATIA depuis l’extérieur ?

Si vous créez un programme pilotant CATIA V5, il est possible que vous ayez à ajouter un paramètre utilisateur à l’arbre des spécifications.

Voici en guise d’exemple un petit programme permettant:

  • dans un premier temps de choisir le type, le nom et la valeur d’un paramètre dans une boite de dialogue
  • puis de créer le paramètre dans CATIA.

Catia V5 - Windows form VB.Net création paramètres

 

Création de paramètres utilisateur Catia en VB.Net

 

La petite application donnée avec cet article n’a pas d’autre intérêt que d’illustrer ces propos et vous permettre d’essayer ces lignes de code sans avoir à les taper.

Dans la suite, je vous fais le détail de la partie utile du code, c’est à dire ce qui vous permettra d’ajouter le paramètre. Je vous épargne les dizaines de lignes liées à la logique d’activation des boutons, etc…

Un mot sur l’interface

Si vous souhaitez télécharger ce petit programme bricolé par mes soins, je dois vous en expliquer la logique avant que vous ne le lanciez.

Tout d’abord, au lancement, ce dernier vérifie la présence de CATIA et, si il est absent, le démarre tout simplement. Cela prend le temps habituel du lancement de Catia. Il faut donc patienter un peu.
La boite de dialogue apparaît.
Lorsque Catia est présent dans votre session Windows, il vérifie si le document actif est une Catpart et si ce n’est pas le cas, il en crée une nouvelle.

Catia V5 VB.Net - creation de paramètre utilisateur interface

A partir de là, vous pouvez remplir les champs et créer un paramètre utilisateur.
Bon, vous ne pourrez pas créer des paramètres de tous les types car il y a en a beaucoup trop et je ne les ai pas tous mis dans la liste de choix déroulant.

Dans un premier temps: choix du type de paramètre !

Catia V5 VB.Net - creation de paramètre utilisateur interface type choix

Prenons angle par exemple en dépliant la Combobox.

Vous voyez que:

  • Devant la ligne, KO (en rouge) est devenu OK (en vert) car vous avez choisi un type de paramètre.
  • L’unité actuelle de Catia V5 pour les angles est Degré (et non Radian).
  • Que le champ Valeur est en défaut car la valeur doit être un nombre entier ou décimal
  • Que le bouton « Créer Paramètre » n’est pas activé

Catia V5 VB.Net - creation de paramètre utilisateur interface type choix unité catia

J’ai ajouté l’information “Unité actuelle” pour ne pas se tromper sur la valeur que l’on entre par la suite.
En effet, si vous rentrez, par exemple, comme valeur 10 en pensant 10mm et que l’unité de Catia est le mètre, vous obtiendrez une valeur de 10m et pas 10mm comme vous le souhaitiez.

Si l’on rempli bien les champs, on doit avoir des OK verts à chaque ligne et le bouton « Créer Paramètre » doit être actif.

On peut alors cliquer dessus et le paramètre se crée dans Catia (magique !)

Catia V5 VB.Net - creation de paramètre utilisateur interface création du paramètre

Vous pouvez alors changer de type et en créer un autre du moment que la valeur est cohérente avec le type.

Exemple : Entier –> pas de chaîne et pas de nombre décimal

De tout façon, le programme vérifie tout ça.

 

 

 

Comment ça marche ? – Le code

D’un point de vue purement Catia, deux choses doivent avoir attiré votre attention:

  • Mais comment fait-il pour savoir que l’angle est bien en degré et que les longueurs sont en mm dans les réglages de Catia ?
  • C’est quoi finalement le code derrière le bouton pour créer le paramètre ?

 

Explications ci-dessous, c’est parti !

 

 

Récupération des unités de Catia V5 en VB.Net

Le réglage des unités dans Catia V5 se fait dans « Outil / options / Paramètres et mesures / Unités« .

Catia V5 VB.Net - creation de paramètre utilisateur interface outil option unité

Heureusement, il existe, dans les méthodes Visual Basic, le nécessaire pour interagir avec ces réglages (lecture et écriture).
ici, dans l’application, nous n’allons que lire les réglages pour en sortir les unités des différents types.
Ne vous inquiétez pas pour vos Catsettings.
Exemple ci-dessous pour une longueur:

Ce qui nous intéresse ici se trouve sous l’espace de nom INFITF qu’il ne faut pas oublier d’importer en début de code comme ceci:

 

J’ai commenté les différentes lignes pour vous montrer les différentes étapes mais la logique de construction est assez simple et proche de ce que nous faisons manuellement pour visualiser l’option dans “Outil / options”.

Un objet correspondant à l’ensemble des options est d’abord construit puis un objet correspondant à l’onglet qui nous intéresse (Onglet Unités) comme étant l’item répondant au nom « CATLieUnitsSheetSettingCtrl« .

Ce genre d’appellation est difficile à « intuiter ». Fort heureusement l’enregistreur de macro me l’a donnée en code VB6. Il m’a fallu récrire ensuite tout cela en VB.Net.

L’onglet “Unités” étant désigné, il faut maintenant rechercher la ligne qui nous intéresse.

Cela se fait avec « GetMagnitudeValues » dont les arguments de type “String”correspondent aux colonnes “grandeurs” et “unités”.

Catia V5 VB.Net - creation de paramètre utilisateur interface outil option unité

Il suffit alors de faire l’opération suivante pour interroger la ligne de la grandeur “Longueur”.

 

avec double1 et double2 des Doubles dont on n’a pas défini la valeur et bSTR2 une chaîne de caractère vide.

En retour, « unitsSheetSettingAtt1 » nous livrera dans bSTR2 l’unité attendue, c’est à dire “Millimètre” que l’on pourra montrer à l’utilisateur ici avec un Label sur la WindowsForm.

 

 

 

Le code pour créer un paramètre depuis l’extérieur

Une nouvelle fois, il est nécessaire d’importer la bibliothèque suivante pour avoir accès aux fonctionnalités de Knowledge. Les paramètres si simples soient-ils sont bien du ressort de Knowledge.

 

 

Voici maintenant le code pour créer un paramètre utilisateur de type “dimension” (longueur, angle,…)
La valeur à mettre dans le paramètre est en fait initialement un texte puisque entré dans une TextBox.
Il faut donc la transformer en Double pour être compatible avec la méthode « CreateDimension » de Catia.

je vous donne un bout de code récupéré sur le net permettant de convertir à coup sûr les nombres dont le séparateur décimal est “,” ou “.” – Ne me demandez pas comment cela fonctionne.

 

Comme je suis en France, mon système d’exploitation est réglé de telle façon que mon séparateur décimal est une virgule.
Si je donne un texte comme “14.24” (avec un point) la fonction « Convert.ToDouble » ne fonctionne pas.
Grâce à cette astuce, je peux fournir indifféremment14.24” ou “14,24” et cela transforme correctement le texte en Double.

 

 

 

Les explications sont dans le code mais il faut savoir qu’il existe une méthode par type de paramètre, par exemple:

  • parameters1.CreateReal(«  », 0)    pour les réels
  • parameters1.CreateInteger(«  », 0)    pour les entiers
  • parameters1.CreateString(«  », «  »)   pour les textes
  • Etc…

Avec comme point commun un premier argument qui est le nom du paramètre.

 

Conclusion

Ces petits bouts de code VB.Net  vous seront peut-être utiles si vous vous lancez dans la programmation pour Catia V5.
Le chemin n’est pas toujours facile pour convertir le code VB6. Dans cet exemple, j’ai eu la chance d’avoir une ligne directrice grâce à l’enregistreur de macro.
Je vous laisse essayer la petite application cela vous inspirera peut-être.
Si vous avez aimé cet article, signalez-le (like, partage, commentaire…), c’est sympa  😉

 

La petite application à télécharger

Enter your name and email address to download Application VB.Net (Ajout_Param_Utilisateur.exe)

Name: Email:

Recherches utilisées pour trouver cet article :part1 Parameters catia, catia sketch reglage d\affichage, ajouter parametre catia, paramètre catia v5, PARAMETRE CATIA 1 LICENCE 2 UTILISATEUR, créer paramètres catia, comment créer un parametre dans catia v5, changer parametre depuis drawing catia, catia v5 creation parametre, catia ajouter parametre

About the Author: PSX59

Technicien dans l'âme et résolument passionné d'aviation, je vous invite à découvrir la CAO sur des thèmes variés avec un seul but ... Créer !

4 Comments

  1. Répondre Patrick Blancheton

    Bonjour,

    J’ai trouvé ce blog en cherchant des informations sur les paramètres dans CATIA justement. J’ai commencé à fouiner un peu, bravo c’est très bien fait et très utile, en plus c’est en français.
    En plus des bases, je maitrise les ateliers DMU Kinematics et les ateliers de Machining.
    J’ai modélisé une locomotive à vapeur dont la distribution est entièrement fonctionnelle. Elle peut se déplacer sur ses rails également.
    Pour un autre projet, je cherche à (re)dimensionner des pièces assemblées, dans un CATProduct, partageant des dimensions communes à l’aide de paramètres (justement) qui seraient ajoutés dans le CATProduct. Je veux qu’à la modification du paramètre dans le CATProduct que toutes les CATPart soient impactées. J’ai essayé la « Publication » de paramètre afin de voir s’il était disponible dans les CATPart, mais cela ne fonctionne pas.
    Une idée peut être ?
    Bien cordialement.

    • Répondre PSX59

      Bonjour Patrick,
      Merci pour votre commentaire.
      Je suis toujours content d’échanger avec des passionnés.
      Vous êtes équipé en machines numériques, quel plaisir !
      Pour votre problème, je viens de faire un essai. Cela fonctionne à mon avis sous certaines conditions.
      J’ai d’abord créé une session avec une Product et une Part enfant de cette Product.
      Dans la Part, j’ai créé un cube avec une cote de l’esquisse pilotée par un paramètre utilisateur (type longueur).
      Dans la Product, j’ai créé un paramètre utilisateur de même grandeur (type longueur) avec une valeur différente.
      Depuis la Product (niveau bleu actif), je lance l’outil Formule (Fx), je montre le paramètre utilisateur de la Part et je clique sur « Ajouter Formule » et je désigne le paramètre utilisateur de la product, cela rempli l’égalité de la formule. Et génère la mise à jour.
      Vous avez vu, je crée la formule depuis l’environnement Product. Dans ce cas le paramètre utilisateur de la Part est bien verrouillé par une formule. Mais vous ne pouvez pas supprimer la formule depuis la Catpart. Un message vous indique que la formule appartient à un autre document (ici la product).
      Dans l’autre sens cela fonctionne aussi. J’ai réussi à faire cette égalité depuis la Catpart en éditant le paramètre. Je crée une formule (niveau bleu actif sur la part) en désignant ce coup-ci le paramètre de la Product pour l’égalité. Un message m’indique « Confirmez vous le lien avec une référence externe ? » car j’ai une option active pour me prévenir.
      Dans mon cas, dans les options sous « Infrastructure / Infrastructure Part / Général » j’ai décoché « Restreindre la sélection externe aux éléments publiés » et coché « Garder le lien avec l’objet sélectionné ».
      Je pense que cela vient d’un de ces réglages.

      Outil/option/Infrastructure/InfrastructurePart - Catia V5

  2. Répondre Patrick Blancheton

    Bonjour,

    Merci pour la réponse rapide et documentée.
    C’était bien un problème lié au choix « Garder le lien avec l’objet sélectionné », j’ai coché cette case et refait les liens dans les CATParts, et tout fonctionne parfaitement. Je modifie le paramètre dans le CATProduct et toutes les CATParts dépendantes de ce paramètre sont modifiées.
    Je n’ai rien touché au CATProduct, les CATParts ne sont pas des enfants du Product. Cela veut dire que les liens entre paramètres, équivalences et équations peuvent être crées à n’importe quel moment.
    Y a t’il un moyen d’inclure des copies d’écran aux questions/réponses ?
    Encore merci.

    • Répondre PSX59

      Bonsoir Patrick,
      Je suis content que ce réglage d’option ait réglé votre problème.
      Le thème de mon blog ne semble pas offrir la possibilité de déposer des images avec les commentaires.
      C’est embêtant.
      Je vais tenter de trouver une solution à ça.

Leave A Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *