Skip Navigation LinksHome > Documentation > Training Course Report > Modeleur 3D de structures en toiles tendues
Télécharger: Télécharger le rapport de stage IUT d'Agibat en version PDF Télécharger le rapport de stage IUT d'Agibat en version Word
Université de la méditerranée - Aix Marseille II I.U.T. Informatique - Aix-en-Provence UNIVERSITÉ DE LA MÉDITERRANÉE
AIX-MARSEILLE II
I.U.T.d'Aix-en-Provence
Département informatique











RAPPORT DE STAGE


Modeleur 3D de structures
en toiles tendues


Calcul de formes de toiles tendues
















AGIBAT MTI Ingénierie Laboratoire IMS de l'ENSAM









Christophe DECIS
Léo NEGRI
Bernard FAURE
Alexandre VERCASON
Didier MATHIEU

Année 2000







SOMMAIRE




Remerciements.
Fiche technique.
Introduction.


1ère partie :
Présentation de l'entreprise et de l'environnement professionnel du stage.
Introduction.
AGIBAT MTI Ingénierie.
Laboratoire IMS ENSAM.


2ème partie :
Nature de la tâche, travail réalisé.
Introduction.
Présentation du sujet, problématique.
Le matériel et les outils logiciels.
Travail réalisé :
  1. La préparation au LABO-IMS.
  2. Les rencontres avec l'équipe d'analyse.
  3. Le déplacement à Lyon et la communication avec AGIBAT-MTI.
  4. Le codage des classes et des interfaces.
  5. La représentation graphique des différents objets.
  6. Les cerces.
  7. Les différents types d'arcs.
  8. Discrétisation des objets.
  9. Discrétisation de la surface.
  10. L'interface graphique.
    10.1. Le menu.
    10.2. La barre d'outil.
    10.3. La barre de statut.
    10.4. La zone d'affichage graphique.
    10.5. L'onglet.
  11. Conclusion.

3ème partie :
Bilan de travail.
  - Bilan de l'expérience professionnelle liée à la situation du stage.
  - Bilan de la formation initiale.
Bibliographie.
Journal de stage.
Annexes :
  - Graphique des classes.
  - Exemple d'utilisation.







REMERCIEMENTS




Enseignant IUT :
Enseignant Responsable : Bernard FAURE
Enseignant Lecteur : A. VERCASSON, Didier MATHIEU

Tuteur de stage : Philippe VERON

Entreprise AGIBAT MTI :
P.D.G. d'AGIBAT MTI Ingénierie : François MARRE
Ingénieur d'AGIBAT MTI Ingénierie : Jean-Marc MARION, G.VAUREY

Étudiants de l'ENSAM chargés du cahier des charges :
C. BONNET, O. GUERIN, T. LASSAIGNE, F. MARTIN, M. Le MENESTREL, X. SARRAT


[Sommaire]






FICHE TECHNIQUE




Étudiants : Christophe DECIS, Léo NEGRI
Année : 2000
Raison Sociale de l'entreprise : AGIBAT-MTI Ingénierie.
Tuteur de stage : Philippe VERON
Enseignant responsable : Bernard FAURE
Sujet du stage :
Création d'un logiciel permettant à un bureau d'étude de modéliser en 3D une structure en toiles tendues, puis de calculer cette structure sous des chargements de type pluie, neige, vent.
Plate-forme informatique ou technique :
Logiciel développé sous Linux Mandrake 7.0.

Outils logiciels :
  • KDevelop 1.2 : environnement de développement pour les programmeurs C/C++.
  • OpenGL : librairie de développement graphique 2D et 3D.
  • FOX : librairie de développement d'interface graphique.


[Sommaire]






