CatiaV5-Comment réaliser un réseau de trous sur une surface complexe – CatVBa

Faire un réseau de trous dans Catia V5 par l’utilisation d’un script CatVBa.

Rendu_tole-reduit1

Définition du problème:

Percer un ensemble de trous sur une surface plane ou de révolution cela ne pose pas trop de problème mais lorsqu’il s’agit de les percer de façon normale à la surface c’est déjà plus difficile alors lorsque cette dernière est gauche et qu’il y a plus d’une centaine de perçages …. !

Voici l’objet à modéliser:

Il s’agit d’une tôle percée servant de filtre comme on peut en voir dans l’agro-alimentaire. Sa particularité est que la forme de base, bien que symétrique, présente une évolution de section.

 

En 3D manipulable, ça donne ceci :

(Pour manipuler l’objet en 3D, vous devez être sur un OS Windows et installer le 3DXml player de Dassault Système puis activer le plugin dans votre navigateur)


Prenons le temps de la réflexion…

Que ce soit en solide (generative sheet metal design  y compris) ou en surfacique, il faudra bien commencer par obtenir d’une manière ou d’une autre toutes les origines des trous et donner pour chacun d’entre eux la direction du perçage.

Bien sûr, on peut utiliser la copie optimisée pour nous éviter la répétition de certaines opérations. Mais il faut créer la copie optimisée et évidemment un grand nombre de fois cette manip de collage sans parler de la corvée de la désignation des nouveaux parents… Pffff ! Oublions cela pour cet article nous le traiterons dans un prochain article.

Stratégie:

Puisqu’il y a beaucoup d’éléments, il faut donc recourir à un automatisme pour le faire à notre place !

  1. Générer uniquement des éléments vivants (c’est à dire ayant des parents) paramétrables
  2. Générer des éléments isolés (donc morts) et bien positionnées

La première est très sérieuse car elle permet d’ajuster nombre de choses comme par exemple le diamètre des trous ou même leurs positions, toutefois cela a la fâcheuse tendance de surcharger l’arbre et augmenter les temps de mise à jour.

La deuxième perd tout l’intérêt de la dynamique des jeux de paramètres mais elle est plus légère et, si l’on possède le script, cela ne gène en rien le fait de pouvoir modifier les choses par la suite… Comprenez :
« Je jette tout et je relance la macro qui refera tous les perçages comme je le souhaite. Na ! ».

Dans cet exemple, nous allons donc partir sur la deuxième solution (les perçages « morts »), sachant que l’on peut écrire un programme dans lequel les éléments bien vivants seraient rangés dans des sets géométrique.

 

 

Préparons le modèle:

Il nous faut:

La surface de base et comme le modèle est symétrique nous ne modéliserons que la moitié de celle-ci. Nous ne la symétriserons qu’à la fin.

Créer deux esquisses portées par des plans parallèles et distants. Les deux esquisses sont ici de formes semblables à l’échelle près mais elles peuvent êtres quelconques.
Une surface multi-sections est tendue entre ces deux courbes (profils avec la même orientation) avec l’option Couplage en sommets puisque le nombre de segments est identique sur chaque profil.

Peau_initiale

Peau_initiale.2

(Cliquez sur les images pour les agrandir)

Le set géométrique « Trous » contient le seul cylindre vivant du modèle.
Il est défini comme suit:

  • Il est normal à la « surface sans trou » car dirigé par une droite normale à cette surface « Direction_trou »
  • Son origine est un point sur courbe (fraction). Cette courbe est l’intersection de « surface sans trou » et d’un plan « plan_intersection » se déplaçant d’un support d’esquisse à l’autre en suivant un point sur courbe (fraction) se déplaçant le long de la droite « Guide_plan »
  • trous

(Cliquez pour agrandir l’image)

Notez bien, que les entités (les Features)  ont été renommées. C’est très important pour la lisibilité et parce que le script s’appuiera sur les noms des entités et des sets géométriques.

 

 

 

Méthode:

