durée 2 heures. Documents (papier) autorisés. Le texte qui précède chaque question devrait être surtout utile à cette question, pas à la précédente.
On désire créer un système d'aide à la conception mécanique.
Dans un premier temps, nous allons nous créer quelques outils, et pour commencer, nous allons gérer des torseurs. En C Ansi , on définirait une vecteur de la manière suivante :
typedef struct vecteur { float x; float y; float z }vecteur;
On pourrait ensuite définir un certain nombre de fonctions : somme de deux vecteurs, norme d'un vecteur, produit scalaire, produit vectoriel, multiplication par un réel, comparaison de deux vecteurs (dit s'ils sont égaux ou non) ...
Question 1 : Nous n'allons pas écrire complètement ces fonctions, vous allez uniquement me proposer une entête pour chacune de ces six fonctions (en C ANSI)
Mais en fait, vu l'importance de ces outils dans un grand nombre de parties de notre système d'analyse, nous nous allons plutôt créer un objet pour représenter un vecteur, avec ses méthodes.
Question 2 :
Nous allons maintenant passer aux torseurs (une résultante, un moment et un point d'application; ou vitesse linéaire et de rotation autour d'un CIR; ... ).
Question 3 : donnez la déclaration de la classe torseur. Comme méthodes (ne les développez que si vous n'arrivez pas à répondre aux autres questions) , prévoyez le déplacement d'un torseur en un autre point d'application et la somme de deux torseurs (s'ils ne sont pas appliqués au même point, donner le résultat au point d'application du premier). Expliquez en quelques mots si la notion d'héritage peut être utile ici.
Pour analyser la cinématique d'un mécanisme, on suppose en général avoir un ensemble de pièces, chacune étant reliée à plusieurs autres par des "liaisons" (2*3 degrés de liberté, centré un point de l'espace). La pièce en elle-même (la matière entre les liaisons) est généralement supposée parfaitement rigide, mais dans certains cas il est nécessaire d'envisager les déformations des pièces, voire même (cas de certains robots) prévoir dans la cinématique les mouvements créés par des déformations dues aux effets dynamiques . On peut étudier un tel mécanisme par une méthode algorithmique purement calculatoire. Mais nous désirons aller un peu plus loin, et créer un système un peu plus intelligent qui puisse "comprendre" le mécanisme. Ne sachant pas trop comment aborder le problème, on se propose de tester, avec le langage Prolog, une analyse de "treillis" (dans le plan, les pièces sont toutes des barres, reliées en leur extrémité).
exemple : chaque barre porte un nom, les différents noeuds sont numérotés. |
Question 4 :
Dans une autre partie "cinématique" de notre système d'analyse, nous aimerions tracer des trajectoires. On appelle "développante de cercle" la trajectoire de l'extrémité d'un fil initialement enroulé autour d'un cylindre et qu'on déroule (il est toujours tangent au cylindre au point de contact) : |
Question 5 : En supposant que l'on sait allumer des pixels et tracer des segments, donnez (en français) un algorithme permettant de tracer une développante de cercle. On suppose utiliser un langage procédural structuré
![]() |
Patrick TRAU, ULP - IPST 1/6/99 |