Modeleur 3D de structures en toiles tendues

Calcul de formes de toiles tendues

SOMMAIRE



3ème partie
BILAN DE TRAVAIL

BILAN DE L'EXPERIENCE PROFESSIONNELLE LIEE A LA SITUATION DU STAGE

Nous avons été attirés par ce stage du fait qu'il proposait la programmation d'une application complète et la mise en oeuvre de nos acquis de l'I.U.T. (utilisation du langage C++, environnement Linux), mais aussi l'utilisation de librairie et d'application directement liée (librairie FOX, KDevelop). En effet, le fait de développer notre application sous Linux et en C++ nous a donné l'occasion de revoir les cours de programmation et de nous exercer. Nos compétences en analyse aussi ont été utilisées lors des discussions autour du cahier des charges avec les étudiants de l'ENSAM.

En plus des compétences en programmations, d'autres acquis de l'I.U.T. comme les mathématiques et surtout la géométrie, nous ont beaucoup servis lors de la création des représentations graphiques des objets 3D à l'écran (arcs, arcs multiples, géode, surface...). Cela nous a permis de démontrer que nous pouvions appliquer ce que nous avions appris dans un domaine très concret, et de programmer des algorithmes mathématiques très complexes malgré quelques difficultés dans cette matière.

Sur le plan des relations professionnelles, nous avons tous deux beaucoup appris au contact des ingénieurs d'AGIBAT MTI et aussi au sein du laboratoire IMS à l'ENSAM d'Aix. Le fait de dialoguer avec le client est en fait une partie importante du travail d'un informaticien, qui n'est pas enseignée mais que nous avons pu exercer lors de ce stage. Nous avons pu nous apercevoir que le dialogue entre informaticien et non-informaticien n'est pas toujours facile. D'abord, les ingénieurs, tout comme nous, utilisaient leur langage. Nous avons dû apprendre leur langage et modifier le nôtre pour leur permettre de comprendre.

En ce qui concerne le cahier des charges du logiciel, les étudiants de l'ENSAM étaient chargés de le définir dans le cadre d'un projet. Mais le problème est qu'ils ont pratiquement commencé leur projet en même temps que nous. Nous n'avions donc aucun document définissant clairement le logiciel. Nous n'avons donc pas pu réfléchir à la conception du logiciel dans son ensemble. Nous programmions un peu jour par jour en essayant de faire de la programmation la plus propre et la plus générique possible pour nous permettre de faciliter des modifications futures. Vers le milieu du stage, de nombreux documents nous ont été fournis par ces étudiants ce qui nous a permis de travailler avec une vision plus précise du logiciel. Maintenant, nous disposons d'un cahier des charges complet décrivant tout ce que le logiciel doit faire. Ce problème nous a ralenti dans notre travail car à plusieurs reprises, nous avons été obligés de modifier en profondeur le programme pour inclure certain cas particuliers.

La négociation d'un contrat d'embauche, la création d'une proposition de travaux et bien d'autres tâches nécessaires au bon fonctionnement d'une activité de service ne nous étaient pas familières. Pourtant, elles nous ont été demandées et nous avons donc du nous adapter.

Le fait d'être un binôme nous a beaucoup aidé. Dans tous les cas, le fait d'être plusieurs sur le même projet permet de profiter de l'expérience et des qualités de chacun pour franchir les difficultés. Comme nous avions déjà réalisé des projets ensemble, nous n'avons eu aucun mal à nous entendre.

Le Projet dépasse la création d'un simple modeleur, il doit permettre de visualiser les déformations, de préparer les informations pour les simulations climatiques, afficher les plans de découpe... Le stage ne portait que sur une petite partie du projet. Nous négocions donc la continuation du projet pendant l'été en CDD Les résultats encourageants du stage poussent AGIBAT MTI à continuer le développement du logiciel en remplacement de leurs multiples applications qu'ils utilisent. Ce contrat de travail va nous permettre d'accroître notre expérience professionnelle dans les secteurs de la programmation Linux et en création d'applications de DAO-CAO. Le fait d'avoir crée un logiciel original qui répond à un besoin ciblé, nous a permis d'acquérir une technicité dans ce domaine et de nous rendre indispensables pour ce développement.

CONCLUSION

Cette expérience a été bénéfique pour tous. Nous avons trouvé le moyen de parfaire nos connaissances dans une grande partie des matières enseignées a l'IUT.

D'un autre coté, les étudiants de l'ENSAM ont pu voir la réalisation du projet qu'ils avaient défini dans leur cahier des charges.

