Avril 1999 - Juillet 1996 : SYSTIA (Grenoble)
Stage d'ingénieur Développement CAO - 4 mois
Présentation de l'entreprise
La société Systia est une société qui commercialise et distribue des produits de CAO comme Autocad. Elle mise plus particulierement son marche sur la société TopCad qui édite le logiciel de CAO générale TopCad. Le siége sociale de l'entreprise se situe à Annecy. Mais il existe d'autres branches. L'une se trouve à Lyon et n'est qu'un revendeur sur le secteur de Lyon. L'autre situé à Grenoble est la branche étude. Elle a mis au point un nouvelle version TopCad, orientée moulage plastique : TopMoule Elle commercialise le progicie lde CAO, TOPMoule, destiné aux professionnels du moule : bureaux d’études, moulistes et intégrés. TOPMoule peut-être complété par les modules suivants : TOPSolid+ pour la modélisation exacte en 3D volumique et surfacique, TOPImage pour le rendu réaliste et TOPFlow pour la rhéologie et la FAO.
Sujet du stage
Le but de ce projet est de mettre au point des outils de visualisation et de gestion de données dans le cadre d’une nouvelle version de TOPFlow, exécutable sur les plates-formes Windows NT et Windows 95. TopFlow est un logiciel d'aide à la conception de moule plastique. Le moule réalisé sous TOPMoule ou tout autre logiciel de CAO subit une simulation rhéologique fournie par le logiciel MoldFlow. TopFlow utilise les données résultants de cette simulation et visualise le modèle en 3D maillés avec ses différentes mesures : pression, température, contraintes, ... Ceci permet au concepteur du moule de connaître les problèmes que peuvent engendrer son modèle : bulles d'air, inremplis, lignes de soudure mal positionnées, ... L'objectif de ce stage est de mettre au point ce visualiseur. Son but est de dessiner à l’écran n'importe quel objet en 3D maillé dont on a fait une simulation rhéologique. L’objet à dessiner est défini par un ensemble de noeuds (points) et d’éléments (triangles, segments), qui reliés entre eux forment l’objet dans l’espace. A chaque noeud ou points, le simulateur a calculé plusieurs données : la pression, la temperature, ... Grace aux données reliées à leurs noeuds ou points, on peut asocier une couleur en fonction de la valeur de la donnée et ainsi afficher en fausse couleur le modele. Chaque couleur renseignant sur le degre de pression ou de temperature du modele. Il visualise ainsi tous les endroits ou peuvent se former des poches d'air, des soudures mal positionnées et corriger le modéle pour ne plus avoir de probléme. Ce genre de procédé permet d'obtenir des pourcentgage de reussite allant jusqu'a 99% au niveau de la conception du moule. Cela fait autant de prototype en moins à tester et un gain non négligeable de tempsgangé par rapport à une approche classique du probléme. Le visualiseur n'est conçu que comme étant un service externe auquel on fait appel. Il peut être utilisé dans n'importe quel solution de CAO, sans que l'utilisateur ne s’apenrçoive qu’il fait appel à un visualiseur externe au logiciel de CAO qu’il utilise. Il peut choisir les données à afficher : Températures, Pressions, ... et aussi, grâce à un éditeur d’équations, mêler plusieurs données résultants de la simulation pour obtenir d’autres mesures, où préciser certains points de son modèle (exemple) : - (100-%FROZ)*THICK*1000 (ceci visualise la gaine liquide d’un modèle) - 100 < TEMP < 200 (ceci visualise les parties du modèle où la température est comprise entre 100 et 200°) - TEMP : Température de la pièce. - %FROZ : Pourcentage de matière solide par rapport à l’épaisseur finale de la pièce. - THICK : Epaisseur de la pièce. • L’utilisateur n’aura pas à entrer à chaque fois ses formules, puisqu’il pourra les sauvegarder sous un nom et les utiliser comme toutes autres données calculées par la simulation. • L’utilisateur visualise dans une vue (une fenêtre) le modèle et ses données représentées en fausses couleurs: • L’utilisateur peut faire évoluer son modèle dans l’espace, par des rotations sur les trois axes, des translations, des zooms. • L’utilisateur pourra afficher en même temps plusieurs vues de son modèle. Chaque vue est indépendante des autres. L’utilisateur peut donc visualiser en même temps la pression, la température et la gaine fluide de son modèle.
Contraintes du projet
• Le visualiseur doit être considéré comme un service externe auquel on peut faire appel. • Les différents outils composants le visualiseur sont des objets indépendants les uns des autres. • Ces objets sont développés avec Visual C++ 4.0 et utilisent les classes MFC et OpenGL. • L’utilisation de ces objets doit être simple et facile à implémenter. • Les tests seront effectués sur une machine équipée d’un processeur pentium Pro 133Mhz et de 8 Mo de Ram.
Centres d'intérêt
Ce projet est développer sous Visual C++ 4.0, langage professionnelle de developpement d'application Windows Nt ou 95. il a donc fallu apprendre et integrer les nouveaux concepts de programmation que sont la programmation orienté objet de haut niveau, ainsi que l'architecture d'application de windows, la bibliothéque Microsoft Foundation Class qui contient tous les objets nécessaire au développement d'une application professionelle et les differentes classes autour desquelles s'articule la programmation sous windows. Ce projet doit visualiser des objets en 3D. Pour ce faire le langage graphique OpenGl a été utilisé. C'est un langage de programmation d'objet graphique de haut-niveau, permettant de visualiser des objets complexes ( sphere, cone, surface de bezier, ...) avec gestion de texture, de sources lumineuse, ...
Moyens mis en oeuvre.
Mise à disposition d'une station de travail : Pentium 133Mhz Disque Dur 1 Go Lecteur CD-Rom *2 Memoire vive 32Mo Imprimante Jet d'encre de toutes la documentation fournies avec le progiciel Visual C++ de documents techniques sur le simulateur rhéologique
Déroulement du stage
Le stage s'est déroulé en plusieurs phases : Phase de prise en compte du context du projet et de connaissance de l'entreprise : - situation géographique, lieu d'accés - le personnel : les personnes responsables, les collégues - le materiel, le context economique et industriel
Phase d'apprentissage du logiciel TopCad
Avant de travailler sur un visualieur devant être ajouté à TopCad, il faut connaître le produit et apprendre à l'utiliser. Ceci permet de voir l'axe de developpement du logiciel et sa philosophie.
Phase d'apprentissage de la POO
La Programmation Orienté Objet, a pris de plus en plus de place dans les langages de programmation professionnel. Elle donc maintenant un concept incontornable de la programmation professionnel actuel. Il a donc fallu intégré ce concept au developpement de ce projet. L'apprentissage s'st partagé entre des phases d'apprentissage théorique et de mises en pratiques des connaissances acquises. La comprehension du concept apportant un nouveau regard sur le probléme du visualiseur, faisant apparaitre de nouvelles solutions.
Phase d'apprentissage de l'architecture MFC et de Visual C++.
Cette phase d'apprentissage fut beaucoup plus longue que la precedente. En effet eu agard au nombre d'objets regroupé autour de l'architecture MFC, il faut plusieurs années pour apprendre à les connaître et à les utilisé convenablement. Il n'a pas donc été possbile de voir toutes les possibilités de la bibliothéque MFC, mais les points les plus important on été abordé. Vu la richesse du langage, la difficulté majeur n'est pasde savoir si une solution existe au probléme qui se pose a vous, mais ou est cette solution. Voici un aperçu des notions les plus importantes abordé : - Architecture document vue. - Application dialogue, single device, multiplie device interface - Les boîtes de dialogues et leurs controles - Les DLL : Dynamik Link Library - Les serveurs et clients OLE Automation - OpenGL : langage de programmation graphique
Recherche et mise au point du cahier des charges
Recherche du problémes Du context de developpement De l'orientation générale du projet : programmation modulaire Mise en place de solutions : définition des principaux objets a développer Recherche de l'architecture générale du visualiseur en tenant compte d'une approche modulaire (boite a outil) du probléme. Le visualiseur peut être divisé en plusieurs fonctions principales qui peuvent être autant d'objet à définir : - Base de donnée : contenant toutes les données sur les noeuds, les elements et les données du modéle. - Fonction de lecture formaté : pour pouvoir lire des lignes de données ASCII dans un fichier et les transcrire dans le format demandé. - Fenêtre graphique : qui permet de visualiser le modéle grace aux données contenut dans la base. - Editeur d'equation : pour permettre de creer de nouvelle mesures a partir des mesures déjà existantes.
Apprentissage : DLL, Ole Automation, OpengGL
Mise au point des differents objets et de leurs méthodes associées. Une implementation de ces differents objets est dévellopé : c'est le visualiseur de TopFlow. C'est l'un des objets a developper lors de ce stage, mais c'est aussi un exemple d'implementation des autres objets développés dans ce projet.
Voici plusieurs snapshots du visualiseur de simulation rhéologique
|