
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.
80 R$=INKEY$:IF R$="" THEN GOTO 80 ' Attend une touche
90 IF R$=CHR$(13) THEN ... GOTO 150 ' Si Entrée, va ligne 150
100 IF R$="P" ... THEN ... GOTO 120 ' Si P, va à la ligne 120
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