INTRODUCTION




   L'architecture moderne cherche de nouvelles formes et des matériaux plus légers pour la construction de grands édifices. Les stades, bien sûr, mais aussi des gares, des péages d'autoroute. Le stade de France est l'un des derniers exemples de ce que peut donner cette architecture et l'usage de matériaux de haute technologie.

   Les textiles tendus sont utilisés depuis l'antiquité pour la couverture d'abris provisoires car ils sont faciles à démonter, légers et peu volumineux pour le transport. Mais on évitait ce genre de matériau dans des constructions permanentes car ils étaient peu solides et vieillissaient mal.

   Les membranes composites actuelles ont résolu ces problèmes. Les fibres polyesters très résistantes sont recouvertes sur les deux faces d'un enduit polymère assurant l'étanchéité et la protection de la trame.

   Les textiles utilisés par AGIBAT ont en plus une couche extérieure en fluopolymère (PVDF) qui diminue l'encrassement et maintient la brillance et les couleurs d'origine. Pour finir, la stabilité de l'allongement en chaîne et en trame n'oblige pas une re-tension et diminue les plis et bosses disgracieuses. La translucidité de ces toiles permet d'offrir un éclairage naturel intérieur et la mise en valeur des surfaces de toitures.

   Les supports de toile (mats, cerces, câbles, ...) ont eux aussi évolué et leurs propriétés mécaniques sont connues et prévisibles. Pourtant, la taille et la complexité de la structure rendent leur conception longue et délicate d'autant que pour des questions de sécurité, il est nécessaire de simuler l'influence des conditions atmosphériques (vent, poids de la neige).

   Des programmes permettant de réaliser ces calculs existent, mais ils ne sont pas spécifiques aux problèmes de structures textiles tendus. Ils sont donc lourds et pas très adaptés. AGIBAT a donc créé un logiciel qui accélérait sa chaîne de conception pour couvrir ses propres besoins. Mais cette solution a vieilli et le système, très peu portable, n'a pas franchi l'an 2000.

   Actuellement, le personnel d'AGIBAT se sert de plusieurs logiciels et doit écrire, dans des fichiers textes, les commandes de ces logiciels, ce qui provoque une perte de temps. Notre mission est de créer un logiciel de C.A.O, un modeleur de toiles qui leur permettra de visualiser la toile résultat à tout moment, de dessiner à la souris et en trois dimensions les appuis et tous les objets servant à soutenir la toile. Le programme se chargera de créer les fichiers d'entrée des logiciels de recherche de formes qui calculent la position 3D de la toile.

   Dès le début, il n'a jamais été question de remplacer ces logiciels car ceux-ci sont testés par un organisme indépendant et répondent à une norme obligatoire dans le bâtiment. Le logiciel sera donc une interface visuelle évitant une préparation rébarbative des données qui rendra l'utilisation des autres programmes transparente.


[Sommaire]






1ère partie






PRESENTATION
DE
L'ENTREPRISE
ET DE
L'ENVIRONNEMENT PROFESSIONNEL
DU
STAGE







[Sommaire]






INTRODUCTION




   Nous avons effectué notre stage au sein du laboratoire IMS à l'ENSAM, sous la responsabilité de Philippe VERON. Deux PC nous ont été attribués dans la salle informatique qui en compte six. Nous travaillions, en fait, pour une entreprise se trouvant dans la région lyonnaise: AGIBAT MTI Ingénierie. Leurs domaines d'activités sont essentiellement liés au bâtiment (calcul de structures, de béton, ...). Cette entreprise comprend 20 personnes environ dont 6 ingénieurs, le reste du personnel étant constitué de techniciens, projeteurs. La conception d'ouvrages en toiles tendues n'est pas l'activité principale mais reste un secteur important. L'activité de l'entreprise se limite uniquement à la conception et AGIBAT MTI ne souhaite pas étendre son travail à d'autres phases (découpe ou pose des toiles par exemple).


[Sommaire]






2ème partie






NATURE
DE LA TÂCHE
TRAVAIL REALISE







[Sommaire]






INTRODUCTION




   Le fait que nous soyons une équipe et que nous ayons à travailler avec les étudiants de l'ENSAM nous a poussé à nous organiser de manière plus structurée. Chacun a eu la responsabilité d'une partie et s'est spécialisé dans un type de tâche:

  • Christophe : la gestion du serveur Linux, la conception de l'interface, l'interaction entre l'interface et les objets, la mise à jour des librairies et des utilitaires, le calcul des surfaces pour les toiles.
  • Léo : La visualisation 3D, les classes d'objets et les calculs des arcs.

   Lorsque nous avons dû programmer en même temps, nous avions chacun une version du logiciel et nous avions écrit une liste des classes modifiées. Si bien que chaque fois que nous modifions une nouvelle classe, nous regardions si cette classe avait été modifiée par l'autre. Et, si oui, nous copions cette classe avant de la modifier.

   Le fait de sauvegarder régulièrement le répertoire de travail nous a permis de pouvoir recommencer sur des bases saines chaque fois que nos changements avaient affecté des parties qui marchaient auparavant.

   Pour mesurer le temps qu'a duré chacune des phases présentées ci-dessous, vous pouvez vous rapportez au journal de stage.


