Comment créer un profil d’aile à partir d’un fichier de points – Catia V5 (Surfacique)

Image_intro

 

Créer une courbe dans CATIA V5 à partir d’un fichier de coordonnées XY

 

 

Une question qui revient souvent

Une question qui revient souvent dans le monde des utilisateurs de profils d’aile (ou airfoils in English):

  • Concepteurs d’avions grandeur
  • aéromodélistes
  • concepteur d’éolienne
  • créateurs de planche de surf

 

 

 

Le début

Cela commence par le choix du profil. Quelques logiciels et sites internet comme AirfoilTools.com nous permettent de télécharger les coordonnées cartésiennes des points définissants l’extrados et l’intrados des profils.(naca4418-il) NACA 4418 - NACA 4418 airfoil

En aérodynamique, un profil est défini comme suit:

  • L’origine du profil est donné comme étant le point de tangence entre le bord d’attaque du profil et une verticale.
  • La longueur du profil est normalisée sur une abscisse sans dimension (le profil s’étend donc de 0 à 1 du bord d’attaque vers le bord de fuite).
  • Les ordonnées sont données pour l’extrados puis pour l’intrados de façon proportionnelle à l’abscisse (également sans dimension dans la table)
  • Le profil est orienté selon la corde de profil (la distance la plus longue entre le bord d’attaque et le bord de fuite) qui devient donc l’axe des abscisses

Cela donne un fichier structuré de la façon suivante:

Les coordonnées XY des deux courbes sont données l’une après l’autre en partant du bord de fuite pour décrire l’Extrados jusqu’au bord d’attaque puis l’Intrados vers le bord de fuite.

Important:

Vos fichiers de points doivent absolument avoir cette structure pour que le programme puisse fonctionner, vous pouvez ajouter des lignes de commentaire en en-tête mais veillez à ce que la dernière ligne soit bien les dernières coordonnées du profil.

image

 

 

Pas si facile

Catia comme ses concurrents n’offre pas nativement de fonction permettant de créer une courbe à partir d’un fichier de coordonnées nodales… Dommage, il faut donc passer par une macro pour faire cela.

 

 

Comment s’y prendre:

  • Soit réaliser un CatScript ou une VBScript
  • Soit comme ici mixer un peu de Python et de VBScript

Dans cette excellente et très instructive présentation de son logiciel  Decade  , Thomas Paviot  nous explique comment l’utilisation de la passerelle win32com nous permet d’atteindre CatiaV5 depuis l’extérieur (ici Python) et de le piloter à l’aide d’instructions du type CatVba.

 

 

L’utilisation dans le détail:

Python doit être installé sur votre machine Windows ainsi que win32com.
Rien de plus facile mais il faut installer d’abord Python (choisir votre version 2.x ou 3.x) puis installer la version de win32com correspondant en second lieu).

Vous devez avoir créé un répertoire de travail dans lequel doit être déposé les programmes Python que vous pouvez télécharger en bas de page.
Sous ce répertoire doit se trouver le répertoire dans lequel vous déposerez vos fichier texte définissant vos profils (ici NACA dans lequel on trouve Naca4418.txt récupéré sur Airfoiltools).

Catia doit être lancé (il n’y a pas de Catpart à charger en prérequis)

Lançons ensuite le programme principal 01_Createur_profil.py (Vous trouverez un lien en bas de page pour récupérer les programmes python).

image

Ce programme appelle les sous-programmes permettant de :

  • Lire le fichier texte du profil et créer les listes de coordonnées XY que le fichier en contient soit extrados et intrados ( _Recup_profil.py et _lect_profil.py )
  • Créer une Catpart avec les set géométriques nécessaires ( _NewPart_profil.py  )
  • Créer les courbes de Bézier passant par les points de définition de chaque courbe ( _Courbe_TxtCv5.py )

A la fin du traitement, on obtient une Catpart présentant:

  • un profil de 100 mm constitué de 2 courbes de Bézier désignée Spline_Extrados et Spline_Intrados.
  • Les points sont dans des sets géométriques que l’on peut cacher.
  • La Catpart est nommée Profil_[Nom du profil.txt] et est sauvegardée dans le répertoire de travail
  • Les deux courbes sont publiées pour une utilisation future.

image

A partir de cette base, on peut simplement dupliquer les courbes et les placer plus loin comme ici avec une opération scale et tirer deux peaux entres les courbes d’extrados et d’intrados. Il est tout aussi facile de rajouter une rotation du profil externe pour vriller l’aile (ou la pale).