Le laboratoire IMS a pu répondre aux attentes d'AGIBAT MTI et a gagné la confiance de l'industriel pour le développement de projets futurs.

AGIBAT MTI a bénéficié de l'expérience de M. VERON dans le domaine des textiles tendus. Le cahier des charges très détaillé du logiciel a été écrit gratuitement par les étudiants de l'ENSAM. Nous avons programmé le module de modélisation de structure de toiles tendues et nous sommes donc plus compétant pour continuer le développement de ce logiciel.

BILAN DE LA FORMATION INITIALE

Le stage nous a démontré que nous pouvions être efficaces sur un projet de génie logiciel réel. La preuve est donc faite que notre formation est suffisante pour programmer une application assez complexe. Le DUT va nous ouvrir des portes, surtout celles d'entreprises qui recrutent actuellement. Et nous n'aurons pas de problèmes pour trouver un emploi. Pourtant, aucun de nous ne désire entrer dans la vie active. Nous avons bien compris que même dans un métier qui évolue vite une solide formation initiale est utile. Nous poursuivrons donc nos études pour accéder à des postes de responsabilité et pouvoir nous occuper de tâches moins rébarbatives que le codage.

CONCLUSION

Ce stage a été pour nous une très bonne expérience du travail d'un informaticien sur un projet. Nous avons travaillé en équipe. Même si nous n'étions que deux à travailler, nous avons dû nous entendre et partager le travail. Nous avons aussi travaillé en collaboration avec des étudiants de l'ENSAM avec qui nous faisions de nombreuses réunions pour discuter du logiciel. Et enfin, nous avons eu des contactés avec les ingénieurs pour éclaircir certains points et pour faire une démonstration de l'avancée de notre travail.

BIBLIOGRAPHIE

Cours OpenGL:
http://www.essi.fr/~buffa/cours/synthese_image/
https://www.opengl.org


Logiciels et librairies utilisés :
KDevelop: https://www.kdevelop.org
Linux Mandrake: https://www.openmandriva.org
FOX : http://www.fox-toolkit.org/


Documents techniques :
  • Brochure Architecture textile de FERRARI.
  • Techtextil symposium: The Gerland stadium in Lyon.
  • Documentation utilisation Meftx.

JOURNAL DE STAGE

- Travail effectué ensemble.
+ Travail effectué par Christophe DECIS.
# Travail effectué par Léo NEGRI.



Semaine 1 : du 27 au 31 mars

Lundi 27 mars:
- Installation de Linux, et de tous les logiciels et librairie (FOX, Mesa...) dont nous aurions besoin pour notre projet.
- Définition des objectifs.
- Recherche pour déterminer la compatibilité de nos postes de travail avec le système d'exploitation Linux Mandrake 7.0.
- Installation et mise en route d'un second PC.
- Installation de Linux, et de tous les logiciels et librairie (FOX, Mesa...) dont nous aurions besoin pour notre projet.

Mardi 28 mars:
- Entretien avec les étudiants de l'ENSAM qui s'occupent de faire le cahier des charges du projet.
+ Fin de l'installation de Linux et de la documentation de FOX.
# Visualisation des exemples, lecture des fichiers sources.

Mercredi 29 mars:
- Nouvelle rencontre avec les étudiants de l'ENSAM pour éclaircir le sujet.
- Réflexion sur le sujet au niveau programmation (classes, fonctions, ... ).
- Définition des objets (parties de la structure à modéliser).
- Début de la programmation des 1ère classes.

Jeudi 30 mars:
- Nouvelle rencontre avec les étudiants de l'ENSAM.
+ Commencement de la programmation du viewer OpenGL.
# Début du codage des classes d'entités (Point, Contrainte, Mât Poutre).

Vendredi 31 mars
- On a réglé le problème du rafraîchissement de la vue 3D.
+ Commencement de la programmation de l'interface graphique.
# Codage d'autres classes (câble, barre, ralingue et cerce).
# Création de listes chaînées pour organiser les éléments se rapportant à une toile.

Semaine 2 : du 3 au 7 avril

Lundi 3 avril:
+ Programmation de l'interface graphique (onglet, boutons, ...).
+ Insertion de ces classes dans l'interface graphique.
# Fin des classes d'objets (version simplifiée à compléter).

Mardi 4 avril:
+ Programmation de l'interface graphique.
+ Programmation de nouveaux objets OpenGL.
# Consultation de sites pour trouver la définition d'un taure (forme d'une cerce).
# Création du taure.