[Sommaire]






PRESENTATION DU SUJET PROBLEMATIQUE




   Les lieux publics et les lieux de rassemblement font de plus en plus appel à des structures comprenant des toiles tendues. Par exemple, le Millenium Center de Londres, l'aéroport de Denver, les stades d'Atlanta, de Rome ou de Lyon, la gare TGV de Massy, le zénith de Montpellier intègrent une partie en toile. Cet engouement concerne aussi des ouvrages plus courants, tels que des auvents, des piscines. On se trouve par conséquent devant un nombre croissant de calculs de validation de ces structures très particulières.

   En France, un des bureaux d'ingénierie les plus performants dans ce domaine est AGIBAT MTI, un cabinet de calculs basé à Lyon. C'est pour cette entreprise que nous avons réalisé ce stage. Ils ont déjà calculé divers bâtiments intégrant des membranes, et ont une grande expérience dans ce domaine. Ils disposaient d'un logiciel de calcul nommé SYSTUS, qui fonctionnait sur une station de travail ne franchissant pas l'an 2000. Ils ont donc embauché un étudiant en «projet de Recherche Diplômant», pour qu'il adapte ce logiciel aux normes imposées par les PC. Ce transfert ne fut cependant pas une réussite totale, dans la mesure où AGIBAT s'est retrouvée avec des modules de calcul indépendants, et qui nécessitent actuellement de longues et fastidieuses opérations manuelles pour passer d'une étape de calcul à l'autre.

   C'est pourquoi ils nous ont demandé de réaliser un logiciel de calcul de toiles tendues, l'objectif étant de repartir de zéro (où presque) pour avoir des bases de travail saines. Ils nous ont pour cela fourni de nombreux documents pour nous permettre de comprendre la démarche du calcul de validation, depuis le dessin de l'architecte jusqu'aux plans des morceaux de toile à découper (AGIBAT ne s'occupe pas du découpage des laies cette opération est sous-traitée).

   Nous avions tout de même un impératif: le module de logiciel qui effectue le calcul proprement dit, qui se nomme MEFTX, devait être conservé dans son intégralité, sans aucun changement. En effet, il a été validé par le bureau de vérification VERITAS, ce qui a nécessité une démarche longue et coûteuse. De plus ce module fonctionne très bien et nous n'avons aucune raison de le modifier. Il devra par conséquent s'intégrer au logiciel global.

   Nous avons travaillé du 25 mars jusqu'à la fin de notre projet en collaboration avec des élèves ingénieurs de l'ENSAM ayant pour mission de créer le cahier des charges du logiciel. Pour cela, nous avons travaillé en étroite collaboration pendant cette période en essayant d'avoir un maximum d'interactivité entre nos travaux mutuels.


[Sommaire]






LE MATERIEL
ET
LES OUTILS LOGICIELS




   Durant notre stage, nous avons travaillé sur des ordinateurs PC. Pour programmer, nous avons utilisé plusieurs outils logiciels:

  - Linux Mandrake 7.0 :

Qu'est ce que Linux?

   Linux est un système d'exploitation gratuit, puissant et multitâche. C'est une version spéciale du système UNIX, totalement gratuite. La majorité de ses applications sont gratuites. De plus, le code source en C/C++ du système est disponible, ce qui permet à tous les utilisateurs qui le souhaitent de l'améliorer et de corriger les erreurs. Bien que le système Linux soit encore très peu utilisé par le grand public, il est très utilisé dans les domaines professionnels, tels que l'hébergement de serveurs WEB.

Qu'est ce que Linux Mandrake?

Mandrake   La Mandrake est une distribution récente de Linux, à l'origine basée sur la Redhat. En effet, la Mandrake 5.x était une amélioration de la Redhat 5.x : la principale modification était l'ajout de l'interface KDE, que Redhat refusait de distribuer pour des problèmes de licences résolus aujourd'hui. Mais depuis la version 6, Mandrake a pris son indépendance, et n'est plus basée sur la Redhat. Cependant, tout est fait pour assurer la compatibilité : un package pour la Redhat fonctionnera sur la Mandrake. La Mandrake est une réelle amélioration de la Redhat avec des outils d'installation et de configuration très agréables à utiliser.


  - OpenGL :

OpenGL   OpenGL est ce que l'on appelle un API graphique 3D (Application Programmer Interface). C'est donc la spécification des fonctions et des paramètres d'une bibliothèque graphique permettant d'effectuer le rendu d'objets graphiques 2D et 3D simples (lignes, polygones, surfaces paramétriques,...). Comme cette spécification a été soutenue par un grand nombre de fournisseurs de logiciels et de matériels informatiques, elle s'impose comme standard "de fait" pour le développement d'applications graphiques. Cette interface comporte environ 120 fonctions. OpenGL a été spécifié indépendamment de tout système d'exploitation ou de tout système de fenêtrage, ce qui implique qu'il ne comporte aucune fonction de gestion d'écran ou de dispositif de dialogue tel que la souris ou le clavier. Ces tâches doivent être gérées par l'intermédiaire des bibliothèques des environnements d'accueil tels que XWindow ou Windows. Il existe des manuels spécifiques pour l'utilisation de OpenGL dans les environnements XWindow ou Windows. Ce standard a été appliqué par divers fournisseurs de bibliothèques graphiques, qui n'ont pas tous nécessairement choisi les mêmes solutions de mise en œuvre. Ces différences peuvent être perçues en compilant et en exécutant un même programme, dans deux environnements différents.


  - FOX :

FOX   FOX est une boite à outils pour développer des interfaces graphiques. Il offre une large collection de contrôles, et fournit des outils de pointeur tel que le drag and drop, la sélection. FOX permet aussi d'afficher des images et des icônes de différents formats (JPEG, GIF, ...). Nous avons choisi d'utiliser cette librairie car elle dispose d'une viewer 3D en OpenGL.






  - KDevelop :

KDevelop   Le but du projet KDevelop est de fournir un environnement de développement facile à utiliser pour programmer en C/C++ sous Linux. KDevelop propose des fonctionnalités, et une interface très proche de celle de Visual C++ sous Windows, et utilise la technologie orientée objet.




[Sommaire]






TRAVAIL REALISE




1. La préparation au LABO-IMS.

   A notre arrivée à l'ENSAM, M. VERON n'avait qu'un seul PC disponible au LABO-IMS car d'autres projets se déroulaient conjointement au nôtre. Il a donc été décidé d'acheter un PC supplémentaire que nous avons installé et configuré. De plus, le système d'exploitation Linux n'était pas installé. Une de nos premières tâches a donc été de préparer les deux PC : l'un servant de serveur l'autre travaillant en déportation d'affichage grâce au logiciel XWin.

   Cette configuration proche de celle employée à l'I.U.T. a permis à Léo de changer rapidement de poste de travail quand d'autres groupes ont eu besoin de sa machine pour effectuer des calculs très longs.

   Pendant les deux premiers jours, nous avons téléchargé et installé les librairies Mesa pour l'OpenGL et FOX (toolkit ayant un viewer OpenGL), ainsi que leurs documentations et des exemples et tutorial.


[Sommaire]




2. Les rencontre avec l'équipe d'analyse.

   Sur le projet S.T.T. (Structure en toiles tendues) en plus de nous, M. VERON dirigeait une équipe d'analyse englobant 6 étudiants de l'ENSAM à l'occasion d'un projet et à raison de 4 heures par semaines.

   Leur but était de définir les objectifs de l'application et de dresser un cahier des charges. Ils avaient préalablement rencontré les responsables d'AGIBAT MTI le 22 mars et avaient commencé à en tirer un cahier des charges. Nous les avons rencontrés rapidement pour définir ensemble les spécifications du logiciel. Par la suite, nous nous sommes rencontrés régulièrement pour nous informer des résultats de leur analyse et pour que nous leur présentions l'avancée de la programmation. Nous avons aussi assisté à leurs revues de stage et avons participé aux discussions concernent l'analyse du besoin.


[Sommaire]




3. Le Déplacement à Lyon et la communication avec AGIBAT-MTI.

   Le jeudi 11 mai nous avons (P.VERON, C.DECIS et L.NEGRI) effectué un déplacement à Lyon. Cette entrevue qui avait été demandée par M. MARION, avait pour but d'organiser le travail de cet été, de faire une démonstration du logiciel et d'éclaircir de nombreux points sur le logiciel.


[Sommaire]




4. Le codage des classes et interface.

   Dès la première semaine, nous nous sommes partagés les tâches. Christophe s'est occupé principalement de l'interface utilisateur en utilisant la librairie FOX et l'interaction entre cette interface et les objets 3D (création, suppression, modification, sélection...), et Léo a développé les classes représentant les objets (cerce, câble, mat, ralingues, toile ...) en fait, dans un premier temps, nous avons travaillé indépendamment l'un de l'autre. Les classes ont été testées sans l'interface graphique.


[Sommaire]




5. La représentation graphique des différents objets.

   Pour définir les différents objets, il est utile de pouvoir les visualiser. L'interface, possède donc une fenêtre de visualisations 3D. Pour pouvoir afficher des figures géométriques simples, nous avons utilisé la librairie OpenGL avec ses extensions: GLU, GLUT et FOX. Lors des premiers tests, Léo a réalisé des représentations volumiques tel que ce mat qui est sélectionné :

Capture d'écran

   Mais nous nous sommes vite aperçus que ce type de représentation, bien qu'elle soit esthétique, avait plusieurs inconvénients :

  • Elle est plus longue à calculer. Elle ralentit donc l'affichage.
  • Le volume peut cacher d'autres objets et empêcher qu'on les sélectionne.
  • Comme les entités sont limitées par des appuis symbolisés par des points, il n'est pas logique que la limite d'un cylindre soit un point.
  • Pour créer un mat qui ait des extrémités qui ne soient pas à la verticale l'une de l'autre, il aurait fallu calculer les angles de rotation dans l'espace puis programmer cette rotation.

   Alors nous avons décidé d'utiliser une représentation plus classique sous forme de lignes de couleurs et d'épaisseurs différentes sans aucun volume.


[Sommaire]




6. Les cerces.

   La cerce est un élément indispensable dans la construction de chapeau chinois.

Capture d'écran

   C'est en fait un tore en tube métallique. La toile est lassée dessus et elle est maintenue par des haubans fixés à un mat.

Capture d'écran

   La première représentation de la cerce était, au début, volumique (vue en coupe).

Capture d'écran

   Il y avait aussi une boite de contour qui apparaissait quand on la sélectionnait.

Capture d'écran

   Mais pour les mêmes raisons que le mat nous avons simplifié la visualisation.

   Le mode de définition a, lui aussi, beaucoup évolué. Au début, les cerces étaient forcément horizontales. Puis, grâce à un vecteur directeur, on pouvait les incliner. Finalement, après le déplacement chez AGIBAT-MTI, nous nous sommes rendus compte que nous pouvions remplacer les cerces par plusieurs arcs mis bouts à bouts.

Capture d'écran

   Le but est de créer des surfaces seulement entre des ralingues ou des arcs. La discrétisation des arcs et ralingues est régulière mais chacune des faces peut avoir une finesse de maillage différente, ce qui n'est pas possible avec une cerce non décomposée en arcs.


[Sommaire]




7. Les différents types d'arcs.

   Les arcs simples sont construits à partir de trois points de l'espace:

  • Le début de l'arc.
  • La fin de l'arc.
  • Un 3e point distinct des deux autres appartenant à l'arc.

   Léo a créé un algorithme permettant de calculer tous les points de l'arc (le nombre de points est une variable qui a une valeur par défaut avant que l'on donne le paramètre de discrétisation pour la création des surfaces).

