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

Catia V5 - python générateur de profil d'aile

 

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 - Catia generateur de profil python

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.

C’est le format proposé par défaut sur Airfoil tools (Lednicer format)

Important:

Vos fichiers de points doivent absolument avoir cette structure (format Selig qui est différent de Lednicer) 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 (pas de retour chariot après la dernière ligne).

Naca 4418 Selig format - catia génération de profil

 

 

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 fichiers 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).

Catia V5 - python générateur de profil d'aile code

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.

Catia V5 - python générateur de profil d'aile Extrados et intrados splines

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).

Catia V5 - python générateur de profil d'aile création de la peau de l'aile

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 a 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 :comment courber extrados dune Aile, comment créer un fichier prov, profile aile autoporteur

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 !

9 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.

  3. Répondre Badara

    Bonjour,

    Je voudrais faire une aile d’avion mais ce que vous expliquez en macro est incompréhensible.
    Comment pourrez faire une aile sur catia svp?

    • Répondre PSX59

      Bonjour Badara,
      Oui, en effet cet article montre comment obtenir un profil d’aile à partir d’un fichier de coordonnées à l’aide d’une macro.
      Vous n’avez pas forcément besoin d’utiliser une macro pour dessiner les profils de l’aile.
      Il suffit de tracer dans une esquisse tous les points du profil de votre choix puis de relier les points avec une courbe (spline) pour tracer l’extrados et l’intrados.
      C’est un peu long mais faisable.
      Une fois que vous avez les profils aux bons endroits, vous pouvez tendre une peau entre ces profils; cela vous donnera votre aile.

      • Répondre Badara

        Bonjour PSX59 (je vais t’appeler Chef vu que tu t’y connais mieux que moi),

        Merci pour ta réaction si rapide.
        Y aurait-il pas une vidéo qui illustre ça sur catia, parce que j’ai vu et lue le lien mais ça ne m’aide vraiment pas.

        • Répondre PSX59

          En fait, je n’ai rien dans l’immédiat pour illustrer cela mais je pourrai faire un article là dessus si ce n’est pas trop pressant.
          J’ai compris que votre objectif est de faire la surface d’une aile à partir de profils. C’est bien cela ?

          • Badara

            Bonjour Chef,
            Vous avez très bien compris, mon objectif est de pouvoir faire la surface d’aile, le fuselage d’un avion à partir de profil..

Leave A Reply

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