Conception et visualisation d'objets
Cours de Christine Kéribin pour le DESS d'Ingéniérie
Mathématique d'Orsay
Notes de cours rédigées par Pierre Pansu
On a choisi de présenter les logiciels de CAO en partant de la surface
(attentes de l'utilisateur) pour plonger vers le coeur (algorithmes, outils
mathématiques).
La XAO (X doit être remplacé par conception, modification,
exploration, fabrication...) est vieille d'une trentaine d'années tout
au plus. Le terme CAO désignait initialement les outils logiciels qui
permettent à l'ordinateur de remplacer la planche à dessin.
Le champ d'application de la CAO s'est élargi (d'où le terme
XAO). Les logiciels d'aujourd'hui peuvent, en incorporant des règles-métiers,
capturer efficacement l'intention de l'utilisateur, et allègent ainsi
sa tâche bien au-delà de ce que pouvait faire la planche à
dessin.
Un logiciel de CAO se compose
- d'un modeleur géométrique ;
- d'un outil de visualisation ;
- d'un certain nombre d'applications ;
- d'un contrôleur qui gère les interactions entre les
3 outils précédents.
Le modeleur géométrique, c'est la planche à dessin.
Son vocabulaire est celui de la géométrie (points, droites,
plans, courbes B-splines, surfaces NURBS...) et de la topologie (sommets,
arêtes, faces, intérieur/extérieur, union, intersection...).
A ce langage de bas niveau, on superpose au chapitre 3 un langage de haut
niveau, celui des entités technologiques (features). Chaque
feature, un congé ou un chanfrein par exemple, résume une
longue suite de commandes et d'opérations à effectuer par
le modeleur et la visualisation, et contient des règles en usage
dans un métier. Le meilleur moyen de saisir la notion de feature
est de pratiquer l'atelier de conception de pièces et d'assemblage
mécanique d'un logiciel comme CATIA.
Rentrons dans le détail du fonctionnement d'un modeleur géométrique.
Abstraitement, un objet 3D est défini par son bord, formé
d'une collection de faces orientées. La partie mathématique
du chapitre 4 traite le problème de savoir quand une telle donnée
(appelée BRep pour Boundary Representation) est valide, i.e.
borde effectivement un solide. La formule d'Euler fournit seulement une
condition nécessaire, et on donne une condition nécessaire
et suffisante. Sur le plan algorithmique, on détaille la structure
de données qui représente un objet virtuel dans ACIS. En plus
de la description BRep de l'objet, le modeleur de CATIA maintient au cours
de la réalisation de l'objet un arbre des spécifications qui
retrace la suite des features employés : il s'agit d'un modèle
mixte BRep/CSG. L'un des avantages est la possibilité de revenir en
arrière (undo), au prix d'une gestion délicate des mises
à jour.
L'opération de base dont est capable un modeleur géométrique
est le calcul de l'intersection de deux solides. Au chapitre 5, on décrit
l'algorithme dans un cas simple : l'intersection d'un polyèdre avec
un plan.
Encore plus profond, on trouve la méthode pour calculer une discrétisation
approchée de la courbe d'intersection de deux surfaces. C'est un
cas particulier de la méthode de cheminement. Au chapitre 6, on décrit
l'algorithme ainsi que des outils pour ajuster les paramètres : initialisation,
pas, critère de fin.
Une fois trouvée une suite de points proches de la courbe d'intersection,
on peut construire une courbe B-spline qui passe par ces points par interpolation.
Cet algorithme, décrit au chapitre 7, se ramène à l'inversion
d'une matrice carrée. Il est utile de comprendre la différence
entre interpolation et approximation. Une courbe construite par interpolation
passe par les points prescrits. Un approximation ne passe pas par les points
prescrits, mais minimise seulement l'écart quadratique à ces
points. Elle peut avoir moins de points de contrôle qu'il n'y a de
points prescrits.
La deuxième fonction essentielle d'un logiciel de CAO est la production
de vues de l'objet. Le chapitre 8 contient une brève introduction
à la synthèse d'images : perspective, modélisation de
la couleur, modèles d'éclairement, lancer de rayon, antialiassage.
Notes
de cours détaillées (pdf, 800ko)