Capture d'écran

   Dans ce calcul on peut distinguer plusieurs étapes :

  • Calcul du centre du cercle.
  • Calcul des deux vecteurs du plan de l'arc.
  • Calculs des coordonnées de points dans ce plan.
  • Multiplications des coordonnées dans le plan par les deux vecteurs pour retrouver les coordonnées dans l'espace.
  • Sauvegarde de ces coordonnées dans un tableau pour en prendre compte lors de la création des surfaces.

   Ces algorithmes utilisent les produits scalaires et vectoriel mais ne font pas appel aux matrices pour calculer des rotations et translations.

   Les arcs multiples ne peuvent pour le moment qu'être créés dans un plan 2D. Ces arcs sont constitués de plusieurs arcs de rayons différents emboîtés les uns dans les autres. Ce qui implique que les deux arcs doivent avoir la même tangente à leur point de raccordement. L'algorithme que nous avons mis au point, permet de créer cette série d'arcs en respectant les nombreuses contraintes pour que la suite d'arcs puisse arriver au point final défini par l'utilisateur. Puis lorsque l'utilisateur le demande, le programme calcule automatiquement le dernier arc, de sorte qu'il arrive directement au point de fin.

   Du fait de sa complexité et comme il peut être remplacé par plusieurs arcs simples, l'arc multiple n'est pas disponible dans la première version du logiciel. Mais du fait de l'approche objet de notre programmation, il pourra facilement être rajouté pour pouvoir être incliné comme l'arc simple et intégré comme un nouvel objet dans l'interface.