image

Bref, le plus dur est fait, à vous de jouer pour le reste avec amusement et créativité.

Avant de finir, je vous conseille de créer votre aile, pale d’hélice, safran, etc… dans une autre catpart en lien avec la/les “part profil” comme cela si vous voulez changer un ou plusieurs profils cela se fera simplement en re-pointant vers une autre part profil et la magie s’opèrera facilement le temps d’un Update).

 

 

En images animées cela donne ceci:

 

 

Les programmes Python

 

Le programme principal à la loupe:

Je n’ai pas voulu surcharger le programme Python avec une IHM ou une quelconque interactivité.
Vous pouvez bien sûr l’améliorer si bon vous semble.
Ici pour vos besoins du jour, il faudra juste éditer ce programme avec votre éditeur Python préféré (IDLE par exemple) et modifier deux variables:

  • La variable Chemin_txt_profil = « NACA » donne le nom du répertoire dans lequel se trouve les profils en fichier text. Si vous utilisez autrechose que du NACA, créez un autre répertoire et changez la valeur de la variable.
  • La variable  Nom_profil = « NACA4418 » donne le nom du fichier txt à utiliser dans le répertoire de profils ici une classique NACA4418.

et ensuite F5 pour lancer l’exécution… Enjoy !

_NewPart_profil.py à la loupe:

 

 

_Recup_profil.py à la loupe:

 

 

_lect_profil.py à la loupe:

 

 

_Courbe_TxtCv5.py à la loupe:

 

Les Programmes Python à télécharger

Vous pouvez télécharger gratuitement les programmes Python ci-dessous.

Enter your name and email address to download Ensemble des programmes Python (Airfoil).zip

Name: Email:

 

J’espère que cet article vous à aidé à concevoir et vous a fait gagner du temps.
Si vous l’avez aimé, n’hésitez pas à partager sur les réseaux sociaux et me laisser un commentaire en bas de page.

Recherches utilisées pour trouver cet article :creer un squelette sur catia eolienne, catia v5 à partir dun plan, comment courber extrados dune Aile, profil naca catia, comment créer un fichier prov, profil aile avion 3dxml catia, profile aile autoporteur, tableur xy aile avion

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 messaoudene

    Merci pour le sujet c’est très instructif sur tout pour la programmation VBSCRIPT et PYTHON.
    J’utilise une autre approche
    1- conception sur Alias studio Tools
    2-translation sur UGS NX
    3- conception des nervures d’ailes par intersection Plans/Surfaces d’ailes
    4- traitement des nervures en Pars
    5- Translation sur INVENTOR HSM
    6- Création des programmes de FAO par assemblage et nesting des nervures
    7- Fabrication des nervures sur CN
    J’ai réalisé la structure d’un PULSARE ainsi que la conception et la fabrication d’un CANOE CANADIEN le « CARIBOU »
    le lien youtube

    • Répondre PSX59

      Bonjour Abdelhamid,
      Merci pour ce commentaire et bravo pour vos réalisations.
      Je vois que nous partageons les mêmes passions.
      Bravo pour vos réalisations, j’ai brièvement regardé vos vidéos sur Youtube.
      Votre démarche de conception est intéressante. Elle met en œuvre beaucoup de logiciels et de passerelles mais le résultat est là, c’est bien le principal.
      Cela montre également qu’il existe maintenant de nombreuses solutions CAO et CFAO.
      Je suis en train de mettre à disposition des articles concernant la CFAO sur Catia V5.

  2. Répondre Philippe

    Bonjour,
    Lorsque je lance le programme, il me met une syntaxError « Missing Parentheses in call to ‘print’ et je ne comprend pas pourquoi!

    • Répondre PSX59

      Bonjour Philippe,
      Merci pour votre retour.
      Je pense qu’il s’agit simplement d’un problème de version de Python. En effet, j’ai peut être oublié de le préciser mais le programme est écrit en Python 2.7 et la fonction « print » ne demande pas de parenthèses alors qu’en Python 3.4 il en faut. Vérifiez dans votre message d’erreur, mais cela doit être le cas.
      Il y a quelques différences entre la version 2.x et la version 3.x au niveau de la syntaxe. Le plus simple serait peut être que vous installiez Python 2.7 à coté de la 3.4.
      Il faut cependant faire attention au fait que votre PC lance bien la 2.7 (voir dans system/path) lorsque vous exécutez le *.py . Ou alors vous désinstallez la 3.x pour laisser seule la 2.7.

Leave A Reply

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