L’ALTERNANCE CHEZ TRIAX

Modernisation et Automatisation CAO

Contexte et Mission

Intégré au Bureau d’Études en alternance, ma mission initiale était de moderniser les outils de calcul interne, historiquement basés sur des technologies obsolètes, pour les rendre plus pérennes et ergonomiques.
Face aux bugs sous Windows 11, mon tuteur m’a confié la mission de migrer ces programmes de calcul vers un langage moderne, dans mon cas j’ai choisi le langage Python.

La Problématique

Le Bureau d’Études utilisait des programmes fiables mais obsolètes (BASIC des années 80-90/2000), sans interface graphique, purement textuels, et déconnectés de la CAO actuelle. Cela obligeait à ressaisir les résultats du calcul manuellement dans la 3D. Enfin, après la récente mise à jour de Windows 11 le programme BASIC n’étais fonctionnelle

On peut clairement voir un affichage obsolète

Le défaut majeur du BASIC est que l’utilisateur est prisonnier du déroulement du programme. L’utilisateur doit répondre aux questions une par une, dans un ordre immuable.
S’il se rend compte d’une erreur de saisie à la question 3 alors qu’il est à la question 10, il doit souvent tout recommencer ou attendre la fin du cycle.

Aussi, l’utilisateur conçoit une barrière physique (3D), mais interagit uniquement avec des lignes de texte et des chiffres abstraits. Il n’y a aucun schéma dynamique qui s’actualise pour montrer à quoi ressemble les cotes retournées.

Le défi du BASIC

Avant d’entamer la modernisation, j’ai réalisé une rétro-ingénierie complète du programme utilisé par le Bureau d’Études depuis sa création. Ce code, écrit en GW-BASIC, repose sur un pilier caractéristique de l’informatique de cette époque

Contrairement aux langages modernes structurés, ce programme navigue dans le code via des sauts de lignes constants (GOTO) et des sous-programmes (GOSUB). C’est comparable à un livre : pour exécuter une action simple, le lecteur doit sauter de la page 10 à la page 150, puis revenir à la 12.

Extrait du code BASIC

La Refonte en Python

Le défi principal était d’extraire les formules mathématiques de cinématique qui était noyée au milieu des instructions d’affichage dans le code BASIC.

J’ai choisi Python pour sa robustesse et sa modularité. Pour l’interface utilisateur, j’ai utilisé la bibliothèque PySide 6 (Qt) qui est une version très récente et très complète compatible avec Windows 11.

Étape 1 : Convertir le programme BASIC en Python
J’ai réalisé une rétro-ingénierie complète des scripts existants. Cette étape de décodage m’a permis d’identifier et d’extraire la logique métier, notamment les boucles de calcul par itérations qui définissent les cotes cibles que l’utilisateur rentre.

Étape 2 : Création de l’interface utilisateur (UI)
Amélioration significative de l’ergonomie de l’utilisateur avec l’ajout de schémas dynamiques, de boutons modernes ainsi que des plans d’explication intégrés. L’utilisateur ne navigue plus à l’aveugle, surtout pour un débutant, maintenant il voit concrètement ce qu’il calcule.

Extrait du code BASIC

Automatisation sur Creo (Initiative Personnelle)

Une fois la mission officielle accomplie (l’interface Python), j’ai souhaité aller plus loin pour démontrer le potentiel inexploité de la CAO paramétrique. Le Bureau d’Études trace actuellement chaque barrière manuellement (de A à Z) sur Key Creator.

Mon objectif : Prouver qu’il est possible de générer une barrière complète en quelques clics via Creo Parametric 10.0 piloté par mon interface Python.

L’échec formateur (Le « Tout sur Creo »)

J’ai commencer par créer l’ensemble des fichiers 3D de la barrière de type B. J’ai ensuite tenté de tout coder via les relations internes de Creo. Néanmoins il fut extrêmement compliqué de transférer les boucles « while » au sein des relations Creo.

Leçon : La logique complexe ne doit pas être dans la CAO, mais dans un script externe.

Résultat : Un modèle de 3000 lignes de code, qui est fragile, et surtout sans options donc impossible à maintenir sur le long terme.

Le Jumeau Numérique Piloté (Python + Creoson)

J’ai développé une architecture où mon interface Python devient le « cerveau » qui exporte les cotes et les paramètres de la barrière et Creo l’exécutant. J’utilise la librairie Creoson pour faire le pont entre les deux. En retravaillant un peu l’interface réalisé chez Triax, notamment sur le choix des options.

Le processus est automatisé :

  • Calcul : L’utilisateur rentre le besoin du client dans l’interface Python.
  • Pilotage : Python envoie les dimensions et paramètres à Creo.
  • Génération : Creo met à jour automatiquement le modèle 3D par régénération

Vidéo de présentation de l’outil de calcul de barrière écluse type B paramétrique sur Creo Parametric 10.0