Capture d'écran


[Sommaire]




8. Discrétisation des objets.

   La discrétisation des différents objets et plus particulièrement des toiles, est une étape cruciale car la position des nœuds de maillage qu'elle crée, affecte directement la durée et la précision des calculs du module de recherche de forme. Nous avons donc insisté sur cet aspect du logiciel en créant une visualisation qui prend en compte la finesse du maillage, et affiche les nœuds, mais aussi en créant des algorithmes de lissage pour les surfaces complexes (contenant des arcs). La possibilité de déplacer un nœud indépendamment des autres permet de changer manuellement le maillage dans des zones spéciales ou ayant des propriétés particulières. Ceci implique que l'utilisateur a toujours le contrôle du maillage. Donc grâce à ces fonctions de déplacement tous les cas de figures sont théoriquement possibles.


[Sommaire]




9. Discrétisation de la surface.

   Pour créer une surface, l'utilisateur doit sélectionner les objets composant la surface. Les points doivent être sélectionnés dans un certain ordre pour indiquer dans quel sens la surface doit être tracée.

Capture d'écran

   De plus, les deux premiers points correspondent à la trame de la toile et le 2ème et 3ème points correspondent à la chaîne. L'utilisateur doit aussi pouvoir voir la normale. Cette normale est très importante lors des calculs des contraintes atmosphériques. Elle correspond au coté de la surface où les efforts seront exercés. Dans l'image qui suit, nous pouvons voir dans la zone d'affichage, la trame, la chaîne et la normale tracé. Plus tard, elles devront être tracées de couleurs différentes, et la chaîne ne sera pas affichée.

