* TP fortran LTM n°4

TP informatique LTM n°4 2004-2005


Contrairement aux TP précédents (j'attends encore des rapports du TP3, pour les précédents c'est trop tard), cette fois-ci vous me rendez votre rapport écrit (avec vos commentaires) avant de quitter la salle (sur papier ou inclus avec les programmes qui seront transmis sur ftp-ipst).

Nous voulons analyser des pièces mécaniques (volumiques). Dans un premier temps, il faut décider d'un "modèle", c'est à dire décider comment on représentera la géométrie de la pièce (ou de l'ensemble de pièces) dans notre programme. Nous choisirons de considérer une pièce comme un ensemble de volumes élémentaires. Nous nous limiterons aux pièces composées d'un seul matériau, homogène. On pourrait décomposer le volume d'une pièce en un nombre restreint de volumes élémentaires : parallélépipèdes rectangles, sphères, cônes, troncs de cônes, cylindres (limités par des plans perpendiculaires à l'axe), etc. Toute position et orientation de ces volumes élémentaires devrait être envisageable. On ne traitera que les solides (approximés comme indéformables, car la déformation est négligeable devant les dimensions).

Première partie

Dans cette partie, nous recherchons le centre de gravité d'une pièce (une seule). Supposons, pour cette partie, avoir choisi un modèle extrêmement simple : on se limite à des parallélépipèdes rectangles, toujours orientés parallèlement aux axes du repère (exemple : un assemblage de briques LEGO ® ). Chaque brique est définie par les coordonnées d'un coin (celui correspondant aux x, y et z minimaux) et ses trois longueurs (en x, y et z). On suppose se limiter à 200 briques au maximum.

Nous allons donc utiliser 6 tableaux de réels nommés X, Y, Z, LX, LY, LZ. Le nombre de briques s'appellera NBB. Ils seront communs à un certain nombre de sous-programmes.

Question 1) Créez un sous-programme de saisie des données, et un d'affichage, ainsi qu'un programme de test (allez vite, et ne prévoyez aucune vérification, si vous voulez terminer le TP).

Question 2) Ecrivez une fonction appelée volume qui reçoit en argument d'entrée un numéro de brique de la pièce et retourne un réel valant le volume de cette brique.

Ecrivez également une fonction appelée volume_total, qui retourne le volume total de la pièce (ce qui pourra servir pour évaluer la masse de l'ensemble).

Question 3) Le centre de gravité de chaque brique est supposé se trouver au centre de la brique (donc comme si elle était pleine et composée d'un matériau homogène). Le centre de gravité de l'ensemble est situé en (Xg,Yg,Zg). On calcule Xg en faisant la moyenne des coordonnées X de chaque centre de gravité de chaque brique, pondéré par le volume de la brique (idem pour Yg et Zg). Ecrivez le sous-programme recherche_CdG qui calcule puis affiche à l'écran les coordonnées du centre de gravité de l'ensemble. Les trois coordonnées Xg,Yg,Zg seront transmises en argument pour que le programme appelant puisse les récupérer.

Seconde Partie

Dans cette partie, nous allons mettre en place quelques outils pour l'analyse cinématique d'un ensemble de pièces. Le but est donc de déplacer la pièce.

Question 4) Ecrivez un sous-programme permettant de déplacer (uniquement en translation) toute la pièce. Attention, le sous-programme doit pouvoir être appelé automatiquement, par exemple pour calculer un mouvement décomposé en plusieurs pas. La valeur du déplacement devra donc être fournie en argument.

Question 5) Vu le modèle choisi, nous ne pouvons effectuer que des rotations de plus ou moins 90° autour des trois axes. Ecrivez un sous programme permettant d'effectuer ces rotations (à vous de choisir les arguments à lui passer pour définir le mouvement désiré).

Question 6) En vue d'étudier la collision de deux pièces (qu'on ne traitera pas ici), écrivez une fonction disant si un point (donné par ses trois coordonnées) est à l'intérieur de la matière ou non. Vous pouvez décomposer le problème en plusieurs sous-programmes.


La correction est aussi disponible : source et fichier inclus ou pdf.


sujet TP1 sujet TP2 sujet TP3 sujet TP4 retour sommaire TP cours Fortran P. Trau