Mercredi 5 avril:
+ Programmation de l'interface graphique (différents onglets pour chaque objet).
# Créations des points (plusieurs types).

Jeudi 6 avril:
+ Début de la programmation de l'interaction entre interface graphique et viewer OpenGL: ouverture d'un onglet suivant une action.
+ Modification du viewer OpenGL.
# Absence pour aller passer un concours.

Vendredi 7 avril:
+ Programmation de l'interaction entre interface graphique et viewer OpenGL.
# Absence pour aller passer un concours.Le soir, rencontre pour faire le point sur ces deux jours.

Semaine de vacances

Vendredi 14 avril:
# Rencontre avec Mr VERON avant qu'il parte en vacances, redéfinition des objectifs.
# Création de surfaces pour visualiser les toiles.

Semaine 3 : du 17 au 21 avril

Lundi 17 avril:
+ Installation de la dernière version de la librairie FOX à cause d'un bug.
+ Intégration de nouvelles classes.
# Test sur les vecteurs et les rotations.
# Insertions des nouveaux objets dans l'interface.

Mardi 18 avril:
+ Amélioration de l'interface graphique.
+ Création de boites de dialogues pour les messages d'erreur.
# Le matin, remise en forme des anciens objets.
# L'après-midi, insertion de la totalité des objets.

Mercredi 19 avril:
+ Gestion des interactions entre l'onglet et le viewer.
+ Nettoyage du code.
# Le matin, ajout de la possibilité d'orienter les mats et les cerces grâce à un vecteur.
# L'après-midi, simplification des classes et vérification de l'homogénéité de notre système de données.

Jeudi 20 avril 2000:
- Correction des erreurs de compilations.
- Fusion du travail: création d'un point, mat, hauban ... dans le viewer 3D (Affichage des objets).

Vendredi 21 avril 2000:
+ Fusion du travail: interaction entre objet et onglet.
# Modification de la visualisation des éléments sélectionnés, problème de succession rotation puis translation.

Semaine 4 : du 25 au 28 avril

Mardi 25 avril:
- Réunion générale avec les élèves ingénieurs de l'ENSAM pour constater l'avancée des travaux et définir de nouveaux objectifs.
+ Création d'une liste d'objets dans l'interface pour faciliter la recherche et la modification d'un objet.
# Fonctions de modification des objets.
# Visualisation des toiles sélectionnées.

Mercredi 26 avril:
- Recherche de la meilleure manière de créer des objets, de la fabrication d'un arc multiple (un arc multiple est composé de plusieurs arcs) et d'une surface avec maillage.

Jeudi 27 avril:
- Réunion avec les élèves ingénieurs de l'ENSAM : démonstration de ce que l'on a fait, demande de précision de certains points.
+ Programmation de petites parties et correction de bugs.
# Changements dans la représentation des points.

Vendredi 28 avril:
+ Correction des bugs: Modification d'un objet, liste des objets présents, mat, cerce...
# Test des créations, déplacements d'objets.

Semaine 5 : du 2 au 5 mai

Mardi 2 mai:
+ Programmation de la sélection des points dans le viewer lors de la création d'un objet.
+ Amélioration de l'interface graphique.
# Suites des tests, mise en place du code des couleurs

Mercredi 3 mai:
+ Programmation de la sauvegarde.
# Changement du mode de visualisation des cerces et arcs.

Jeudi 4 mai:
+ Mise en place du double click pour voir les paramètres d'un objet.
# Algorithme permettant de calculer la dernière partie d'un arc de soutien.

Vendredi 5 mai:
+ Création d'une surface entre 4 points.
# Création d'un arc de soutien à partir de plusieurs arcs et de cercles mis bout à bout.

Semaine 6 : du 9 au 12 mai

Mardi 9 mai:
+ Programmation du maillage d'une surface composée de 4 points en polygone.
# Suite des calculs sur les arcs de soutien.

Mercredi 10 mai:
- Préparation du déplacement à Lyon, préparation des documents nécessaires à l'entrevue.
+ Correction de nombreux petits bugs, et recherche d'un meilleur algorithme pour faire le maillage des surfaces.
# Fin des calculs d'arcs.
# Début de réflexion sur les rotations de cerces et d'arcs.

Jeudi 11 mai:
- Déplacement dans l'entreprise AGIBAT-MTI à Lyon où l'on a discuté du logiciel avec les ingénieurs. Présentation de l'avancée du logiciel (partie modeleur).