Capture d'écran

   Avant de discrétiser la surface, le logiciel discrétise d'abord les objets composant la surface. Ensuite, il calcul les points se trouvant sur la surface. Ces points doivent être le plus proche de la réalité pour que, lors de la recherche de forme, le logiciel meftx puisse trouver un résultat correct. Chaque point de la surface peut être modifier, c'est à dire l'utilisateur peut modifier ces coordonnées, sa fixation et surtout son matériau.


[Sommaire]




10. L'interface graphique.

   Pour la conception de l'interface graphique, nous avons essayé qu'elle soit la plus ergonomique et la plus facile à utiliser pour les ingénieurs. Pour cela, nous l'avons décomposée en plusieurs parties(le menu, la barre d'outil, la barre de statut, la zone d'affichage graphique et l'onglet) :


[Sommaire]




10.1. Le menu.

   Le menu rassemble toutes les commandes que l'utilisateur peut se servir.

Capture d'écran

   Le menu Fichier rassemble toutes les commandes pour ouvrir, sauvegarder, et quitter l'application.

   Le menu Édition regroupe les commandes d'édition des objets. Pour le moment, seule la suppression a été implantée. Plus tard, la copie sera rajoutée.

   Le menu View rassemble les commandes pour modifier la zone d'affichage graphique : vue parallèle, vue perspective, devant, derrière, gauche, droit, haut bas et rafraîchir.

   Le menu Tâches contient les différentes étapes à suivre en partant de dessin en 3D de la structure, en passant par le calcul des contraintes atmosphériques, pour arriver au découpage des toiles. Chaque étape doit être contrôlée avant de passer à la suivante.


[Sommaire]




10.2. La barre d'outil.

Capture d'écran

   La barre d'outil réunit un ensemble de raccourci des commandes les plus utilisées évitant à l'utilisateur d'aller chercher ces commandes dans le menu.


[Sommaire]




10.3. La barre de statut.

   Pour simplifier l'utilisation du logiciel, nous avons mis en place une barre de statut. Cette barre permet d'afficher de l'aide lorsque la souris passe sur une zone. Par exemple, lorsque la souris passe sur un bouton, une description complète du bouton est faite.