J’ai envisagé la méthode suivante:

  1. Le set géométrique « Peau_initiale » porte la demie surface de base « Surface_sans_trou ».
  2. Le set géométrique « Trous » porte un seul cylindre surfacique dont la direction est toujours normale à « Surface_sans_trou » et que l’on peut déplacer à volonté, grâce au script, en jouant sur deux paramètres pilotant le point d’origine de ce cylindre.
  3. Lorsque le cylindre atteint une position souhaitée dans le script, une copie de celui-ci est faite dans le set géométrique « Ensemble_trous ». C’est un collage sans lien donnant une entité isolée portant un nom unique « Cylindre.n » avec n=le numéro du cylindre. Le programme boucle de façon à créer au bon endroit tous les cylindres (ici 90).
  4. Dans le set géométrique « Résultat » le script effectue l’assemblage des 90 cylindres sans tenir compte de la connexité puis effectue la coupe de « Surface_sans_trou » par cet ensemble de cylindre. Cela conduit au perçage de la face de départ qui est renommée aussi par le script comme « Peau_percée »
  5. Finition du modèle dans le corps de pièce avec épaississement de la peau puis symétrie.

Bien sûr, il y a toujours n façons de faire et celle-ci n’est pas forcément la plus efficace mais cela montre l’intérêt de l’automatisation sur une tâche répétitive.

 

 

 

Le programme en détail:

Le modèle est prêt à accueillir les nouveaux éléments générés par le programme.
Voyons le dans le détail:

Le script est suffisamment commenté pour comprendre l’enchaînement des actions.
Vous trouverez en bas de page un lien pour télécharger les modèles CatiaV5 R21 vous permettant d’utiliser cette macro. Vous n’êtes donc pas obligé de reconstruire la catpart.

Chargez le modèle « Essai_percage.CATPart » puis lancer le moniteur CatVba (Outil/Macro/Editeur visual Basic   ou simplement Alt+F11)

Copiez le script ci-dessus (il y a un bouton pour faire cette copie en haut du bandeau).

Au lancement, la macro fait appel aux différentes entités présentes dans l’arbre en s’appuyant sur leurs noms. Il ne faut donc rien déplacer ou renommer.

Si tout ce passe bien, vous devriez avoir en quelques secondes 90 cylindres dans le set « Ensemble_trous » et un assemblage de ceux ci dans le set résultat ainsi que la découpe de la peau d’origine par ces cylindres.

 

On obtient ce résultat.Peau_percee1
La peau d’origine est cachée ainsi que les sets « Trous » et « Ensemble de trous ».

 

 

Dans ceux-ci, le programme à construit les éléments suivants:

 

ensemble_trous1Chacun des cylindres, correctement positionné et orienté, sont affublés de leur numéro de création. Ils sont tous isolés (plus de parent).

 

 

ensemble_percages1

 

L’assemblage des cylindres dans le set Résultat. L’option de vérification de la connexité est décochée.

 

 

Peau_percee1

Et la découpe souhaitée de la peau de départ par l’assemblage des cylindres.

 

 

Il ne reste plus qu’à finir la pièce par un épaississement et une symétrie à moins que vous ne vouliez changer un paramètre (Ø des trous, nombre de trous…).

Cela est possible. il faut alors détruire les 90 cylindres isolés ainsi que l’assemblage et la découpe puis modifier le cylindre de départ (dans le set « Trous ») ou modifier les boucles dans le script (pour ne pas avoir par exemple de trous dans le plan de symétrie).

 

 

Finition de la pièce

La suite est des plus simples puisqu’il suffit de passer dans l’atelier Part Design et de définir un corps de pièce comme objet de travail puis d’utiliser la fonction « Surface épaisse » avec en entrée la « peau_percée ».

En dernière opération une symétrie solide en référence au plan XZ et l’application d’un matériau.
Et voilà…Op_solide1

 

 

Le script à l’épreuve…

Moyennant des modifications mineures au niveau des boucles, nous voyons que le système de perçage est capable de s’adapter à n’importe quelle surface.

Le plan d’intersection suit le bord de la face en restant perpendiculaire à celui-ci. La catpart est modifiée de façon à intégrer cette nouvelle surface (le nom doit être conservé) et la droite guide doit être remplacée par un bord de la nouvelle face.
Démonstration en vidéo ci-dessous:

 

 

J’espère que cela vous a plu, alors n’hésitez pas à me laisser un commentaire ou simplement à partager cet article.

 

 

Le 3D à télécharger

Enter your name and email address to download Ensemble des modèles CV5R21 (tôle percée).zip

Name: Email:

 

 

Recherches utilisées pour trouver cet article :catvba

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 !

Leave A Reply

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