Vendredi 12 mai:
- Écriture d'un rapport de la journée de jeudi.
- Réflexion sur une solution réseau adaptée aux impératifs en matière de sécurité, et de rapidité d'AGIBAT.
+ Installation de la dernière version de la librairie FOX.

Semaine 7 : du 15 au 19 mai

Lundi 15 mai:
+ Création d'une classe liste générique pour la création de listes d'objets sans destruction de ces objets à la destruction de cette liste.
+ Réflexion sur une amélioration des sauvegardes des données effectuées sur l'ordinateur où travail les ingénieurs.
# Recherche d'une erreur dans le programme bulle qui sert à calculer la forme d'une toile gonflée.
# Début de création d'un arc avec trois points.

Mardi 16 mai:
+ Recherche et correction d'un bug lors de la modification d'un objet.
# Suite de création de l'arc et début de sa modification.

Mercredi 17 mai:
+ Suppression des objets avec vérification qu'ils ne soient pas utilisés par un autre objet.
# L'arc fonctionne correctement en 2 dimensions.
# Début de calculs pour le créer dans l'espace.

Jeudi 18 mai:
+ Nettoyage du code source.
+ Création d'une classe FXGLLigne permettant de dessiner des lignes avec choix de couleur pour chaque objet.
# Création d'une fonction pour mailler l'arc.
# Début de la création et de la modification des arcs en 3D.

Vendredi 19 mai:
+ Programmation du maillage d'une surface composée de 4 points et 4 objets (arc, ralingue, ...). La surface n'est donc pas plane.
# Une première version de l'arc fonctionne.

Semaine 8 : du 22 au 26 mai

Lundi 22 mai:
+ Programmation de la surface.
# Premiers maillages contenant des arcs.
# Après les tests, nous découvrons plusieurs cas particuliers où l'arc ne fonctionne pas.

Mardi 23 mai:
+ Correction de bugs.
# Correction des erreurs de l'arc dans les cas particuliers.

Mercredi 24 mai:
+ Affinage de la programmation de la surface.
# Absence pour l'oral de la M.S.T. d'Aubagne.

Jeudi 25 mai:
- Réunion avec les étudiants de l'ENSAM pour parler du fichier meftx.
+ Modification de la classe FXGLLigne pour le maillage.
# Conversation téléphonique avec un ingénieur d'AGIBAT MTI à propos de la modification du programme bulle pour la modélisation de la géode. Début de programmation du module Géode dans notre application.

Vendredi 26 mai:
+ Modification de tous les objets pour que les noeuds des maillages soient modifiables.
# Suite de la programmation du module géode. Demande de précisions au téléphone sur les géodes et sur les tâches à effectuer en priorité.

Semaine 9 : du 29 au 31 mai

Lundi 29 mai:
- Réception, de la liste des tâches à accomplir cet été.
- Évaluation du temps nécessaire à chacune et proposition de travaux.

Mardi 30 mai:
- Modification de la proposition.
- Développement de chacune des parties de la proposition. Début de rédaction du rapport de stage.

Mercredi 31 mai:
- Fin et envoi de la proposition.
- Suite du rapport de stage.

Semaine 10 et dernière Semaine

Lundi 5 juin:
- Rédaction du rapport de stage.


ANNEXES

GRAPHIQUE DES CLASSES

grahpique de classes 1 grahpique de classes 2

EXEMPLE D'UTILISATION

Nb: pour plus de détails sur le maniement de l'interface se reporté au chapitre 10 de la seconde partie.

1. Création des points d'encrages

points d'encrages

Le point apparaît

point apparaît

Le code des couleurs est le suivant :
- Bleu pour les points fixes.
- Vert pour le point sélectionné.
- Rouge pour les autres points.

2. Les câbles et les barres

Sélectionnez l'objet barre. Cet onglet apparaît:

Les câbles et les barres

Le câble apparaît.

câble apparaît

Le câble sélectionné apparaît en vert et l'onglet contient les informations le concernant.

3. Les arcs

Sélectionnez l'objet arc. Cet onglet apparaît:

onglet arcs

L'arc apparaît

L'arc apparaît

4. Les surfaces

Sélectionnez l'objet surface.

Sélectionnez l'objet surface

Puis au moyen du bouton ajout, insérez tous les cotés et les points d'extrémité dans la liste.

onlget surface

Résultat: Une magnifique surface !!!

Une magnifique surface  2ème partie Travail