Capture d'écran


   Une aide plus simplifier a été aussi mis en place sous forme d'info-bulles.


[Sommaire]




10.4. La zone d'affichage graphique.

   Dans cette zone, nous affichons la structure en toiles tendues en 3D. A l'aide de la souris, l'utilisateur peut modifier l'angle de vue, faire des zooms et des translations :

Capture d'écran


[Sommaire]




10.5. L'onglet.

   L'onglet permet la création, la modification et de voir la liste des objets. Il est composé de deux onglets :

Capture d'écran
  • Onglet paramètre :

       Cet onglet permet de rentrer ou de voir les paramètres d'un objet pour le modifier ou le créer. Pour obtenir cet onglet, il faut soit faire un double clique sur un objet dans la zone d'affichage, soit créer un nouvel objet. Ici, on visualise les paramètres d'une surface que l'on a sélectionnée. Le bouton modifier est remplacé par un bouton créer lorsqu'il s'agit d'une création d'un objet.

    Capture d'écran
  • Onglet Objets :

    Cet onglet est composé de deux parties :

    - La première est une série de 8 boutons regroupant tous les objets que l'on peut créer. Lorsque l'utilisateur clique sur l'un des boutons, l'onglet paramètre s'ouvre avec les paramètres de l'objet à créer.

    - La seconde est la liste des objets contenus dans la zone d'affichage. Chaque objet est classé dans la catégorie qui lui appartient. De plus, chaque objet contient les objets dont il dépend. Pour simplifier la sélection des objets qui peuvent être caché par d'autre, un clique permet de le sélectionner et un double clique permet d'ouvrir l'onglet paramètre de l'objet.









[Sommaire]






11. Conclusion.

   A la fin des dix semaines de travail, une bonne partie des objectifs initiaux sont atteints. Nous avons programmé un modeleur qui permet la gestion (création, modification et destruction) des composants de base des structures textiles tendues. Le fait de pouvoir visualiser en trois dimensions et en temps réel la création et la modification sont un plus considérable et un gain de temps pour l'utilisateur. L'interface, intuitive et conviviale, rend les applications plus agréables et simples à utiliser. En fait, elle a été pensée pour permettre aux techniciens qui l'utilisent de crée des structures complexes tout en gardant une vue d'ensemble. Cela permettra de découvrir plus rapidement les incohérences et de proposer des modèles proche de la réalité au module de recherche de formes. Les nœuds sont bien placés. Il reste à améliorer la structure de données des nœuds et objets pour faciliter l'écriture du fichier d'entrée MEFTX. Ceci marquera la fin de la première partie du développement et permettra d'obtenir la forme définitive en 3D.


[Sommaire]






3ème partie






BILAN
DE
TRAVAIL







[Sommaire]






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 œuvre 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.


[Sommaire]






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.


[Sommaire]






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.


[Sommaire]






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.


[Sommaire]






BIBLIOGRAPHIE




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


Logiciels et librairies utilisés :
KDevelop : http://www.kdevelop.org
Linux Mandrake : http://www.linux-mandrake.com/
FOX : http://cyberia.cfdrc.com/FOX/fox.html


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



[Sommaire]






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 nœuds 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é.


9e Semaine : 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.


10e et dernière Semaine.

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


[Sommaire]






Université de la méditerranée - Aix Marseille II I.U.T. Informatique - Aix-en-Provence UNIVERSITÉ DE LA MÉDITERRANÉE
AIX-MARSEILLE II
I.U.T.d'Aix-en-Provence
Département informatique















ANNEXES


Modeleur 3D de structures
en toiles tendues


Calcul de formes de toiles tendues
















AGIBAT MTI Ingénierie Laboratoire IMS de l'ENSAM









Christophe DECIS
Léo NEGRI
Bernard FAURE
Alexandre VERCASON
Didier MATHIEU

Année 2000







[Sommaire]






GRAPHIQUE DES CLASSES




Capture d'écran
Capture d'écran


[Sommaire]






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 :

    Capture d'écran

    Le point apparaît

    Capture d'écran

    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 :

    Capture d'écran

    Le câble apparaît.

    Capture d'écran

    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 :

    Capture d'écran

    L'arc apparaît

    Capture d'écran


  4. Les surfaces

    Sélectionnez l'objet surface.

    Capture d'écran

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

    Capture d'écran

    Résultat: Une magnifique surface !!!

    Capture d'écran