Vous êtes sur la page 1sur 141

Département de génie mécanique

MEC129

Développement de produits
assisté par ordinateur

Notes de cours
(Partie CAO)

Préparé par :

Patrick Terriault
et
Jean-François Chatelain

Professeurs

RÉDIGÉ : juillet 2008


RÉVISÉ : Août 2011
Chapitre 1
Introduction à la conception assistée par ordinateur

1.1 Mise en situation

Avec la mondialisation des marchés, la survie des entreprises d’aujourd’hui passe


inévitablement par le développement de nouveaux produits de qualité, à moindres coûts et dont
le développement s’échelonne sur des intervalles de temps réduits. La Conception Assistée par
Ordinateur (CAO), un champ d’activités qui a émergé au cours des dernières décennies dans
tous les domaines de l’ingénierie avec la venue d’ordinateurs de plus en plus puissants, a
permis de rencontrer ces objectifs de compétitivité des entreprises. De nos jours, la CAO est
omniprésente et malgré cela, il est très difficile de la définir précisément. En effet, il existe
probablement autant de définitions toutes aussi valables les unes que les autres qu’il y a
d’utilisateurs de la CAO. Néanmoins, les deux paragraphes suivants proposent des définitions
de la CAO, la première étant plus générale tandis que la seconde se veut plus technique :

La CAO est une technique qui consiste à rassembler les qualités de l'homme et de
l'ordinateur afin que l'équipe ainsi formée travaille mieux que chacun séparément.

La CAO est une technique qui consiste à modéliser les systèmes physiques, ce
qui permet dans un premier temps l'analyse interactive et automatique de
différentes variantes d'un concept, et dans un second temps, l'expression de ce
concept dans une forme adéquate pour sa fabrication.

Les avantages de la CAO sont nombreux. Entre autres, la CAO permet de visualiser un concept
avant sa fabrication, de minimiser le temps de conception, de construire des modèles
numériques fidèles à la réalité, d’optimiser les performances d’un système, de minimiser les
essais expérimentaux coûteux, de faciliter les modifications apportées à un concept,
d’automatiser la mise en plans (DAO - Dessin Assisté par Ordinateur) et d’automatiser la
fabrication (FAO - Fabrication Assistée par Ordinateur). Tous ces avantages sont étroitement
reliés à la raison d’être fondamentale de la CAO, c’est-à-dire la réduction des coûts associés
aux activités de conception des produits.

À ses premiers balbutiements, la CAO était presque exclusivement employée par les grandes
entreprises œuvrant dans les domaines de haute technologie, notamment en aéronautique et
dans le secteur de l’automobile. De nos jours, autant les Petites et Moyennes Entreprises (PME)
que les grandes firmes ont recours à la CAO dans leurs activités de conception. En analysant
les offres d’emploi en ingénierie, des connaissances en CAO sont de plus en plus exigées non
seulement de la part des ingénieurs, mais également de la part des membres de la direction et
de l’administration.

Pour être en mesure d’employer la CAO dans le cadre de projets de développement de


produits, les trois éléments essentiels de l’architecture d’un système de CAO doivent être réunis.
Dans un premier temps, des ressources matérielles suffisamment performantes doivent être
disponibles. Parmi celles-ci, on retrouve un ordinateur muni d’un ou plusieurs microprocesseurs,
un écran, un clavier, une souris, une imprimante et d’autres périphériques divers. Tout cet
équipement est appelé « hardware » en anglais. Dans un second temps, des logiciels
également appelés « software » doivent être installés dans l’ordinateur afin de pouvoir exécuter

1.1
du travail relevant de la CAO. Il existe de nombreux logiciels disponibles sur le marché et
chacun d’eux offre certains avantages et inconvénients. Pro/Engineer, Catia, SolidWorks,
Unigraphics, SolidEdge, I-Deas, Cadds, Euclid, Cadkey et Mechanical Desktop comptent parmi
les nombreux logiciels de CAO actuellement employés dans l’industrie. Enfin, le dernier et
probablement le plus important élément constituant l’architecture d’un système de CAO
concerne les ressources humaines. Il est impossible d’effectuer du travail de qualité avec le
meilleur logiciel de CAO installé sur le meilleur ordinateur sans qu’un utilisateur compétent soit
aux commandes du système. En effet, pour exploiter au maximum la puissance des systèmes
de CAO, les utilisateurs doivent posséder de solides bases théoriques et avoir à leur actif de
nombreuses heures de pratique sur les logiciels commerciaux. En somme, des ressources
humaines compétentes et bien formées représentent un élément de l’architecture d’un système
de CAO qui est au moins tout aussi important que les deux autres, en l’occurrence le
« hardware » et le « software ».

1.2 Applications de la CAO

Modélisation de pièces
Les applications de la CAO sont maintenant nombreuses et celle qui est probablement la plus
commune concerne la modélisation de pièces. Par exemple, la figure 1.1 montre une poulie qui
a été modélisée avec un système de CAO commercial. Cette modélisation permet de visualiser
la pièce en trois dimensions. De plus, il devient possible de calculer et de quantifier certains
paramètres physiques associés à la géométrie de la pièce comme le volume, la masse, l’inertie,
la position du centre de gravité et l’encombrement. Cette technique permet donc de vérifier si
certaines propriétés physiques de la pièce modélisée répondent aux attentes du client. Dans le
cas contraire, des modifications pourront être apportées et cela avant même le début de la
fabrication d’un premier prototype, ce qui peut diminuer considérablement les coûts de
conception.

Figure 1.1 : Modélisation d’une poulie dans un système de CAO (tirée de R. Toogood [1])

Assemblage de composantes
L’assemblage de composantes est une autre importante application de la CAO. En assemblant
plusieurs composantes modélisées individuellement, un prototype virtuel est obtenu. Ce dernier
est une représentation sur ordinateur d’un produit. À l’étape du prototype virtuel, aucun
prototype physique n’a habituellement été fabriqué selon le processus général de
développement d’un nouveau produit. Cette approche constitue un puissant outil de promotion
et de marketing afin de « vendre » une idée à des partenaires, des collègues, des clients ou des
patrons, et cela à peu de frais. Les firmes d’architectes utilisent des outils similaires pour

1.2
montrer l’allure de leur création à leurs clients. La figure 1.2 montre un chariot en vue explosée
et en vues assemblées selon trois différentes configurations. Avec le prototype virtuel du chariot,
il est possible de détecter des erreurs de conception très tôt dans le processus de
développement comme de l’interférence de matière ou des trous désaxés entre deux pièces.
Tout comme précédemment, il est possible de calculer le volume, la masse, l’inertie, la position
du centre de gravité, l’encombrement, etc. de toutes les composantes assemblées les unes
avec les autres.

Figure 1.2 : Assemblage de différentes composantes afin de générer un prototype virtuel.

Analyses cinématiques
Des analyses cinématiques peuvent être exécutées à partir de l’assemblage de pièces qui sont
mobiles les unes par rapport aux autres. La partie de gauche de la figure 1.3 montre une vue
générale d’une suspension d’automobile, tandis que les parties centrale et de droite illustrent les
positions extrêmes des pièces de l’assemblage. Avec de telles analyses cinématiques, il devient
possible de vérifier les contacts entre deux pièces qui pourraient survenir lors du fonctionnement
en plus d’estimer les forces d’inertie engendrées lors du mouvement des composantes.

Figure 1.3 : Analyse cinématique d’une suspension (tirée de T. McLellan et F. Karam [2])

1.3
Mise en plans
Les logiciels de Dessin Assisté par Ordinateur (DAO) existent depuis de nombreuses années et
le plus connu d’entre eux, AutoCad, s’est profondément enraciné dans les mœurs industrielles.
Avec la venue des systèmes de CAO tridimensionnels et paramétriques, le DAO a pris une
nouvelle dimension. En effet, en modélisant les pièces dans un environnement tridimensionnel,
les dessins techniques incluant plusieurs vues peuvent être générés presque automatiquement.
La figure 1.4 montre un dessin technique d’une pièce qui a été préalablement modélisée dans
un espace tridimensionnel. En faisant appel à une base de données commune, les modules de
DAO et de CAO d’un même logiciel deviennent bidirectionnels, c’est-à-dire que si une
modification est apportée au modèle tridimensionnel, les changements sont automatiquement
mis à jour sur le dessin, et vice versa. La gestion des révisions est alors grandement facilitée.

Figure 1.4 : Exemple d’un dessin technique généré à partir du modèle tridimensionnel

Fabrication assistée par ordinateur


La Fabrication Assistée par Ordinateur (FAO) permet d’établir des stratégies d’usinage afin de
mettre en forme les pièces modélisées. La figure 1.5 montre les chemins d’outils qui ont été
calculés par le module de FAO d’un système de CAO afin de mettre en forme une pièce de
géométrie semi-cylindrique. La partie de gauche de la figure montre les trajectoires de l’outil de
coupe pour une fraiseuse à trois axes, tandis que la partie de droite présente des trajectoires
différentes pour une fraiseuse à cinq axes. Ces trajectoires d’outils seront ensuite converties à
l’aide d’une interface appelée « post-processeur » et envoyées à une machine-outil à
commande numérique.

Figure 1.5 : Détermination de trajectoires d’outils (tirée de C. McMahon et J. Browne [3])

1.4
Prototypage rapide
Le prototypage rapide regroupe une série de technologies qui permettent de fabriquer des
pièces tridimensionnelles à partir de l’information provenant d’un modèle géométrique. Après
avoir modélisé une pièce dans un système de CAO, la géométrie de la pièce est transmise à
une machine de prototypage rapide dont le fonctionnement est illustré dans la partie de gauche
de la figure 1.6. La machine est essentiellement constituée d’un bain de résine photosensible
qui se solidifie au contact de la lumière d’un laser. La machine interprète le modèle de la pièce
comme étant une série de couches superposées les unes sur les autres. Pour une certaine
couche donnée, la section de la pièce est dessinée par le laser à la surface du bain de résine
liquide grâce à un système de miroirs pivotants. Le laser solidifie donc la résine aux endroits où
on doit retrouver de la matière sur la pièce. Lorsqu’une section de la pièce est terminée,
l’élévateur de la machine descend afin d’entamer la solidification de la couche subséquente. En
fabriquant la pièce avec un grand nombre de couches, des pièces de géométrie très complexe
peuvent être obtenues. Par exemple, la partie de droite de la figure 1.6 montre une turbine
fabriquée avec un tel procédé.

Figure 1.6 : Fonctionnement d’une machine à prototypage rapide et complexité


des pièces qui peuvent être fabriquées (tirée de K. Lee [4])

On appelle cette technique « prototypage rapide » essentiellement pour les deux raisons
suivantes. Premièrement, le terme « rapide » est employé car des pièces très complexes
peuvent être fabriquées en quelques heures, ce qui s’avère rapide comparativement aux autres
procédés de fabrication plus traditionnels. Deuxièmement, on dit qu’il s’agit d’un « prototype »
car les pièces fabriquées ne sont généralement pas fonctionnelles. Cette technologie est plus
souvent qu’autrement employée pour fabriquer un modèle physique d’une pièce afin de mieux la
visualiser. Il n’est actuellement pas possible de mettre en forme des métaux avec une telle
technologie, bien que la métallurgie des poudres laisse entrevoir d’intéressantes possibilités
pour les prochaines années. Dans la grande majorité des cas, seulement quelques polymères
peuvent être mis en forme avec cette technologie, ce qui s’avère limitatif. De plus, les propriétés
mécaniques des pièces fabriquées avec cette technologie sont passablement moindres que
celles obtenues pour les mêmes matériaux mis en forme avec d’autres procédés de fabrication.

Analyses par éléments finis


Les analyses par éléments finis représentent un secteur d’activité de l’ingénierie moderne de
plus en plus populaire. Il s’agit de simuler le comportement de phénomènes physiques à partir
de pièces modélisées avec des systèmes de CAO. Par exemple, la partie de gauche de la figure
1.7 montre un support en L de forme irrégulière qui est soudé contre un mur et qui supporte une
charge statique. La pièce a d’abord été modélisée dans un système de CAO puis exportée vers

1.5
un logiciel d’analyses par éléments finis. Les analyses sont réalisées en divisant les pièces en
une série de petits volumes, appelés éléments finis, qui sont collés les uns aux autres pour
former un maillage. En posant certaines hypothèses concernant la variation des paramètres
physiques à l’intérieur des éléments, il est possible d’établir un système d’équations que les
logiciels d’éléments finis tâchent de résoudre. La partie de droite de la figure 1.7 montre les
éléments de type « brique » qui ont été utilisés pour former un maillage. La force appliquée sur
la structure provoque une déformation qui a été calculée et représentée sur la même figure. De
plus, la distribution de contraintes dans le support est illustrée par des lignes de contour. Ainsi, il
est possible d’observer des zones de contraintes élevées atteignant près de 800 MPa dans le
creux intérieur de la structure en L.

wall

F
Figure 1.7 : Calcul de la déformation d’une pièce et des contraintes internes
par la méthode des éléments finis

Les analyses par éléments finis sont donc abondamment employées en génie mécanique et en
construction pour dimensionner des structures et pour estimer les niveaux de contraintes
internes. Les éléments finis ne sont pas exclusivement employés pour le calcul de structures,
mais également pour simuler les phénomènes physiques qui relèvent d’autres disciplines
comme les échanges thermiques, les champs électromagnétiques ou les écoulements des
fluides autour des corps.

1.3 Incidence sur le processus de développement de produits

Le cycle de développement d’un produit passe inévitablement par une série d’étapes comme le
montre la figure 1.8. Dans les ellipses de la partie gauche de la figure, on retrouve les différents
jalons ou livrables d’un projet, tandis qu’à droite, on note les principales étapes du projet lors
desquelles une importante charge de travail doit être consacrée. Ainsi, à partir d’un besoin ou
d’un problème quelconque, la première étape est de bien définir le problème. Dans cette phase,
les besoins du client sont étudiés et des objectifs à atteindre sont établis. Certains outils comme
la maison de la qualité sont alors employés pour établir des critères d’évaluation et des barèmes
qui permettront de faire ressortir la meilleure solution parmi toutes celles qui seront
éventuellement proposées. Le cahier des charges est le résultat de la définition du problème.
Par la suite, une phase de recherche de concepts est entamée et différentes techniques de
créativité comme le remue-méninges sont habituellement pratiquées. Parmi l’éventail de
concepts proposés, celui qui semble le mieux répondre aux besoins du client est ensuite choisi

1.6
en se basant sur les critères d’évaluation et les barèmes préalablement établis. À partir du
concept le plus prometteur, un prototype virtuel est généralement construit. Il s’agit de modéliser
à l’aide de l’ordinateur le produit afin de vérifier certains paramètres et d’obtenir l’approbation du
client. Avec la rétroaction des intervenants dans le projet, des améliorations et des raffinements
sont apportés au concept afin d’obtenir une solution qui soit économiquement et physiquement
réalisable. La fabrication d’un prototype physique est généralement lancée à ce moment afin de
tester dans les conditions réelles d’opération le concept retenu. Lorsque le prototype physique
satisfait à toutes les exigences du client, la fabrication et la commercialisation du produit
peuvent être entamée. Une solution au problème initial a alors été trouvée.

Besoin ou
problème
Définition du
problème
Cahier des
charges
Recherche de
concepts
Éventail de
concepts
Choix d’un
concept
Concept
prometteur
Modélisation
du concept
Prototype
virtuel
Raffinement de
la solution
Prototype
physique
Fabrication et
commercialisation
Solution au du produit
problème

Figure 1.8 : Incidence de la CAO sur le cycle de développement d’un produit

Le cheminement typique montré à la figure 1.8 n’est pas systématiquement suivi lors de la
résolution de chaque problème. Dépendant de l’ampleur ou de la complexité du projet, certaines
étapes peuvent être enlevées, d’autres ajoutées. Par exemple, lorsque le choix d’un concept ne
doit laisser aucune place à l’erreur, plusieurs prototypes physiques peuvent être fabriqués afin
de les comparer dans des conditions particulières. De plus, le cheminement proposé semble
unidirectionnel. En réalité, il est fréquent de revenir aux étapes précédentes pour clarifier
certains paramètres qui étaient auparavant difficilement quantifiables. Cependant, un retour en
arrière devient de plus en plus coûteux à mesure qu’on avance dans le cycle de développement
d’un produit. Par exemple, apporter une modification au produit lorsque la phase de fabrication

1.7
est lancée s’avère extrêmement plus coûteux qu’apporter la même modification sur un prototype
virtuel.

Malgré tous les avantages que la CAO apporte au développement d’un produit, il n’est pas
souhaitable de l’appliquer trop tôt dans le cycle de développement. En fait, comme le montre les
flèches verticales à droite de la figure 1.8, il n’est généralement pas recommandé de réaliser
des activités de CAO avant l’obtention du concept le plus prometteur. Durant les phases de
définition du problème et de recherche de concepts, les ingénieurs-concepteurs passent
habituellement plus de temps à effectuer des tâches intellectuelles que techniques. L’utilisation
prématurée de la CAO dans le cadre d’un projet peut devenir onéreuse. Les activités de DAO et
de FAO interviennent également dans le projet, mais elles débutent normalement un peu plus
tard dans le cycle de développement du produit. En somme, la CAO peut être très avantageuse
pour une entreprise qui la pratique, à condition cependant de l’utiliser au bon moment et de
façon judicieuse.

1.8
Chapitre 2
La modélisation solide

2.1 Introduction

Nous avons vu qu’il existait trois types de représentation en CAO, soit la représentation par fil de
fer, la représentation surfacique ainsi que la représentation solide. La première laisse place à
une ambiguïté totale quant à l’interprétation du modèle et est non utilisable autant pour les
applications d’analyse que pour celles liées au domaine de la fabrication mécanique. Bien que la
représentation surfacique permette une définition plus complète et moins ambiguë du modèle
laissant ainsi place au calcul de certaines analyses ainsi qu’à la génération de trajectoires
d’outils en usinage, cette représentation ne permet pas d’extraire aucune information de type
volumique. La représentation la plus complète et la plus sophistiquée est de type solide. Ce qui
la distingue de la représentation surfacique est la possibilité de différencier l’intérieur de
l’extérieur d’un volume donné. Conséquemment, le modèle créé sous forme solide devient ni
plus ni moins un prototype virtuel parfait pouvant être utilisé pour la simulation en cinématique,
pour l’analyse d’interférence en assemblage, pour l’analyse de contraintes et de déformations
sous l’action de charges, pour la génération automatique de trajectoires d’outils en usinage et en
inspection, etc. L’ensemble de ces applications sont rendues possibles grâce à la représentation
mathématique complète et non ambiguë associée à tout modèle solide. Cette représentation
permet notamment aux modeleurs solides de calculer tout sommet, arête ou surface
additionnelle créés lorsqu’une modification est effectuée sur un solide existant. La figure 2.1
illustre effectivement l’apparition d’arêtes et de faces suite à une opération de coupe à travers
un modèle solide. En comparaison, la coupe d’un modèle surfacique aurait mené à l’apparition
de sommets et d’arêtes mais aucune face ne résulterait de cette opération (figure 2.2).

Il existe plusieurs techniques ou fonctions rendues disponibles dans les systèmes de CAO
d’aujourd’hui permettant la création de modèles solides très complexes. Ces techniques de
modélisation disponibles seront introduites en première partie de ce chapitre, alors que les
approches utilisées pour la représentation interne des modèles, soit la géométrie solide
constructive, la représentation par frontière et la décomposition cellulaire, seront présentées en
deuxième partie.

Figure 2.1 : Coupe d’un modèle solide

2.1
Figure 2.2 : Coupe d’un modèle surfacique

2.2 Les techniques de construction des modèles solides

On peut regrouper les fonctions disponibles pour la modélisation solide en 5 groupes distincts
[LEE]. Le premier groupe inclut les fonctions utilisées pour créer des objets simples à partir de
solides prédéfinis déjà existants en librairie du modeleur. Les dimensions de ces solides de
base appelés « primitives » sont en général spécifiées par l’utilisateur. Les opérations
permettant d’ajouter ou de soustraire de la matière à partir des primitives disponibles, appelées
opérations booléennes, sont également des fonctions appartenant à ce premier groupe. Le
deuxième groupe de fonctions consiste en l’ensemble des opérations permettant la génération
d’un solide à partir d’interpolation ou de déplacement de surfaces selon des courbes de
référence données. Ces courbes peuvent être utilisées comme sections du solide interpolé ou
encore comme trajectoires dirigeant le déplacement d’une surface afin d’obtenir un solide. Les
fonctions de balayage et les fonctions de mélange s’inscrivent dans ce groupe d’opérations. Le
troisième groupe inclut les fonctions auxiliaires permettant de modifier la forme d’objets existants
soit par l’ajout d’arrondis, de congés, de chanfreins, ou par le décalage de faces existantes. Les
fonctions permettant de manipuler la position ou la dimension des sommets, des arêtes ou des
faces d’un modèle font partie de la catégorie appelée « modélisation par frontière ». Finalement,
la construction d’un solide par le biais de caractéristiques dites « features » associées à des
formes propres au domaine de la fabrication constitue le dernier groupe de fonctions permettant
la création de modèles solides.

2.2.1 Modélisation par primitives et opérations booléennes

Cette technique de modélisation consiste à utiliser des géométries solides de base appelées
« primitives » de formes fixes mais de dimensions spécifiées par l’usager et à appliquer des
opérations sur celles-ci afin d’obtenir l’objet désiré. Les opérations sont appelées booléennes et
incluent l’union (U), permettant d’additionner des primitives au modèle en cours de construction,
la différence (– ou /) permettant de soustraire des primitives au modèle, ainsi que l’intersection
( ) permettant d’obtenir la matière commune à deux objets ou primitives données. La plupart
des modeleurs offrent des fonctions de création de primitives à partir de la seule entrée des
paramètres définissant celles-ci. Tel que présenté à la figure 2.3, les primitives de base incluent
le bloc, le cylindre, le cône, la sphère, le coin ainsi que le tore. Certains modeleurs dérivent leurs
primitives à partir de primitives encore plus simples appelées « demi-espace » ou « half-
space ». Celles-ci consistent en des géométries formées d’un demi-espace infini et d’un demi-
espace solide. Tel qu’illustré à la figure 2.4, la primitive demi-espace de type plan est composée
d’un côté droit solide et d’un côté gauche représentant un espace infini. Ainsi, à partir de ce type
de primitive, un cube serait obtenu par la combinaison de 6 demi-espaces, soit les plans infinis

2.2
XY, YX, ZX, XZ, YZ, et ZY (figure 2.4). On distingue également les primitives de base des
primitives dites, d’application. Celles-ci sont construites à partir des primitives de base ou par le
biais de fonctions de construction plus complexes telles que celles décrites aux sections
suivantes. Une librairie de boulons et de vis est un exemple de primitives d’application
spécialement développées pour être utilisées dans différents projets de modélisation en
mécanique. La figure 2.5 illustre des exemples de primitives d’application. Il est à noter que ces
dernières sont généralement développées par chaque entreprise ayant ses propres besoins en
matière de modélisation. Les primitives d’application peuvent être de dimensions fixes ou de
dimensions variables, celles-ci pouvant être modifiées en fonction de l’application en question.

Figure 2.3 : Primitives de base (tirée de A. Zeid [5])

2.3
Figure 2.4 : Primitives de type « demi-espace » (tirée de A. Zeid [5])

Figure 2.5 : Primitives d’application

Opérateurs booléens
La combinaison des primitives pour former un objet plus complexe est effectuée en utilisant des
opérateurs Booléens ou opérateurs « logiques ». Il existe principalement trois types d’opérations
booléennes même si plusieurs modeleurs offrent des variations de celles-ci. Les trois opérateurs

2.4
sont appelés UNION, DIFFÉRENCE (soustraction) et INTERSECTION. L’UNION, reconnue par
le symbole U, combine deux solides en un solide simple. Cette opération correspond à
l’opération logique OU « OR » (tout le volume de A OU celui de B). En théorie, les deux solides
initiaux peuvent s’entrecouper, se toucher ou être séparés d’une certaine distance. En pratique,
plusieurs modeleurs permettent uniquement l’union de solides s’entrecoupant ou se touchant
pour éviter l’aberration physique d’avoir un objet ou une pièce unique constituée de deux solides
distincts ne se touchant en aucun point. L’UNION est commutative, ce qui signifie que A U B =
B U A (figure 2.6).

Figure 2.6 : Opération d’union

La deuxième opération est la DIFFÉRENCE, reconnue par les symboles – ou /. Cet opérateur
enlève le volume d’un solide à partir d’un deuxième solide, souvent appelé « outil » ou
« couteau ». Le solide soustrait est généralement effacé du modèle. L’opérateur différence
correspond à l’opérateur logique NON ou « NOT » (A – B = tout le volume de A mais NON celui
qui appartient également à B). La DIFFÉRENCE n’est PAS commutative, ce qui signifie que :
A – B B - A (figure 2.7). L’opération de différence peut résulter en un seul ou plusieurs
nouveaux solides!

Figure 2.7 : Opération de différence

La troisième opération booléenne fondamentale est l’intersection, représentée par le symbole .


L’opérateur intersection conserve uniquement le volume commun aux deux solides (figure 2.8).
Cette opération correspond à l’opération logique ET ou « AND » ( A B = tout le volume à A ET
à B). Tout comme l’opérateur union, l’INTERSECTION est commutative, A B=B A.

Figure 2.8 : Opération d’intersection

Des exemples de construction de modèles solides à partir de primitives de base sont illustrés
aux figures 2.9, 2.10 et 2.11. Dans chacun des cas on remarque l’utilisation d’opérations
booléennes à chacune des étapes de construction du modèle.

2.5
Figure 2.9 : Base d’un étau

Figure 2.10 : Mors mobile d’un étau

Figure 2.11 : Manchon d’un étau

2.2.2 Les fonctions de balayage

La technique de création d’objets solides par balayage, communément appelée « sweep »,


consiste à générer une forme par le déplacement d’un élément appelé « génératrice » le long
d’un élément appelé « directrice » ou « trajectoire ». Cette fonction peut être utilisée autant pour
la modélisation solide, surfacique que pour la modélisation en fil de fer. Le résultat dépend
essentiellement du type de génératrice utilisée pour décrire la géométrie en question. Lorsque
celle-ci est une surface, l’opération de balayage de cette génératrice le long de la courbe
directrice résulte en un solide, tel qu’illustré à la figure 2.12. Si une courbe est plutôt utilisée
comme génératrice, alors le balayage de celle-ci le long de la directrice résulte en surface
(figure 2.13). Le niveau de complexité possible pour la géométrie balayée et la trajectoire
dépend essentiellement des capacités du logiciel utilisé et de la plate-forme informatique choisie
comme support d’application.

2.6
Trajectoire

Trajectoire

Génératrice

Figure 2.12 : Solides générés par balayage

Directrice

Génératrice

Figure 2.13 : Surface générée par balayage

Les types de balayage les plus communs utilisent une géométrie plane comme génératrice et
une ligne droite ou curviligne comme directrice. Bien qu’en théorie, la directrice puisse être
perpendiculaire, oblique ou parallèle à une génératrice de type planaire, en pratique certains
modeleurs assument que celle-ci est toujours perpendiculaire ou oblique par rapport au plan
considéré pour la génératrice (figure 2.14). Lorsque la trajectoire spécifiée est de type linéaire,
l’opération de balayage peut prendre différentes appellations en fonction du modeleur utilisé,
telles le « balayage linéaire », le « translational sweep » ou encore l’« extrusion ». Un exemple
de balayage linéaire est présenté à la figure 2.15.

2.7
Directrice

Génératrice

Figure 2.14 : Position de la directrice et de la génératrice

Figure 2.15 : Modélisation d’une roue par balayage linéaire

En ce qui concerne les trajectoires curvilignes, la plus commune est de type circulaire. La
plupart des modeleurs offrent la fonction de balayage circulaire et plusieurs d’entre eux y
réfèrent sous l’appellation « revolve » ou « rotational sweep ». La figure 2.16 donne un exemple
de modélisation de roue par le biais d’un balayage circulaire.

Figure 2.16 : Modélisation d’une roue par balayage circulaire

2.8
2.2.3 Modélisation par fonction de mélange (« skin, loft»)

Ces fonctions permettent la création d’un objet solide à l’aide de courbes et plans de référence à
travers lesquels la surface extérieure ou « skin » de l’objet est interpolée (figure 2.17). Cette
opération est analogue à la construction d’une structure en couvrant ses cadres, ou sections
transverses, à l’aide d’une peau de vinyle ou de tissu. Si les sections extrémités de la structure
ne sont pas des faces mais plutôt des courbes, alors le modèle résultant est de type surfacique.
Cette fonctionnalité est disponible dans tout système de modélisation surfacique. On réfère
également cette fonction au terme « loft », par analogie au procédé manuel de création des
dessins à l’aide de gabarits physiques grandeur nature, jadis utilisés pour la conception des
panneaux de structure dans l’industrie aérospatiale et automobile. En effet, ce procédé
consistait à relier chacune des sections transversales des gabarits fabriqués en bois par le biais
de splines métalliques minces et flexibles afin de créer les dessins à l’échelle. L’espace requis à
cette conception était telle, que le seul endroit souvent disponible pour y arriver consistait au
« loft » des départements d’ingénierie des entreprises visées, d’où le nom associé à la fonction.
D’autres modeleurs réfèrent à cette fonctionnalité sous l’appellation de « blend », puisque
l’opération consiste à obtenir une surface ou un solide par le biais du « mélange » de différentes
sections. La figure 2.18 illustre différents éléments de modèles créés à l’aide de la fonction de
mélange.

Figure 2.17 : Solide résultant de l’interpolation de 4 plans

Figure 2.18 : Modèle avec éléments de type « blend »

2.2.4 Modification d’un modèle avec chanfreins, congés et arrondis

Les fonctions de congés ou d’arrondis sont utilisées pour modifier une géométrie existante par le
remplacement d’arêtes vives par des surfaces courbes. Les directions normales de ces surfaces

2.9
courbes sont continues aux points de rencontre avec les surfaces formant originalement l’arête
vive. La figure 2.19 montre un solide avec arêtes vives transformé par le biais d’arrondis et de
congés de raccordement. La distinction entre un arrondi et un congé réside dans le fait que le
premier enlève de la matière au niveau de l’arête vive (surface convexe) alors que le second en
ajoute à l’intersection de deux surfaces (surface concave). Contrairement à ces deux
fonctionnalités qui remplacent une arête par des surfaces cylindriques, le chanfrein remplace
une arête vive par une surface de type planaire (figure 2.20). Ce type de caractéristique
géométrique est largement utilisé pour la modélisation de trous et de tiges afin de faciliter les
opérations d’assemblage.

Arrondi

Congé de raccordement

Figure 2.19 : Arrondis et congés de raccordement

Figure 2.20 : Pièce transformée par l’ajout de chanfreins

2.2.5 Modification par extension de faces

Cette fonctionnalité largement appelée « lift » ou « extend», est utilisée afin de tirer, en partie ou
en totalité, une face d’un solide dans une direction donnée (figure 2.21). Si la face n’est que
partiellement tirée, alors une opération de division ou « split » doit préalablement être effectuée
afin d’y arriver (figure 2.21). Bien qu’en pratique cela ne consiste qu’à ajouter une arête sur une
face et d’activer la fonction, en théorie tout le solide est recalculé selon les règles d’Euler afin de
mettre à jour la connectivité du solide. Nous verrons ces aspects à la section 2.3.2 traitant de la
représentation interne des solides.

2.10
Extension
normale
d’une face

Figure 2.21 : Extension d’une face d’un modèle

2.2.6 Modélisation par définition de frontières

Contrairement à la modélisation solide recourant aux primitives et aux fonctions avancées telles
que le balayage ou le « blend », la modélisation par frontière consiste à bâtir ou modifier un
modèle existant par la manipulation de ses sommets, de ses arêtes, ou de ses faces le
constituant. Chaque modeleur a ses propres fonctions permettant de manipuler ces entités. La
modélisation solide par frontière est similaire à la modélisation surfacique. Les sommets sont
premièrement définis, puis les arêtes sont bâties à partir des sommets, puis les faces sont
construites à partir de boucles formées d’arêtes. Cependant, contrairement à la modélisation
surfacique, la modélisation solide exige que le volume soit parfaitement fermé en définissant
complètement toutes les faces s’intersectant de manière à former une coquille étanche. La
figure 2.22 illustre la modélisation d’une pyramide par définition de frontière.

Sommet

Arête

Face

Figure 2.22 : Modélisation par frontières

Tel que montré dans cet exemple, la modélisation d’un solide à partir de ses frontières est
fastidieuse et très primitive. En fait, les fonctionnalités offertes par les modeleurs solides
commerciaux sont principalement utilisées pour la création de sketch en 2-D utilisés dans les
fonctions de balayage ou les fonctions de mélange par exemple. Les solides, une fois construits,
peuvent par la suite faire l’objet de modification en altérant les frontières, tel le déplacement de
sommets ou le remplacement d’une arête ou d’une face par une autre. Par exemple, tel

2.11
qu’illustré à la figure 2.23, il est facile de modéliser une matrice pour le forgeage par le
remplacement d’un plan appartenant à un cube par une surface libre correspondante à la pièce
à fabriquer.

Figure 2.23 : Modification des frontières d’un cube

Finalement, la démarche de modélisation par frontière est également utilisée dans la


modélisation de solides à partir de surfaces quelconques. Selon cette démarche il est
nécessaire que les surfaces utilisées s’intersectent les unes avec les autres de manière à former
une coquille fermée lorsque les excédents sont éliminés par les opérations de trim (figure 2.24).

Figure 2.24 : Solide construit à partir de surfaces

2.2.7 Modélisation par caractéristiques

Également appelée modélisation par « features » (feature-based modelling ), cette technique est
basée sur l’ajout de caractéristiques à une géométrie de base. Par exemple, un concepteur peut
ajouter un trou de dimension et de position données par le biais de la fonction « Trou » ou un

2.12
chanfrein donné par la fonction « chanfrein ». Le nombre et le type de « features » disponibles
varie d’un modeleur à l’autre. Les features les plus répandues sont celles utilisées en
fabrication, telles que le trou, le congé, la rainure, la pochette, etc. Elles sont appelées
« manufacturing features » parce qu’elles sont associées à un processus de fabrication, par
exemple le perçage dans le cas d’un trou, le fraisage dans le cas d’une pochette, etc. Cela
ouvre la voie au développement de systèmes de génération de gammes de fabrication intégrés
aux systèmes de Conception et de Fabrication Assistés par Ordinateur (CFAO). Un exemple de
pièce produite à l’aide de features est présenté à la figure 2.25.

Figure 2.25 : Modélisation d’une pièce par « features »

Même si le nombre de features peut être complet pour un type d’application, voire en fabrication,
celui-ci peut s’avérer insuffisant pour d’autres applications. Ainsi, certains systèmes offrent la
possibilité de programmer des features sur mesure pouvant par la suite être utilisées par
l’ensemble des concepteurs d’une compagnie donnée. Les features sont programmées de telle
sorte qu’elles puissent être définies à partir de paramètres associés à leur dimension. Ce type
de modélisation solide s’appelle « modélisation paramétrique » et est présenté à la section qui
suit.

2.2.8 Modélisation paramétrique

En modélisation paramétrique, les concepteurs utilisent des contraintes appliquées à la


géométrie et parfois aux dimensions afin de définir la forme de leur objet. Les contraintes
associées à la géométrie décrivent la relation entre deux entités, par exemple le lien de
parallélisme entre deux lignes ou deux plans, la tangence entre une courbe et une arête linéaire
voisine, etc. Les données associées aux dimensions de l’objet peuvent prendre la forme d’un
paramètre ou bien d’une relation mathématique contraignant la dimension d’un élément à la
dimension d’un ou plusieurs autres éléments du modèle. Par exemple, la figure 2.26 montre
l’utilisation de la relation « d17=360/p18 » afin d’exprimer l’angle séparant chaque paire de trous
constituant le groupement « bolt hole » en fonction du nombre de trou souhaité. On remarque
que pour un groupement incluant 15 trous, l’angle séparant chacun d’eux est égal à 24 degrés
alors que pour un groupe de 25 trous, cet angle devient égal à 14.4 degrés.

2.13
Figure 2.26 : Groupement de trous paramétrisés

En général, la technique de modélisation paramétrique fait intervenir les étapes suivantes :

(I) Faire rapidement un croquis (« sketch ») de la section 2D utilisée pour générer un volume.
(II) Imposer un dimensionnement et des contraintes pour la section.
(III) Régénérer la section 2D suite aux contraintes et dimensions imposées.
(IV) Refaire les étapes (II) et (III) jusqu’à ce que la section convienne aux intentions du
concepteur.
(V) Créer le volume à l’aide des fonctions de balayage ou des fonctions de mélange
disponibles.

L’intérêt de la modélisation paramétrique est la souplesse du modèle. Celui-ci peut se voir


attribuer différentes dimensions laissant place à des variantes de composantes associées à une
famille de pièces par exemple. La figure suivante illustre deux pièces différentes provenant du
même modèle paramétrique.

2.14
Figure 2.27 : Modification d’une pièce en changeant ses contraintes et dimensions

2.3 La représentation interne des modèles solides

Dans la section précédente, nous avons vu les différentes techniques et fonctions de


modélisation solide pouvant être utilisées conjointement ou non selon le modeleur commercial
utilisé. Nous savons maintenant que chaque solide a une représentation mathématique
entreposée dans l’ordinateur lorsque celui-ci est modélisé avec l’une ou l’autre de ces fonctions.
Nous présenterons dans cette section les trois principaux types de représentation ou de
structures utilisées pour entreposer l’information décrivant les solides, soit la géométrie solide
constructive, la représentation par frontières et la représentation cellulaire. La première de
celles-ci entrepose comme données de modélisation l’historique des différentes opérations
booléennes s’appliquant sur les primitives ayant servi à la construction complète du solide. La
seconde entrepose l’information associée aux frontières du modèle solide, c’est à dire les
coordonnées des sommets, les équations des courbes et surfaces associées aux arêtes et aux
faces du modèle ainsi que les relations de connectivité entre chacune de ces entités.
Finalement, la dernière structure que nous verrons est la décomposition cellulaire qui consiste à
représenter un objet par une série de petits éléments volumiques élémentaires.

2.3.1 Représentation par la géométrie solide constructive (CSG)

Telle qu’introduite précédemment, les primitives et les opérations booléennes sont parfois
utilisées de pair pour former un solide plus complexe. Cette technique de construction est
toujours représentée par le biais d’un arbre binaire, appelé arbre CSG (« Constructive Solid
Geometry »). Certains modeleurs entreposent cet arbre en base de données du système, de
concert avec les paramètres de définition des primitives utilisées en cours de modélisation.
Seule cette information est nécessaire pour régénérer le solide au début de toute nouvelle
session de travail. Sous cette forme, le modèle est représenté comme un ensemble de
primitives reliées les unes aux autres par le biais d’opérations booléennes. La forme, la
dimension, l’orientation et la position relative de chaque primitive, ainsi que les opérations
booléennes reliant chacune d’elles sont entreposées dans la base de données du modèle.

L’arbre CSG est en fait une recette servant à créer le modèle final. Chaque primitive possède
son propre système de coordonnées dit « local » permettant sa création et servant à son
positionnement relativement au système de coordonnées associé au modèle global

2.15
(figure 2.28). L’arbre CSG souvent appelé « graphe dirigé », inclut un ensemble de nœuds
connectés par des branches. Tout nœud ne doit avoir qu’un seul nœud « parent » et
uniquement deux nœuds « enfant », à l’exception du nœud appelé « racine » et des nœuds
extrémités appelés « feuilles ». Le nœud racine a la particularité de n’avoir aucun parent. Ce
nœud est donc au sommet de l’arbre. Les nœuds feuilles, quant à eux, ont la particularité de
n’avoir aucun enfant. Ils sont à la base de l’arbre et représentent ainsi les primitives utilisées
pour la création du modèle. Tout autre nœud correspond à une opération booléenne effectuée.
La figure 2.29 illustre l’arbre CSG associé à la modélisation d’une pièce simple.

z Bloc 100 x 80 x 30
Cylindre de rayon 35
y
z épaisseur 30

Origine à x = 100, y = 80, z = -10


Origine à x = 0, y = 0, z = 0
x
x
Figure 2.28 : Position d’une primitive par rapport au référentiel pièce
(adaptée de C. McMahon et J. Browne [3])

Figure 2.29 : Arbre CSG sous forme schématique


(tirée de C. McMahon et J. Browne [3])

La figure précédente représente, par sa définition schématique, un arbre CSG montrant à


chaque étape le résultat intermédiaire du modèle obtenu. Cet arbre est présenté afin d’illustrer le
concept à des fins pédagogiques. Il peut être fastidieux de compléter un arbre sous cette forme
pour les modèles complexes. En général, l’arbre CSG inclut uniquement les nœuds mettant en
évidence les opérateurs booléens utilisés pour arriver au résultat final. L’arbre CSG du modèle
illustré à la figure 2.29 peut prendre la forme simplifiée suivante (figure 2.30). La représentation

2.16
en base de données d’un arbre typique inclut des pointeurs afin de relier chaque nœud faisant
intervenir une opération ou une primitive.

B D
C
A

Figure 2.30 : Arbre CSG sous forme simplifiée

La figure 2.31 donne un autre exemple de construction d’un arbre CSG pour un modèle
d’attache.

Figure 2.31 : Arbre CSG associé au modèle « attache » (tirée de A. Zeid [5])

2.17
Les avantages associés à la représentation CSG sont les suivants :

 La structure de données est simple et compacte. La gestion des données s’en trouve
simplifiée.
 Le solide entreposé est toujours valide. La validité du solide implique que l’intérieur du
modèle est distinct de l’extérieur du modèle, et ceux-ci sont clairement identifiables.
 La représentation CSG peut toujours être convertie en représentation par frontière par le
biais d’un algorithme traducteur, ce qui signifie qu’un modèle CSG peut être interprété avec
un modeleur B-Rep à des fins d’applications particulières.
 La modélisation paramétrique est directe en changeant les valeurs des paramètres
associés aux primitives.

Les désavantages associés à cette représentation sont les suivants :

 Parce que l’arbre CSG entrepose l’historique de l’utilisation des opérations booléennes,
seules les opérations booléennes sont permises avec ce type de représentation. Ainsi les
fonctions de balayage ou les fonctions de mélange par exemple, ne peuvent être utilisées
avec ce type de représentation. Les fonctions de modification locales telles, les arrondis, les
congés, les chanfreins ne peuvent non plus être utilisées avec ce mode de représentation.
Toute surface complexe, ou libre, ne peut également être utilisée puisqu’aucune primitive
de base ne peut en assurer la modélisation. Ceci limite grandement l’étendue de pièces
modélisables avec les fonctionnalités propres au CSG.
 Bien que possible, afin de dériver une représentation par frontière à partir d’un modèle
CSG, cela nécessite un effort calcul considérable. Toutes les applications nécessitant la
connaissance des frontières d’un modèle sont donc alourdies par un surdébit (overhead)
associé à cette conversion, et ces applications sont très nombreuses. Citons par exemple
l’affichage en fil de fer nécessitant l’information relative aux arêtes du modèle, ou le calcul
de trajectoires d’outils de coupe en fabrication nécessitant l’information relative aux faces et
aux bornes de celles-ci.

Ces inconvénients sont majeurs et ont mené au développement de modeleurs solides adoptant
la représentation par frontières ou bien la représentation mixte combinant les deux types de
représentation.

2.3.2 Représentation par frontières (B-Rep)

La deuxième technique fort répandue pour représenter les solides est la représentation par
frontières ou encore la représentation par les limites « Boundary Representation ». Cette
représentation définit un solide comme une combinaison de l’information géométrique relative à
chacune des faces, arêtes et sommets, et de l’information topologique définissant la liaison
entre ces entités. La figure 2.32 montre la différence entre l’information de type topologique et
l’information de type géométrique. La topologie est associée à la charpente du corps solide et
aux liens entre les différents éléments de cette charpente, alors que la géométrie est davantage
reliée à la forme finale ou à l’allure « cosmétique » du modèle. Dans la plupart des structures de
données B-Rep, on retrouve comme élément d’information topologique, le sommet (VERTEX),
l’arête (EDGE), la boucle (LOOP), la face (FACE), la coquille (SHELL) et le corps (BODY). Le
corps ou le solide est formé ou défini à partir de la coquille, celle-ci étant à son tour formée d’un
ensemble de faces (FACE) reliées dont chacune est définie par une boucle ou chaîne fermée

2.18
incluant un minimum de trois arêtes. Les arêtes du modèle solide sont finalement définies à
partir de deux sommets, chacun des sommets étant le point de rencontre d’au moins trois arêtes
(figure 2.33). L’information de type géométrique permet de définir : la position x, y, z des points
définissant les sommets ; le type de courbes sous-jacentes aux arêtes (droite, arc, ellipse,
spline, etc.) ; et le type de surfaces associées aux faces (plane, cylindrique, sphérique, conique,
etc.) (figure 2.32).

Éléments topologiques Éléments géométriques

corps (BODY) nil

coquille (SHELL) nil

face (FACE) surface (plan, cyl, sph,…)

boucle (LOOP) nil

arête (EDGE) courbe (droite, circ,…)

sommet (VERTEX) point (x, y, x)

Figure 2.32 : Géométrie et topologie d’un modèle B-Rep

Figure 2.33 : Modèle B-Rep (tirée de C. McMahon et J. Browne [3])

2.19
Les règles de construction et de validation en B-Rep assurent l’intégrité du solide, à savoir la
capacité d’identifier l’intérieur et l’extérieur du modèle et également la possibilité de calculer les
propriétés volumiques de ce dernier. Une de ces règles de construction est reliée à la définition
des faces du modèle. La boucle définissant les limites d’une face doit être définie selon une
direction antihoraire. La normale à la face, orientée selon la direction de la boucle, permet ainsi
de distinguer l’intérieur de l’extérieur du modèle. Les autres règles importantes à respecter lors
de la modélisation sont les suivantes :

 Chaque face est bornée par une boucle fermée et constituée d’arêtes (minimum de trois).
La boucle est orientée en sens antihoraire (vecteur normal à l’extérieur du modèle),
 Chaque arête doit être commune à exactement deux faces et doit avoir un sommet à
chacune de ses extrémités,
 Un minimum de trois arêtes doivent se rencontrer en chacun des sommets (condition
assurant un modèle bien formé ou dit « manifold »)

Afin de mettre en évidence la différence entre la géométrie et la topologie d’un modèle, la figure
2.34 illustre deux modèles ayant la même topologie mais une géométrie différente.
Effectivement, chaque modèle a le même nombre de sommets, d’arêtes et de faces et les
liaisons entre chacune de ces entités sont identiques. Cependant, les coordonnées des points
P1, P2 et P3 diffèrent pour chaque modèle. Similairement, la figure 2.35 présente deux modèles
de même géométrie mais de topologie différente. Ici, la position des sommets et le type de
courbe et de surface utilisées pour définir le modèle sont identiques, cependant la définition des
arêtes E4, E5 et E6 est différente pour chacun de ces modèles.

La figure 2.36 donne un autre exemple de topologie différente mais de géométrie identique.
Dans ce cas-ci une attention particulière doit être portée concernant la direction des boucles.
Même si celle-ci n’est pas explicitement donnée, on peut cependant la déduire à partir des arcs
de cercle présentés. En CAO, la convention veut que la direction de création d’un arc de cercle
soit anti-horaire en partant d’un point de départ vers un point d’arrivée. Considérant cette
direction, on voit que la boucle du modèle de gauche est orientée en sens horaire alors que
celle de la figure de droite est orientée en sens anti-horaire. La topologie des deux figures est
donc différente même si la géométrie est identique.

En résumé, une topologie identique ou une géométrie identique pour deux modèles n’implique
pas que ces derniers soient nécessairement identiques.

P2
E1
P1 E1 P2 P1
E2

E4 E2 E4 P3

P4 E3
P4 P3
E3

Figure 2.34 : Modèles géométriquement différents, mais de topologie identique

2.20
P1 E1 P2 P1 E1 P2
E2 E2
E6 P6
P6 P3 E6 P3
E5
E3 E5 E4 E3
P5 P5
E4 P4 P4

Figure 2.35 : Modèles topologiquement différents, mais de géométrie identique

P1 E1 P2 P1 E4 P2

E4 E2 E1 E3

P4 P3 P4 P3
E3 E2

Figure 2.36 : Modèles topologiquement différents, mais de géométrie identique

Formulation d’Euler-Poincaré
En plus des règles de construction rigoureuses à respecter pour l’obtention d’une topologie
valide, la formule d’Euler est une règle additionnelle utilisée au cœur des systèmes CAO afin
d’assurer la cohérence du modèle. À chaque étape de modélisation nécessitant une mise à jour
du graphe (représentation interne), les systèmes calculent le nombre de sommets, d’arêtes et
de faces et vérifient si la formule algébrique d’Euler-Poincaré est vérifiée :

S – A + F – B + 2P = 2C
Où S (Vertex) est le nombre de sommets du modèle,
A (Edge) est le nombre d’arêtes,
F (face) est le nombre de faces,
B (Holes) est le nombre de boucles internes sur une face (trou, extrusions),
P (passages) est le nombre de passages ou de perforation complète de la pièce
(trou complet, rainure, etc.) et
C (Body) est le nombre de corps résultant (en général 1).

Il est important de noter qu’un trou borgne, ne perforant pas la pièce, crée une boucle interne
sur une face alors qu’un trou débouchant crée 2 boucles internes, puisque la perforation altère
deux faces. Un trou complet fait donc intervenir des paramètres B et P non nuls, alors qu’un trou
incomplet implique un paramètre B non nul et un paramètre P nul. Un exemple d’application de
la formulation d’Euler-Poincaré est donné à la figure 2.37.

2.21
Figure 2.37 : Application d’Euler-Poincaré (tirée de C. McMahon et J. Browne [3])

Tel que présenté, le trou identifié « through hole » à la figure 2.37 génère 4 sommets, 6 arêtes
ainsi que 2 faces. Cela peut paraître surprenant, cependant plusieurs systèmes de CAO
modélisent les cylindres et les cercles en deux sections jointes l’une avec l’autre. On se retrouve
donc avec deux demi-cylindres, chacun ayant 4 sommets, 4 arêtes et une face.

Figure 2.38 : Exemple de l’application d’Euler-Poincaré

Dans l’exemple de la figure 2.38, il n’y a en réalité aucun sommet, 4 arêtes, 4 faces et un
passage au milieu du cylindre. Les deux faces planes comportent chacune 2 boucles d’arêtes,
une bornant l’extérieur de la face et l’autre délimitant un ‘trou’ à l’intérieur de la face. Le terme B
ne désigne que les boucles internes. Le calcul devient le suivant :

2.22
S= 0 A=4 F=4 B=2 P=1

S – A + F – B + 2P = 2C
0–4+4–2+2 ≠ 2
0 ≠ 2

Le calcul donne un résultat qui indique que le solide n’est pas valide alors qu’il est évident qu’il
représente un solide réel et cohérent. La raison vient du fait que la surface du solide doit être
découpée selon certaines rêgles :

Au moins trois arêtes doivent se rejoindre à chaque sommet


Chaque arête est bornée par 2 sommets distincts
Chaque arête est commune à exactement 2 faces distinctes
Chaque face est bornée par une boucle d’arêtes qui ne s’entrecoupent jamais
Les faces forment une envelope fermée

Pour éviter de générer des erreurs non-fondées, les logiciels de modélisation procèdent à un
découpage de la surface du solide pour respecter les règles de cohérence ci-haut. La figure
2.39 illustre le découpage fait par le logiciel CATIA dans le cas du cylindre percé.

Figure 2.39 : Capture d’écran d’un solide venant du logiciel CATIA et découpage des surfaces
correspondant

Le calcul devient le suivant avec le nouveau découpage :

S= 8 A = 12 F=6 B=2 P=1

S – A + F – B + 2P = 2C
8 – 12 + 6 – 2 + 2 = 2 : le modèle est donc valide.

2.23
Il est intéressant de noter que le nombre de sommets, d’arêtes, de boucles internes et de faces
est entièrement dépendant du découpage alors que le nombre de passages et de corps dépend
uniquement du solide étudié, peu importe le découpage.

Dans le cas des modèles mal formés dits « non manifold », la formule d’Euler-Poincaré est non
validée. Ces objets souffrent en général d’une définition incomplète nécessaire à la génération
d’un solide ou volume fermé (sommet relié à moins de trois arêtes, arête non commune à deux
faces, etc.). Un modeleur solide est capable de valider les modèles pour assurer la création
d’objets ayant du sens ou dits « manifold ». La figure 2.40 illustre la différence entre un objet
manifold et un modèle non manifold.

Figure 2.40 : Modèle non-manifold (tirée de C. McMahon et J. Browne [3])

2.3.3 Représentation par décomposition

Une autre approche de représentation peu utilisée en modélisation géométrique mais à la base
des techniques d’analyse par éléments finis est la décomposition d’un solide en agglomération
de petits solides simples. Selon cette approche, le modèle est décrit par l’assemblage d’un très
grand nombre de petits éléments joints les uns aux autres (figure 2.41 et 2.42). Le solide
résultant est toujours un modèle non exact, cependant dans certains domaines d’application, tel
le biomédical, cette technique revêt un grand intérêt. Tout solide de forme très complexe peut
toujours être représenté selon cette technique et le degré de précision est relatif à la
discrétisation utilisée pour la représentation. Ainsi, les organes et les os du corps humain sont
souvent représentés à l’aide de la décomposition à partir de données provenant de
tomographes digitaux. Ces formes complexes sont très difficiles à modéliser avec les outils
conventionnels de CAO. La décomposition permet leur représentation avec fidélité et précision.

2.24
Figure 2.41 : Décomposition cellulaire en 2D (tirée de C. McMahon et J. Browne [3])

Figure 2.42 : Décomposition cellulaire en 3D (tirée de C. McMahon et J. Browne [3])

2.25
Exercices sur la cohérence B-Rep I

Pour chacune des pièces suivantes :

i) Vérifier la formule d’Euler-Pointcarré.


ii) Juger de la cohérence en considérant l’existence d’un seul corps (C = 1).

A) B) C)

D) E) F)

G) H) I)

J)

2.26
Exercices sur la cohérence B-Rep II

Pour chacune des pièces suivantes :

i) Effectuer trois découpages différents de la surface respectant les rêgles de cohérence.


ii) Vérifier la formule d’Euler-Pointcarré pour chacuns des découpages.
iii) Juger de la cohérence en considérant l’existence d’un seul corps (C = 1).

A) B)

C)

Vue en coupe
Vue isométrique

D)

2.27
Exercices sur les arbres CSG
Tracer l’arbre binaire pour chacune des pièces suivantes considérant l’utilisation :
i) de primitives de base et d’opérations booléennes (voir figure 2.3).
ii) de features et d’opérations disponibles dans CATIA.
A)

B)

C)

D)

E)

F)

G)

H)

2.28
Chapitre 3
Les transformations géométriques

Les transformations géométriques ne sont pas uniques au domaine de la CAO, elles constituent
en fait des notions fondamentales utilisées dans l’ensemble des disciplines du génie mécanique.
Elles sont notamment à la base des techniques utilisées pour effectuer des changements de
repères dans des domaines tels la dynamique, la robotique, la fabrication, les calculs par
éléments finis, etc.

Dans le domaine de la CAO, toute modélisation implique une panoplie de manipulations


géométriques en deux ou trois dimensions nécessaires afin de copier ou de déplacer des
éléments par rapport à des références données. Ainsi, les opérations de translation, de rotation,
de miroir et de facteur d’échelle sont à la base de l’ensemble des manipulations disponibles
dans un système de CAO, soit directement sous cette appellation ou encore sous des fonctions
y référant et les utilisant de manière transparente. À titre d’exemple, la fonction « pattern »
réfère aux translations et rotations pour copier un élément maître en différentes instances alors
que la fonction « offset » est notamment utilisée pour effectuer des décalages de repères ou
d’éléments par rapport à une référence donnée, soit une copie-translation.

Les sections suivantes concernent le développement des transformations de type translation,


rotation, symétrie et changement d’échelle en deux dimensions. La généralisation aux cas de
transformation en trois dimensions est également présentée à la fin du chapitre.

3.1 Translation

Les transformations les plus simples et certainement les plus utilisées en CAO sont les
translations et les rotations. En plus d’être impliquées dans tout déplacement d’objet dans
l’espace graphique, par le biais de la souris, à des fins de visualisation, elles sont également
disponibles dans les menus de l’interface usager afin de dupliquer ou de déplacer les éléments
ou les primitives d’un modèle en cours de réalisation. Chaque translation de géométrie implique
le calcul d’une nouvelle position pour chacun des points caractéristiques la définissant. Ainsi la
reconstruction de la géométrie est effectuée à partir des points caractéristiques transformés.

Considérons le point P(2,2) qui subit une translation de 4 unités selon l’axe des X et de 2 unités
selon l’axe des Y (voir figure 3.1). Les coordonnées x’ et y’ du point P’ résultant de la translation
sont obtenues par l’addition des coordonnées originales, x et y, du point P avec les paramètres
de translation correspondants Tx et Ty.

x’ = x + Tx = 6
y’ = y + Ty = 4

3.1
y

P'
Ty = 2
P (2, 2)
Tx = 4

x
0
Figure 3.1 : Translation de P

Lorsque les coordonnées et les paramètres de translation sont présentés sous forme matricielle,
on obtient la relation matricielle permettant d’effectuer la translation de points définissant une
géométrie donnée:

x 2
P= (Coordonnées du point P mises sous forme matricielle)
y 2

Tx 4
T= (Paramètres de translation mis sous forme matricielle)
Ty 2

x x Tx 6
P’ =
y y Ty 4

La translation sous forme matricielle s’écrit donc ainsi :

P’ = P + T
x x Tx
y y Ty

Exemple de translation de géométrie

Translation d’une ligne de 1 unité selon x et 2 unités selon y.

3.2
y P' 2 P1 P1 T
x1 x1 Tx
P' 1 Ty
y1 y1
P 2 (6, 3)
x1 2 1 3
P1
P 1 (2, 1) y1 1 2 3
x
x2 6 1 7
P2 P2 T P2
y2 3 2 5
Figure 3.2 : Translation d’une ligne

3.2 Rotation dans le plan

Cas particulier (P confondu à l’axe x)

Afin de faciliter le développement de la matrice de transformation associée à n’importe quelle


rotation dans le plan, considérons le cas particulier de la rotation d’un point P par rapport à
l’origine O confondu avec l’axe X, d’une valeur égale à un angle autour de l’axe Z.

Le point P a comme coordonnées x = r et y = 0. Les coordonnées du point P’ s’expriment donc


ainsi, soit en fonction des variables connues x, y et .

y
x’ = r cos = x cos
P'
y’ = r sin = x sin

r x
0 P
Figure 3.3 : Rotation d’un point P confondu à l’axe x

3.3
Cas général 2D

Le cas général de rotation d’un point P par rapport à l’origine O faisant initialement un angle
relativement à l’axe X et subissant une rotation autour de l’axe Z s’exprime par le problème
suivant :

Connaissant x, y et , quelles sont les nouvelles coordonnées de P’ résultant de la rotation du


point P dans le plan XY ?

y x x
P P’
y y
P' (x', y')

r
P (x, y)

x
0
Figure 3.4 : Rotation d’un point P

En se référant aux lois du sinus et du cosinus, les expressions 1 et 2 suivantes permettent le


calcul des coordonnées x’ et y’ exprimées en fonction de r, et .

Loi du cosinus : cos cos cos sin sin


Loi du sinus : sin sin cos cos sin

x r cos r cos cos r sin sin 

y r sin r sin cos r cos sin 

Or, les paramètres connus sont les coordonnées x et y du point P ainsi que l’angle de rotation .
Il est donc nécessaire d’exprimer r et en fonction de x et y et de substituer leur expression
dans les relations 1 et 2 :

x r cos  y r sin 

 et  dans   x x cos y sin


 et  dans   y y cos x sin

Nous obtenons donc le résultat final, soit les coordonnées x’, y’ du point ayant subi une rotation
d’un angle autour de l’axe z.

x x cos y sin
y x sin y cos

3.4
Ces deux expressions peuvent maintenant être exprimées sous forme matricielle,

x cos sin x
y sin cos y
P' RZ P

Par convention, nous utiliserons la notation Ri pour exprimer toute matrice de rotation autour
d’un axe i. Nous verrons à la dernière section les rotations dans l’espace impliquant les matrices
de rotation autour de chacun des axes x, y et z.

3.3 Changement d’échelle

Le changement d’échelle consiste à modifier la dimension et parfois la position d’un objet par
rapport à un système de référence donné. Le changement d’échelle peut être symétrique ou
non symétrique selon chacun des axes du référentiel. Dans le cas d’une transformation
symétrique, les dimensions de l’objet sont altérées d’un facteur correspondant à celui spécifié
mais celles-ci conservent la même proportion de sorte que la forme de l’objet demeure
identique. Le changement d’échelle antisymétrique modifie la forme de l’objet, puisque la
proportion d’amplification des dimensions est différente selon chacun des axes. Considérons un
exemple simple afin d’illustrer le changement d’échelle et la matrice de transformation y étant
associée :

P2 '
y

P 2 (2, 2)

P 1 (0, 0)
x
Figure 3.5 : Changement d’échelle appliqué à une droite

On veut faire un changement d’échelle correspondant à un facteur 2 selon chacun des axes
pour la droite illustrée.

L’opération de changement d’échelle consiste à multiplier les coordonnées de chacun des


points de la droite par le facteur 2. Les paramètres sx et sy expriment respectivement la valeur
de changement d’échelle selon chacun des axes x et y.

x1 x1 sx sx 2
y1 y1 s y sy 2

3.5
Dans le cas de la droite, les points P1 et P2 transformés deviennent donc :

x1 0 x2 4
y1 0 y2 4

Le changement d’échelle peut également être représenté sous forme matricielle :

x1 sx 0 x1 x1 s x 0
y1 0 sy y1 0 y1 s y

sx 0
La matrice s = est appelée matrice de changement d’échelle en 2D.
0 sy

Exemple pour un carré

Si on veut faire un changement d’échelle pour le carré suivant (sommets a, b, c et d), on doit
multiplier les coordonnées de chacun des sommets par la matrice S traduisant le changement
selon chacun des axes.

Le carré changera alors de forme et de dimension selon la valeur des facteurs sx et sy .

Lorsque sx = sy  La géométrie conserve sa forme (proportions) mais les


dimensions de celle-ci sont différentes.

Lorsque sx sy  La géométrie est déformée (rectangle au lieu d’un carré) et les


dimensions de celle-ci sont différentes.

d' c'

d c

b'
a' a x
b
Figure 3.6 : Changement d’échelle appliqué à un carré

0 2 2 0
a= b= c= d=
0 0 2 2

3.6
On veut un changement d’échelle de 2 selon l’axe x et de 2 selon l’axe y :

2 0
La matrice S est donc S=
0 2

Pour obtenir le carré transformé, on applique la matrice S à chacun des sommets a, b, c et d :

2 0 0 0
a =
0 2 0 0
(2 x2) (2 x 1) (2 x 1)

2 0 2 4
b =
0 2 0 0

2 0 2 4
c =
0 2 2 4

2 0 0 0
d =
0 2 2 4

Si aucun point du carré « abcd » n’est confondu avec le système d’axe, alors le carré subira un
effet de translation en plus du changement de forme ou de dimension de celui-ci. Effectivement
si le point « a » avait comme coordonnées non pas (0,0) mais plutôt (0.5,0.5), alors ce point
transformé aurait les coordonnées (1,1). Le carré aurait donc subit une translation selon chacun
des axes égale à (sx–1)*xa et (sy –1)*ya.

3.4 Miroir ou symétrie

L’opération de symétrie consiste à reproduire la réciproque d’un ensemble d’éléments ou


d’objets par rapport à une référence spécifiée. Dans tout système de CAO, le dialogue de
l’interface usager impliquera donc des éléments maîtres à reproduire et un élément de référence
à partir duquel le miroir sera calculé. Le cas général du calcul de la symétrie implique les
transformations de base déjà vues soit la translation et la rotation. Afin d’introduire ce calcul,
commençons par le cas simple, c’est-à-dire une opération de miroir ou de symétrie par rapport à
l’axe x ou l’axe y du système cartésien. Le cas général en 2-D sera par la suite explicité.

Cas simple de calcul de la symétrie


On veut faire la symétrie du segment de droite P1 P2 par rapport à l’axe y ou au plan ZX dans
le cas 3D.

3.7
y
P2

P1

x
P1 '

P2'

Figure 3.7 : Miroir appliqué à une droite

Le point P1 devient alors P1’ et P2 devient P2’ : les coordonnées en x demeurent les mêmes,
mais les coordonnées en y deviennent négatives.

1 4
P1 P2
1 3
1 4
P1 P2
1 3

L’opération effectuée peut également se traduire sous forme matricielle, où la matrice My


représente la symétrie par rapport à l’axe Y :

x 1 x x 1 0 x
y 1 y y 0 1 y

P’ = My P

Similairement, une symétrie par rapport à l’axe des x serait obtenue par le produit matriciel entre
la matrice de symétrie Mx et le point P à transformer. Dans ce cas, la coordonnée en x devient
négative alors que la coordonnée en y demeure la même.

x 1 0 x
y 0 1 y

P’ = Mx P

3.8
3.5 Introduction aux coordonnées homogènes et à la concaténation des
transformations

On veut maintenant effectuer une opération de « miroir » ou de symétrie par rapport à un axe
quelconque A-A. La technique consiste à ramener l’axe de symétrie sur l’axe x et à appliquer la
matrice de symétrie par rapport à cet axe pour l’ensemble des points. Par la suite, après calcul
de la symétrie, la démarche inverse est appliquée afin de ramener l’axe de symétrie A-A à sa
position originale.

P3 A

P2 (50, 60) 30

P1
P2 '

A P3 '
P1 '
(16, 24)
x
0
Figure 3.8 : Miroir par rapport à un axe quelconque

Étapes à suivre pour effectuer la symétrie :

1- Translation de la droite A-A et des points vers l’origine 0.


Tx = -16
Ty = -24

2- Rotation de la droite et des points de –30o par rapport à l’axe z.

3- Symétrie des points par rapport à l’axe y (droite A-A est maintenant confondue à l’axe x).

4- Rotation inverse de +30o par rapport à l’axe z.

5- Translation inverse de Tx = 16 et Ty = 24 de la droite et des points.

On a donc cinq (5) matrices à bâtir !

50
À titre d’exemple, appliquons la symétrie au point P2
60

3.9
Les coordonnées résultantes du point P2 sont obtenues en effectuant chacune des cinq
opérations, l’une après l’autre selon l’ordre spécifié. L’équation ci-bas illustre cet ordre très
important à respecter. Le calcul peut débuter par le premier terme à droite de la relation
représentant la translation T1 et se terminer par le terme le plus à gauche représentant la
translation T5.

x '2 16 cos 30 sin 30 1 0 cos ( 30) sin ( 30) 16 50


y '2 24 sin 30 cos 30 0 1 sin ( 30) cos ( 30) 24 60

5 - Translation 4 - Rotation 3 - Symétrie 2 - Rotation 1 - Translation


Tx = 16 +30o par rapport -30o Tx = -16
Ty = 24 ày Ty = -24

T2 R2 M1 R1 T1

Cela fait beaucoup d’opérations à répéter pour calculer la symétrie à chaque point. On
remarque cependant que pour arriver au résultat final, on fait la multiplication successive des
matrices de rotation et de symétrie et on effectue deux opérations de translation représentées
par des additions matricielles. Afin d’éviter le calcul de toutes ces transformations en chacun des
points définissant un modèle, l’ensemble de ces matrices sera mis sous la forme d’une seule
matrice résultante « C ». Ainsi, l’effort calcul nécessaire à la transformation d’un objet est
significativement réduit.

On veut donc : P2' C . P2

Concernant les matrices de rotation et la matrice de symétrie, il n’y a pas de problème :

- ce sont des multiplications


- les matrices carrées sont du même ordre.

Par contre, on a un problème avec l’opération de translation qui implique une addition
matricielle ! On doit donc trouver un moyen d’exprimer la translation en une opération de
multiplication matricielle :

P T P
x Tx x x x Tx
y Ty y y y Ty

Donc, par le biais d’une multiplication matricielle, on veut obtenir : x x Tx


y y Ty

3.10
La construction de la matrice suivante nous permet d’obtenir le calcul souhaité. On remarque
qu’il a été nécessaire d’introduire une troisième coordonnée 1 aux coordonnées x, y des points
P et P’ pour pouvoir effectuer l’opération de translation par le biais d’une multiplication
matricielle.

x x
1 0 Tx x x o y Tx
y y
0 1 Ty y o x y Ty
1 1

Dans le plan, chaque point est exprimé en matrice colonne de dimension (3 x 1). Notre
problème de symétrie peut maintenant s’exprimer ainsi :

x'2 x2
1 0 16 cos 30 sin 30 1 0 cos( 30) sin( 30) 1 0 16
y'2 y2
0 1 24 sin 30 cos 30 0 1 sin ( 30) cos ( 30) 0 1 24
1  1
2x3 2x 2

On a un nouveau problème ! On multiplie une matrice 2 x 3 avec une matrice 2 x 2, ce qui est
impossible. Pour régler ce problème, on doit avoir des matrices carrées dont la dimension doit
correspondre à la taille des points exprimés en coordonnées homogènes, c’est-à-dire 3 x 3. En
2D, toutes les matrices de transformation sont de dimension (3 x 3). Nous verrons qu’en 3D, les
matrices de transformation sont de dimension (4 x 4).

Les matrices de translation et de rotation pour notre problème de symétrie s’expriment donc en
matrices carrées par l’ajout d’une ligne (0 0 1) et d’une colonne (0 0 1) le cas échéant. Le
calcul de multiplication matriciel est ainsi rendu possible :

x'2 1 0 16 C30 S30 0 1 0 0 C 30 S 30 0 1 0 16 x2


y'2 0 1 24 S30 C30 0 0 1 0 S 30 C 30 0 0 1 24 y2
1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1

P2' T2 R2 M1 R1 T1 P2

Dans le cas du point P2, on peut calculer les coordonnées de P2' en effectuant les multiplications
matricielles soit en partant de la droite vers le gauche ou de la gauche vers la droite. Pour les
calculs, il est plus facile de remplacer les sinus et cosinus par les expression fractionnaires
(cos(30) = 3 / 2, sin(30) = 1/2, cos(-30) = 3 / 2, sin(-30) = -1/2).

3.11
P2' = T2 R2 M1 R1 T1 P2
3x3 3x1
3x3
3x3 3x3
3x1
3x1
3x1 = 3x3
3x1

3x1

Par convention, nous calculerons les coordonnées de P2' en partant de la droite vers la gauche :

34 1 0 16 50
36 0 1 24 60
1 0 0 1 1
T1 P2

17 3 18 C ( 30) S ( 30) 0 34 3 2 12 0 34
18 3 17 S ( 30) C ( 30) 0 36 12 3 2 0 36
1 0 0 1 1 0 0 1 1
R1

17 3 18 1 0 0 17 3 18
17 18 3 0 1 0 18 3 17
1 0 0 1 1
M1

17 18 3 3 2 12 0 17 3 18
17 3 18 12 3 2 0 17 18 3
1 0 0 1 1
R2

x 2' 64.177 33 18 3 1 0 16 17 18 3
y 2' 35.445 17 3 6 0 1 24 17 3 18
1 1 1 0 0 1 1
P2' T2

3.12
Tel que mentionné, pour ne pas effectuer cette série de multiplications à chacun des points, on
peut calculer une matrice unique «C» représentant le produit «ordonné» de chacune des
matrices. Cette opération se nomme la concaténation des transformations. L’ordre des
multiplications est important puisque le produit matriciel n’est pas commutatif.

C = T2 R2 M1 R1 T1 puis P' C P

Dans le cas de notre exemple, la matrice C est la suivante :

12 3 2 8 12 3 0.5 0.866 12.784


C 3 2 1 2 36 8 3 0.866 0.5 22.144
0 0 1 0 0 1

Vous pouvez vérifier que le calcul de P2' à partir de cette matrice donne le même résultat que le
calcul fait précédemment en 5 étapes.

De plus, les points P1' et P3' peuvent être facilement calculés car la matrice concaténée demeure
la même. Ainsi on obtient :

12 3 2 8 12 3 25 36.088
'
P1 C P1 3 2 12 36 8 3 42 22.795
0 0 1 1 1

12 3 2 8 12 3 50 79.764
'
P3 C P3 3 2 12 36 8 3 78 26.445
0 0 1 1 1

3.6 Les transformations géométriques dans l’espace

Contrairement aux transformations dans le plan, les points définissant les géométries en 3D
sont exprimés en matrice colonne de dimension 4 x 1, soit :

x
y
z
1

Les matrices de transformation rigide sont donc de dimension 4 x 4 plutôt que 3 x 3 comme
dans le cas des transformations dans le plan. Le tableau 3.1 donne l’expression des matrices de
transformation exprimées à la fois dans le plan et dans l’espace. Dans le cas de la rotation en
3D, il est à remarquer que trois matrices différentes sont utilisées afin de distinguer le plan dans

3.13
lequel la rotation s’exerce. Ainsi, la matrice de rotation dans le plan YZ, soit Rx, aura une ligne et
une colonne identité correspondant à l’axe X puisque l’ensemble des coordonnées suivant cet
axe ne sont pas affectées par la rotation. Similairement, pour le cas de la symétrie, trois
matrices permettent d’exprimer cette opération dans les trois axes respectifs X, Y et Z.

Opération 2 dimensions 3 dimensions

1 0 Tx 1 0 0 Tx
T = 0 1 Ty 0 1 0 Ty
Translation T=
0 0 1 0 0 1 Tz
0 0 0 1

C S 0 1 0 0 0 C 0 S 0
R= S C 0 0 C S 0 0 1 0 0
Rx = Ry =
0 0 1 0 S C 0 S 0 C 0
0 0 0 1 0 0 0 1
Rotation C : cosinus
C S 0 0
S : sinus
S C 0 0
Rz =
0 0 1 0
0 0 0 1

Sx 0 0 Sx 0 0 0
Changement S= 0 Sy 0 0 Sy 0 0
S=
d’échelle 0 0 1 0 0 Sz 0
0 0 0 1

1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0
1 0 0 Mx = My =
0 0 1 0 0 0 1 0
Mx = 0 1 0
0 0 0 1 0 0 0 1
0 0 1
Symétrie 1 0 0 0
1 0 0
0 1 0 0
My = 0 1 0 Mz =
0 0 1 0
0 0 1
0 0 0 1
Par rapport à la
coordonnée inversée Par rapport à la coordonnée inversée

Tableau 3.1 : Matrices de transformation géométrique

3.14
Pour illustrer la manipulation des matrices de transformation en 3 dimensions, imaginons qu’un
logiciel de CAO dispose de seulement 2 primitives de base pour la modélisation de pièces. La
première primitive est un cube unitaire dont l’origine des axes XL, YL et ZL est située sur un des
sommets du cube. La seconde primitive est un cylindre dont le diamètre et la longueur sont
unitaires. De plus, l’origine des axes XL, YL et ZL du cylindre est située au centre d’une des deux
faces planes. Dans les deux cas, l’indice « L » a été ajouté au système d’axes afin d’indiquer
qu’il s’agit d’un repère « local » propre à chaque primitive.
ZL
ZL

1.0

1.0
1.0 YL
YL 1.0
1.0

XL XL
Cube Cylindre
Figure 3.9 : Primitives de base unitaires

Avec ce logiciel de CAO, on désire maintenant construire la pièce suivante qui est constituée
d’une base, d’un trou et d’un arbre circulaire. La pièce est positionnée dans l’espace par rapport
à un système d’axes XG, YG et ZG. L’indice « G » indique qu’il s’agit d’un repère « global » à
partir duquel les repères locaux de chaque primitive vont être définis.

ZG
Arbre
Base

YG

XG
Trou
Figure 3.10 : Pièce à modéliser avec les primitives de base unitaires

Pour construire la pièce, l’usager doit définir l’arbre binaire (ou arbre CSG) en utilisant les
primitives de base et en spécifiant la transformation géométrique qui doit être appliquée à
chacune d’elle. La première étape consiste à identifier le nombre de primitives nécessaires, soit
trois dans le cas présent : un cube (pour la base rectangulaire) et deux cylindres (un pour le trou
et l’autre pour l’arbre) selon l’arbre binaire suivant :

3.15
Base Arbre Trou
Figure 3.11 : Arbre binaire sans les transformations géométriques à appliquer.

Il faut maintenant définir les transformations géométriques à appliquer à chaque primitive pour
obtenir la pièce finale illustrée à la figure 3.10. En fait, il s’agit d’identifier, d’ordonner et de
quantifier les transformations géométriques toutes définies par rapport au repère « global » (afin
d’avoir une référence fixe qui demeure inchangée), et cela après avoir fait coïncider le repère
« local » d’une primitive de base sur le repère « global » de la pièce.

Transformations géométriques appliquées à la base


En observant la position de la base dans la pièce finale par rapport au repère global X G-YG-ZG
de la figure 3.10, on note qu’elle ne subit aucune translation, ni rotation. Cependant, le cube
unitaire servant de primitive de base doit subir des changements d’échelle pour arriver aux
dimensions de la base. Ainsi, la base est donc obtenue en appliquant la transformation
géométrique suivante au cube unitaire :
1- Changement d’échelle par rapport à l’origine avec SX=2.0, SY=1.0 et SZ=2.0

La matrice concaténée à appliquer au cube unitaire pour obtenir la base est donc simplement
une matrice de changement d’échelle :

2 0 0 0
0 1 0 0
C S
0 0 2 0
0 0 0 1

Transformations géométriques appliquées à l’arbre


Le cas de l’arbre est plus complexe car en plus des changements d’échelle pour faire passer le
diamètre de 1.0 à 1.5 (facteur d’échelle de 1.5 selon YL et ZL) et la longueur de 1.0 à 2.0
(facteur d’échelle de 2.0 selon XL), le cylindre doit subir une translation et une rotation. La
rotation est nécessaire car l’axe de révolution de la primitive de base est parallèle à l’axe X L du
repère local, alors que l’axe de révolution de l’arbre est parallèle à YG du repère global. Une
rotation de la primitive de base de +90 selon l’axe ZG est donc nécessaire. Enfin, le cylindre
doit finalement être translaté de 1 unité selon les trois axes X G, YG et ZG afin qu’il se positionne
convenablement dans l’espace. Ainsi, l’arbre est obtenu en appliquant les transformations
géométriques suivantes sur le cylindre unitaire (primitive de base) dans l’ordre indiqué :
1- Changement d’échelle par rapport à l’origine avec SX=2.0, SY=1.5 et SZ=1.5
2- Rotation de +90 autour de l’axe ZG
3- Translation de TX=1.0, TY=1.0 et TZ=1.0

3.16
La matrice concaténée à appliquer au cylindre unitaire est donc la suivante :

1 0 0 1 C (90) S (90) 0 0 2 0 0 0 0 1.5 0 1


0 1 0 1 S (90) C (90) 0 0 0 1.5 0 0 2 0 0 1
C T R S
0 0 1 1 0 0 1 0 0 0 1.5 0 0 0 1.5 1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

Transformations géométriques appliquées au trou


Puisque l’axe de révolution de la primitive de base est parallèle à l’axe X L et que l’axe de
révolution du trou est parallèle à l’axe XG, aucune rotation ne doit donc être appliquée au
cylindre unitaire pour obtenir le trou. Cependant, tout comme précédemment avec l’arbre, une
mise à l’échelle suivie d’une translation doivent être employées pour transformer le cylindre
unitaire vers le trou. En ce qui concerne le changement d’échelle, le diamètre de 1.0 de la
primitive de base doit passer à 0.5 (facteur d’échelle de 0.5 selon YG et ZG) et la longueur de
1.0 doit devenir 2.0 après la transformation (facteur d’échelle de 2.0 selon X G). Pour ce qui est
de la translation, le cylindre doit être déplacé de 0.5 unité selon YG et de 1 unité selon ZG. Ainsi,
le trou est obtenu en appliquant les transformations géométriques suivantes sur le cylindre
unitaire (primitive de base) dans l’ordre indiqué :
1- Changement d’échelle par rapport à l’origine avec SX=2.0, SY=0.5 et SZ=0.5
2- Translation de TX=0.0, TY=0.5 et TZ=1.0

La matrice concaténée à appliquer au cylindre unitaire pour obtenir le trou est donc la suivante :

1 0 0 0 2 0 0 0 2 0 0 0
0 1 0 0.5 0 0.5 0 0 0 0.5 0 0.5
C T S
0 0 1 1 0 0 0.5 0 0 0 0.5 1
0 0 0 1 0 0 0 1 0 0 0 1

En résumé, pour construire la pièce illustrée à la figure 3.10, trois primitives de base doivent être
employées et transformées par les matrices de concaténation calculées précédemment tout en
respectant les opérateurs booléens et la séquence donnés dans l’arbre binaire suivant :

2 0 0 0 0 1.5 0 1 2 0 0 0
0 1 0 0 2 0 0 1 0 0.5 0 0.5
Base 0 0 2 0 Arbre 0 0 1.5 1 Trou 0 0 0.5 1
0 0 0 1 0 0 0 1 0 0 0 1

Figure 3.12 : Arbre binaire avec les transformations géométriques à appliquer.

3.17
Étudions maintenant un autre exemple de transformation géométrique en 3 dimensions. Le
cylindre tronqué suivant doit subir un rotation de +90 selon l’axe A-A, puis une translation de
+300 unités le long de ce même axe. Calculer la nouvelle position des points
P1(92.9065, 155.563, -93.6396) et P2(127.548, 155.563, -33.6396) après avoir subi ces
transformations géométriques.

Y P2
A

P1

45

30

Z
X
Figure 3.13 : Cylindre tronqué devant subir des transformations géométriques dans l’espace.

Pour résoudre le problème, la première étape consiste à identifier l’ordre des transformations
géométriques qui doivent être appliquées :
1. Rotation de -30 autour de l’axe des Y
2. Rotation de -45 autour de l’axe des Z
3. Rotation de +90 autour de l’axe des X
4. Translation de +300 unités suivant l’axe des X
5. Rotation de +45 autour de l’axe des Z
6. Rotation de +30 autour de l’axe des Y

Les deux premières transformation permettent de faire coïncider l’axe A-A avec l’axe X, tandis
que les étapes 5 et 6 permettent de ramener l’axe A-A à sa position initiale. Par la suite, la
matrice concaténée peut être calculée comme suit :

C = R+30Y R+45Z TX R+90X R-45Z R-30Y

C 30 0 S 30 0 C 45 S 45 0 0 1 0 0 300 1 0 0 0 C 45 S 45 0 0 C 30 0 S 30 0
0 1 0 0 S 45 C 45 0 0 0 1 0 0 0 C 90 S 90 0 S 45 C 45 0 0 0 1 0 0
C
S 30 0 C 30 0 0 0 1 0 0 0 1 0 0 S 90 C 90 0 0 0 1 0 S 30 0 C 30 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

3 2 0 12 0 2 2 2 2 0 0 1 0 0 300 1 0 0 0 2 2 2 2 0 0 3 2 0 12 0
0 1 0 0 2 2 2 2 0 0 0 1 0 0 0 0 1 0 2 2 2 2 0 0 0 1 0 0
C
12 0 3 2 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 12 0 3 2 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

38 3 2 4 4 2 3 8 75 6 .375 .7866 .4906 183.7117


3 2 4 12 6 1 4 150 2 .0795 .5 .8624 212.132
C
3 4 2 8 6 1 4 18 75 2 .9236 .3624 .125 106.066
0 0 0 1 0 0 0 1

3.18
Avec la matrice concaténée C maintenant calculée, il est facile de déterminer la nouvelle
position des points P1 et P2 de la façon suivante :

.375 .7866 .4906 183.7117 92.9065 294.9726


P1’ = C P1 = .0795 .5 .8624 212.132 155.563 378.0480
.9236 .3624 .125 106.066 93.6396 147.2089
0 0 0 1 1 1

.375 .7866 .4906 183.7117 127.548 337.3992


P2’ = C P2 = .0795 .5 .8624 212.132 155.563 329.0583
.9236 .3624 .125 106.066 33.6396 171.7042
0 0 0 1 1 1

Les positions finales sont donc P1’(294.97, 378.05, -147.21) et P2’(337.40, 329.06, -171.70).
Ces positions ont été vérifiées avec un système de CAO et le résultat de ces transformations
géométriques est visuellement montré à la figure 3.14.

Figure 3.14 : Représentation visuelle des transformations géométriques appliquées au cylindre.

3.19
Exercices sur les transformations géométriques

1. Exercices sur les opérations matricielles de base

1 2 3 1
2 0 0 1 0 2
2 0 1 2 3 4 5 0
A= B= S= 0 3 0 T= 0 1 3 Q=
0 3 4 5 0 1 2 1
1 0 1 0 0 1
0 0 0 1
1 0 1 2 1
1
0 3 0 1 3 1
V= P1 = P2 = 0 P3 =
2 1 0 0 4 0
1
0 0 0 1 1

Faire les opérations matricielles suivantes à la main :

A+B S+T B+S

AB BA ST BT BP1 TP2 (AB)P1 A(BP1) AP1B TSP2 QVP3

2. Exercices sur les transformations géométriques en 2D

a) Calculer la position résultante de la droite si celle-ci subit une rotation de 45º autour de l’axe
Z dans le plan XY.

2 10
P1 P2
3 5

Y
P2

P1

b) Obtenir la matrice de concaténation qui est le résultat d’une translation de +5 selon x et de


+3 selon y, suivie d’une rotation de 30 par rapport à l’origine.

3.20
c) Obtenir la matrice de concaténation qui est le résultat d’une symétrie par rapport à x, suivie
d’une translation de –0.5 selon x, suivie finalement d’un changement d’échelle de 2 selon
les deux axes.

d) Un triangle subit une opération de miroir par rapport à l’axe A-A. Calculer la position
résultante du triangle.

1 4 1
P1 = P2 = P3 =
4 4 7

Y A
P3

35
30
P2
P1

A
X

e) Un rectangle subit une opération de changement d’échelle (agrandissement de 5 selon x et


réduction de 4 selon y) par rapport au point P1 situé à (5,4). Calculer la matrice de
concaténation qui effectue cette transformation géométrique et calculer les position P 1’ et
P2’.

5 6
P1 = P2 =
4 8

f) Calculer la matrice résultante C qui est le résultat d’une rotation de 30° autour de l’axe x,
puis d’une rotation de 45° autour de l’axe y, puis d’une rotation de 90° autour de l’axe z.

3.21
3. Exercices sur les transformations géométriques dans l’espace (3D)

a) Avec les deux primitives unitaires de base illustrées à la figure 3.9, construire l’arbre binaire
et déterminer toutes les matrices de transformation concaténées permettant d’obtenir la
pièce suivante en utilisant le moins possible de primitives de base. La réponse doit être
exprimée de la même manière qu’à la figure 3.12.

ZG

YG

XG

b) Même énoncé qu’en a).

ZG

YG
XG

3.22
c) Un cube dont les arêtes font 4 unités de longueur subit un changement d’échelle en 3D par
rapport à son centre comme le montre les figures suivantes. Calculer la matrice concaténée
permettant de transformer les positions initiales P1, P2, …, P8 vers les positions finales P1’,
P2’, …, P8’.

P8’ P7’
10 P8 P7

P5 P6
6 P5’ P6’

X
2 4 8 10
Z Z
P5 P6 P6 P7
6 6
5 P5’ P6’ 5 P6’ P7’
P1’ P2’ P2’ P3’
3 3
2 P1 P2 2 P2 P3

X Y
2 4 8 10 6 10

3.23
3.24
Chapitre 4
Courbes et surfaces

Les courbes sont très importantes en CAO car elles servent à modéliser et à visualiser les
arêtes d’un solide, à définir les trajectoires d’un balayage, à représenter l’intersection de deux
surfaces, à définir la section des profilés complexes, etc. De leur côté, les surfaces revêtent
également une importance particulière en CAO, plus spécifiquement dans certains domaines
tels l’aéronautique et l’automobile où le profil des corps est défini par des surfaces complexes. Il
est donc fréquent que l’ingénieur soit appelé à manipuler des courbes et des surfaces pour
modéliser des géométries qui seraient impossibles à créer avec des entités géométriques
simples (extrusions, solides de révolution, etc.).

Le présent chapitre se veut une introduction aux fondements théoriques et à la terminologie des
courbes et surfaces. Des ouvrages spécialisés [5,6,7] abordent ces thèmes de manière plus
rigoureuse. Les courbes sont discutées en premier lieu et il en est question au sens large. Par
exemple, les droites et les arcs de cercle sont également considérés comme des courbes. En
fait, une courbe peut être vue comme un élément uni-dimensionnel résultant d’un hypothétique
trait de crayon dans l’espace bi- ou tri-dimensionnel. Dans ce chapitre, l’emphase est mise sur
les courbes définies dans un espace bi-dimensionnel, mais toutes les notions vues sont
généralisables au cas tri-dimensionnel. En second lieu, les surfaces sont abordées. Étant donné
les exigences mathématiques requises pour étudier quantitativement les surfaces, seulement
quelques-unes d’entre elles sont abordées, tandis que les autres types de surfaces sont
présentés de manière qualitative dans un contexte de généralisation des notions vues lors de
l’étude des courbes.

4.1 Courbes

4.1.1 Formulation analytique des courbes

En CAO, l’utilisation de l’ordinateur nécessite que les courbes soient toutes décrites par une
équation mathématique afin qu’elles puissent être manipulées convenablement. Les courbes
sont traditionnellement représentées par des équations analytiques où les variables de
l’équation dépendent les unes des autres. Pour représenter l’arête rectiligne d’une pièce, un
système de CAO pourrait recourir à l’équation analytique d’une droite. Par exemple, l’équation
générale de la droite montrée à la figure 4.1 est :

y=mx+b (4.1)

m =  y  x
b

x
Figure 4.1 : Représentation d’une droite

4.1
Les constantes ‘m’ et ‘b’ de l’équation 4.1 représentent respectivement la pente m = y/x et
l’ordonnée à l’origine. L’équation est analytique et les variables x et y dépendent l’une de l’autre.
En fait, si la valeur de x est changée dans l’équation, la valeur de y en sera forcément affectée.

Le principal problème avec une telle représentation des droites concerne la possibilité de
dégénérescence, c’est-à-dire l’impossibilité de représenter des droites verticales dans le cas
présent. En effet, dans un tel cas, la valeur de la constante ‘m’ doit tendre vers l’infini, ce qui est
numériquement impossible à réaliser. De plus, il y a absence de frontières car la droite n’a pas
de début, ni de fin. En effet, la droite n’a pas de frontières et elle débute à x =  et se termine à
x = +. Pour représenter quelque chose de fini comme l’arête rectiligne d’un solide, il faut
spécifier des informations supplémentaires afin de définir les frontières de la droite (entre
quelles valeurs de x ou de y la droite se situe). Enfin, il est impossible de représenter une
courbe dans l’espace 3D avec la formulation analytique, ce qui constitue probablement le
principal inconvénient.

Étudions maintenant une autre courbe analytique, le cas du cercle de rayon R centré à l’origine
et illustré à la figure 4.2. L’équation analytique de ce cercle est la suivante :

R2 = x2 + y2 (4.2)

R
x

Figure 4.2 : Représentation d’un cercle de rayon R

Encore une fois, les variables x et y dépendent l’une de l’autre, mais cette fois de façon non-
linéaire. Avec une telle représentation analytique, les systèmes de CAO ont de la difficulté à
gérer cette équation principalement parce qu’il peut exister plus d’une valeur de y associées à
une valeur de x, et vice-versa. Ainsi, si on demande quelle est la valeur de y associée à x = R/2,
il y a deux réponses possibles, soient y  R 3 / 2 et y  R 3 / 2 . Il y a donc une ambiguïté
pour l’ordinateur lorsque vient le temps de choisir l’une ou l’autre des deux alternatives. Cette
multiplicité de solutions représente donc un inconvénient majeur à l’utilisation de formulations
analytiques pour la modélisation numérique des courbes.

4.1.2 Formulation paramétrique des courbes analytiques

Pour éviter les problèmes associés à la formulation analytique des courbes, la plupart des
systèmes de CAO ont recours à une formulation paramétrique pour la représentation des entités
géométriques. Dans une telle formulation, il s’agit d’associer un paramètre, habituellement ‘u’ ou
‘t’, le long de la courbe. Généralement, le paramètre varie entre 0.0 et 1.0 comme le montre la
figure 4.3. Le paramètre prend une valeur de 0.0 au début de la courbe, et de 1.0 à la fin de la
courbe. La valeur du paramètre augmente graduellement lorsque la trajectoire de la courbe est

4.2
balayée. Par exemple, le point A sur la courbe pourrait être obtenu lorsque le paramètre prend
une valeur u = 1/2. Le principal but de la formulation paramétrique est de rendre indépendantes
les différentes variables qui décrivent une courbe. Une telle démarche nécessite alors de
recourir à plus d’une équation pour représenter la courbe. Par exemple, dans la forme
analytique du style y = y(x), les variables x et y sont interdépendantes à l’intérieur de la même
équation. Par contre, dans une forme paramétrique, la courbe est décrite par deux équations
indépendantes x = x(u) et y = y(u), toutes deux exprimées en fonction du paramètre u.

y
Fin
u U=1

Début
U=0
x
A
U=1/2
Figure 4.3 : Schématisation d’une courbe paramétrique

Les principaux avantages de la formulation paramétrique des courbes analytiques sont les
suivants :

- La formulation paramétrique évite de devoir définir des frontières qui bornent les courbes car
ces dernières débutent et se terminent toujours respectivement à u = 0 et u = 1.

- Pour une certaine valeur du paramètre u, il n’existe qu’une position (x, y) correspondante, ce
qui évite toute ambiguïté lorsque vient le temps de générer des courbes. Cette particularité
est le résultat de l’indépendance des équations de la courbe et de l’augmentation continuelle
du paramètre u entre le début et la fin de la courbe.

- La formulation paramétrique évite toute dégénérescence, le cas de la droite de pente infinie


par exemple.

- Il est facile de générer des courbes en 3D en manipulant simultanément 3 équations :


x = x(u), y = y(u) et z = z(u)

Exemple 1 : Équations paramétriques d’une droite


Le mandat est d’obtenir les équations paramétriques de la droite illustrée à la figure 4.4. La
droite est délimitée par les deux points (x, y) = (-1, 1.5) et (x, y) = (2, 2.3).

U=1
2.3

U=0
1.5

x
-1 2

Figure 4.4 : Droite délimitée par deux points

4.3
Étudions dans un premier temps l’équation paramétrique de x en fonction du paramètre u. On
sait que x = –1 lorsque u = 0 et x = 2 lorsque u = 1. En posant l’hypothèse que u varie de façon
linéaire par rapport à x, il est possible d’écrire l’équation suivante :

x(u) = –1 + (2 – –1) u = 3u – 1 (4.3)

Un raisonnement similaire peut être réalisé pour l’équation paramétrique de y en fonction de u.


Dans ce cas, on sait que y = 1.5 lorsque u = 0 et y = 2.3 lorsque u = 1. L’équation paramétrique
de y(u) peut donc être facilement obtenue :

y(u) = 1.5 + (2.3 – 1.5) u = 0.8u + 1.5 (4.4)

Les expressions 4.3 et 4.4 représentent les équations paramétriques de la droite montrée à la
figure 4.4. Avec ces équations, il est possible de vérifier que lorsque u = 0, les coordonnées x et
y sont respectivement –1 et 1.5. De la même façon, on peut vérifier que les coordonnées du
point d’arrivée, notamment x = 2 et y = 2.3, sont effectivement obtenues lorsque u = 1. Enfin,
étant donné les variations linéaires de u par rapport à x et y, le point (x, y) = (0.5, 1.9) qui est
situé exactement entre les deux extrémités de la droite peut être calculé en imposant u = 1/2.

Exemple 2 : Équations paramétriques d’une parabole


Les équations paramétriques de la parabole y = 0.5 x2 + 1 comprise entre x=0 et x=2 sont
maintenant à déterminer. Cette parabole est schématisée à la figure 4.5.
y

3 U=1

U
1
U=0

2 x
Figure 4.5 : Segment de parabole

Dans un premier temps, nous allons faire l’hypothèse que le paramètre u varie de façon linéaire
par rapport à la coordonnée x des points appartenant à la parabole. Ainsi, nous savons que
x = 0 et x = 2 lorsque u = 0 et u = 1 respectivement, d’où :

x(u) = 0 + (2 – 0) u = 2u (4.5)

En remplaçant l’équation paramétrique 4.5 dans l’équation analytique de la parabole


y = 0.5 x2 + 1, on obtient la seconde équation paramétrique :

y(u) = 0.5 (2u)2 +1 = 2u2 + 1 (4.6)

4.4
Encore une fois, une brève validation des équations paramétriques est effectuée en vérifiant que
les points (x, y) = (0, 1) et (x, y) = (2, 3) sont respectivement obtenus lorsque u = 0 et u = 1.

Cette façon de procéder, c’est-à-dire en paramétrisant linéairement une des équations puis en
remplaçant le résultat dans l’équation analytique, représente la méthode généralement
employée pour obtenir les équations paramétriques d’un polynôme. En fait, l’exemple précédent
de la droite délimitée par deux points aurait pu être réalisé de façon similaire, mais il aurait fallu
dans un premier temps déduire l’équation analytique de la droite y = m x + b.

Exemple 3 : Équations paramétriques d’un arc de cercle


Dans ce troisième exemple, les équations paramétriques d’un arc de cercle de rayon R = 6
balayant un angle variant de  = 45 et  = 180 sont à déterminer. Comme le schématise la
figure 4.6, l’angle  est mesuré par rapport à l’axe des x dans le sens anti-horaire et l’arc de
cercle est centré au point (xc, yc) = (4, 3).

y
U
y
U=0
R 
U=1
yc

xc x x

Figure 4.6 : Arc de cercle décentré par rapport à l’origine

L’équation analytique d’un arc de cercle est présentée à l’équation 4.2. Pour obtenir les
équations paramétriques des cercles ou des arcs de cercle, il est préférable d’employer un
paramètre qui est linéarisé non pas par rapport à l’axe des x ou des y, mais plutôt par rapport à
l’angle . À une certaine position  (voir figure 4.6), la courbe passe par le point (x, y) dont les
coordonnées sont données par les équations suivantes :

x = xc + R cos() (4.7)
y = yc + R sin()

Les équations 4.7 sont déjà paramétriques car les positions x et y des points appartenant à la
courbe sont décrites par des équations indépendantes. Par contre, le paramètre est  et il ne
varie pas entre 0 et 1, mais plutôt entre 45 et 180. Il s’agit donc de remplacer  par u dans les
équations 4.7 selon la relation  = 45 + 135 u. Les équations paramétriques de l’arc de cercle
deviennent alors :

x(u) = 4 + 6 cos(45 + 135 u) (4.8)


y(u) = 3 + 6 sin(45 + 135 u)

4.5
4.1.3 Courbes définies par une série de points

L’obtention de l’équation d’une courbe qui passe par une série de points est un problème
fréquemment rencontré en CAO. Par exemple, la figure 4.7 montre le profil d’une aile d’avion qui
a été obtenu en faisant passer une courbe par une série de points. Cette technique est
fréquemment utilisée en aéronautique et dans le domaine de l’automobile. L’exemple de la
figure 4.8 concerne le domaine de l’imagerie médicale où les os sont modélisés à partir d’un
nuage de points dans l’espace [6]. Des courbes sont dans un premier temps créées à partir des
points et des surfaces sont finalement générées à partir des courbes.

Figure 4.7 : Profil d’une aile d’avion défini à partir d’une série de points

Figure 4.8 : Construction d’un tibia à partir d’un nuage de points

Dans les sections qui suivent, les principales techniques de construction de courbes à partir
d’une série de points seront brièvement présentées. Parmi celles-ci, on retrouve les polynômes
de Lagrange, les splines cubiques et les courbes B-splines.

4.1.3.1 Polynôme de Lagrange

Par définition, un polynôme de degré « i » est une fonction dont la forme générale est la
suivante :

y(x) = ci xi + ci-1 xi-1 + ci-2 xi-2 + … + c2 x2 + c1 x + c0 (4.9)

où les ci sont des constantes. La droite est la courbe la plus simple qui puisse relier deux points.
Or, puisque l’équation d’une droite est y = m x + b (ou encore y = c1x + c0), il est possible de
conclure qu’un polynôme de degré 1 peut relier deux points. Si maintenant une courbe doit
passer par 3 points, une parabole dont l’équation générale est y = a x2 + b x + c (ou encore
y = c2 x2 + c1 x + c0) peut être employée. La parabole, un polynôme de degré 2, permet donc
d’obtenir l’équation d’une courbe qui passe par 3 points. En généralisant, un polynôme de degré
« i », appelé polynôme de Lagrange, peut donc être intuitivement employé pour obtenir
l’équation d’une courbe qui passe par « i+1 » points.

4.6
Imaginons maintenant la situation suivante où une pièce existante relativement complexe, en
l’occurrence celle montrée à la figure 4.9, doit être modélisée dans un système de CAO.

Figure 4.9 : Représentation de la pièce sur laquelle quelques points sont prélevés

Pour y arriver, des points sont mesurés directement sur la pièce. Avec ces points, des courbes
et des surfaces sont ensuite générées afin de créer un solide. Dans le cas présent, seulement
9 points, représentés par les symboles ‘x’ à la figure 4.10, sont mesurés sur l’arête supérieure
de la pièce. En réalité, un plus grand nombre de points seraient utilisés pour modéliser
convenablement la pièce.

Figure 4.10 : Positionnement des 9 points prélevés sur la pièce

Les coordonnées x et y des 9 points prélevés sont données au tableau 4.1 et reportées sur un
graphique à la figure 4.11. Dans cette dernière figure, les symboles ‘x’ représentent la position
des points, tandis que le chiffre les accompagnant indique le numéro des points. Ainsi, l’arête
est formée en rejoignant le point 1 au point 2, le point 2 au point 3, et ainsi de suite.

Tableau 4.1 : Coordonnées des points prélevés sur l’arête de la pièce

Numéro du point 1 2 3 4 5 6 7 8 9

Coordonnée x -0.85 -0.75 0.20 0.40 0.90 0.70 -0.20 -0.35 -1.00

Coordonnée y 0.9744 1.2207 1.8615 2.0039 1.1523 0.8443 0.1399 -0.0554 -1.6300

4.7
3

2.5
4
3
2

1.5 2 5
1
1 6

Coordonnée Y
0.5
7
8
0

-0.5

-1

-1.5
9
-2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Coordonnée X

Figure 4.11 : Disposition dans le plan x-y des 9 points prélevés

L’équation de la courbe qui passe par les 9 points pourrait directement être un polynôme de
Lagrange. Puisqu’il y a 9 points à relier par une seule équation, un polynôme de dedré 8 pourrait
être employé :

y  c8 x 8  c7 x 7  c6 x 6  c5 x 5  c 4 x 4  c3 x 3  c 2 x 2  c1 x  c0 (4.10)

Les 9 coefficients inconnus, de c0 à c8, sont déterminés en imposant que la courbe passe
exactement par les 9 points. Puisque les coordonnées x et y de chaque point sont connues, un
système de 9 équations à 9 inconnues est ainsi obtenu. La résolution de ce système d’équations
permet de calculer la valeur des coefficients inconnus. Le polynôme de Lagrange obtenu est
illustré à la figure 4.12 et son équation est la suivante :

x8 x7 x6 x4 x2
y      15x 5   18x 3   5x  1 (4.11)
2 5 10 20 50
3

2.5

1.5

1
Coordonnée Y
0.5

-0.5

-1

-1.5

-2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Coordonnée X

Figure 4.12 : Polynôme de Lagrange qui passe par les 9 points prélevés

4.8
Bien entendu, la courbe obtenue n’est aucunement satisfaisante car la forme de l’arête (figure
4.10) ne ressemble en rien au polynôme de Lagrange calculé (figure 4.12). La raison principale
est qu’une équation polynomiale du type y = y(x) n’admet qu’une seule position y par
coordonnée x. Or, comme il en a été discuté précédemment, ceci est une des principales
limitations des courbes analytiques. Dans le cas présent, la forme de l’arête implique que pour
une certaine valeur de x, il existe plus d’une position y, et vice versa. Par conséquent, l’équation
d’un polynôme de Lagrange en formulation analytique est inadéquate.

L’obtention d’un polynôme de Lagrange en formulation paramétrique constitue donc une


alternative logique afin de représenter convenablement l’arête de la pièce. La première étape
consiste à attribuer à chacun des 9 points une valeur du paramètre u variant entre 0.0 et 1.0. Le
premier et le dernier point correspondent aux limites de la courbe et ils se voient attribuer
respectivement les valeurs u = 0.0 et u = 1.0. En ce qui concerne les autres points, ils reçoivent
une valeur qui augmente de 0.125 entre chaque point. Ainsi, le second point correspond à
u = 0.125, le troisième à u = 0.25, le quatrième à 0.375, et ainsi de suite comme le présente la
figure 4.13. Cette façon de procéder est tout à fait arbitraire et l’attribution à chaque point d’une
valeur du paramètre u aurait pu se faire différemment, en se basant sur la distance qui sépare
les points par exemple.
2.5
u=0.375
2 u=0.25

1.5 u=0.125 u=0.5


u=0.0
1

u=0.625
0.5

Coordonnée Y
0 u=0.75
u=0.875
-0.5

-1

-1.5
u=1.0
-2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Coordonnée X

Figure 4.13 : Correspondance entre la position des points et la valeur du paramètre u

Les développements employés pour obtenir l’équation 4.11 sont repris pour élaborer les
équations paramétriques de la courbe. Par contre, plutôt que d’obtenir une seule équation
y = y(x) à partir des positions (x, y), deux équations indépendantes, x = x(u) et y = y(u), sont
développées respectivement avec les positions (u, x) et (u, y). Les équations paramétriques
suivantes ont été calculées et illustrées à la figure 4.14 :

x(u) = 3474.4 u8  16467.2 u7 + 31607.5 u6  31650.7 u5 + 17728.3 u4 (4.12)


 5517.5 u3 + 875.3 u2  50.2 u  0.85

y(u) = 13638.6 u8 + 53968.4 u7  87219.8 u6 + 73897.6 u5  34950.2 u4 (4.13)


+ 9037.9 u3  1155.9 u2 + 57.9 u + 0.9744

4.9
1 2.5

2
0.5
1.5

0 1

0.5
X
-0.5 Y
0

-1 -0.5

-1
-1.5
-1.5

-2 -2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Paramètre U Paramètre U

Figure 4.14 : Polynômes de Lagrange représentant les équations paramétriques de l’arête

Avec les équations 4.12 et 4.13 en main, il est possible de représenter l’allure de l’arête de la
pièce en calculant la position x et y d’un très grand nombre de points à différentes valeurs de u
variant entre 0.0 et 1.0. La courbe obtenue est représentée dans la partie de gauche de la figure
4.15. On remarque que la courbe passe effectivement par les 9 points initialement choisis sur
l’arête. Par contre, bien qu’elle se rapproche légèrement de la forme de l’arête de la pièce (à
cause qu’il existe plus d’une valeur de y associée à une coordonnée x, et vice versa), l’arête
calculée présente des oscillations indésirables qui altèrent fortement l’allure souhaitée de la
courbe. En effet, l’arête pour laquelle on désire obtenir l’équation est représentée dans la partie
de droite de la figure 4.15 et les différences sont notables, plus particulièrement entre les
premier et second points, ainsi qu’entre l’avant-dernier et le dernier points.

2.5

1.5

1
Coordonnée Y
0.5

-0.5

-1

-1.5

-2
-2 -1.5 -1 -0.5 0 0.5 1
Coordonnée X

Figure 4.15 : Arête calculée à partir d’équations paramétriques fondées sur des polynômes de
Lagrange (gauche) et arête de la pièce sur laquelle des points ont été prélevés (droite)

En résumé, les polynômes de Lagrange, en formulation analytique ou paramétrique, constituent


une façon relativement facile d’obtenir l’équation d’une courbe qui passe par une série de points.

4.10
Par contre, la courbe obtenue présente des oscillations souvent indésirables qui nécessitent le
développement de formulations alternatives. Les prochaines sections introduiront les splines
cubiques et les courbes B-splines, deux types de courbes qui sont définies à partir d’une série
de points, mais qui présentent moins d’oscillations. Comme nous le verrons dans les prochaines
sections, les splines cubiques et les courbes B-splines sont obtenues en sacrifiant certaines
continuités le long de la courbe. Avant d’aborder la description de ces courbes, les continuités
associées aux polynômes de Lagrange sont discutées.

Exemple 4 : Polynôme de Lagrange en 2D


Cet exemple détermine les équations paramétriques du polynôme de Lagrange qui passe par
les points suivants : P1(1,2), P2(4,5), P3(3,3), P4(5,1) et P5(7,2).

Une paramétrisation variant entre 0.0 et 1.0 est employée, ainsi u1=0.0, u2=0.25, u3=0.5, u4=0.75
et u5 = 1.0. Puisque le polynôme de Lagrange doit passer par 5 points, un polynôme de degré 4
est nécessaire pour chacune des dimensions x et y de la courbe :

x(u) = CX4 u4 + CX3 u3 + CX2 u2 + CX1 u + CX0 (4.14)


y(u) = CY4 u4 + CY3 u3 + CY2 u2 + CY1 u + CY0

où CX4, CX3, …, CX0, CY4, …, CY0 sont les 10 coefficients inconnus à déterminer.

Les coefficients inconnus sont déterminés en imposant que le polynôme de Lagrange passe par
les points P1 à P5. Débutons avec l’équation paramétrique de x(u) :

x(0.00) = 1  CX4 (0.00)4 + CX3 (0.00)3 + CX2 (0.00)2 + CX1 (0.00) + CX0 = 1
x(0.25) = 4  CX4 (0.25)4 + CX3 (0.25)3 + CX2 (0.25)2 + CX1 (0.25) + CX0 = 4
x(0.50) = 3  CX4 (0.50)4 + CX3 (0.50)3 + CX2 (0.50)2 + CX1 (0.50) + CX0 = 3 (4.15)
x(0.75) = 5  CX4 (0.75)4 + CX3 (0.75)3 + CX2 (0.75)2 + CX1 (0.75) + CX0 = 5
x(1.00) = 7  CX4 (1.00)4 + CX3 (1.00)3 + CX2 (1.00)2 + CX1 (1.00) + CX0 = 7

Ces dernières équations s’expriment sous forme matricielle de la façon suivante :

 04 03 02 0 1 C X4  1 
 4 3 2     
0.25 0.25 0.25 0.25 1 C X3  4
 0.5 4 0.5 3 0.5 2 0.5 1  C X2   3 (4.16)
 4     
0.75 0.75 3 0.75 2 0.75 1 C X1  5
 14 13 12 1 1 C X0  7 

En solutionnant ce système d’équations (inversion de matrice), on détermine la valeur des


coefficients inconnus de l’équation x=x(u) :

1
C X4   0 4 03 02 0 1 1  106.67 
C   4  4  234.67 
 X3  0.25 0.25 3 0.25 2 0.25 1    
C X2    0.5 4 0.5 3 0.5 2 0.5 1  3    161.33 (4.17)
   4     
C X1  0.75 0.75 3 0.75 2 0.75 1 5  39.33 
C X0   14 13 12 1 1 7  1.00 

4.11
La même démarche est reprise pour la seconde équation paramétrique et le système
d’équations suivant permet de déterminer les coefficients inconnus de y=y(u) :

1
C Y4   0 4 03 02 0 1 2  21.33
C   4  5  85.33 
 Y3  0.25 0.25 3 0.25 2 0.25 1    
C Y2    0.5 4 0.5 3 0.5 2 0.5 1  3   94.67  (4.18)
   4 3 2     
C Y1  0.75 0.75 0.75 0.75 1 1   30.67 
C Y0   14 1 3
12 1 1 2  2.00 

Il est à noter que la matrice à inverser est la même pour les deux équations paramétriques, ce
qui simplifie la démarche car cette matrice inversée n’est calculée qu’une seule fois. Avec les
coefficients calculés en (4.17) et (4.18), les deux équations paramétriques suivantes permettent
donc de tracer le polynôme de Lagrange qui passe par les 5 points P1 à P5 en faisant varier le
paramètre u entre 0.0 et 1.0 :

x(u) = -106.67 u4 + 234.67 u3 - 161.33 u2 + 39.33 u + 1.00 (4.19)


y(u) = -21.33 u4 + 85.33 u3 - 94.67 u2 + 30.67 u + 2.00

Le polynôme de Lagrange ainsi obtenu est dessiné à la figure 4.16. On observe effectivement
que le polynôme passe dans l’ordre par les points P1(1,2), P2(4,5), P3(3,3), P4(5,1) et P5(7,2),
mais des oscillations prononcées (voir même une boucle) ont été créées pour y arriver.

P2

P3
P1 P5

P4

Figure 4.16 : Polynôme de Lagrange de l’exemple 4.

4.12
4.1.3.2 Notions de continuité

La première continuité d’une courbe, appelée continuité C0, est satisfaite lorsqu’il n’y a pas de
saut au niveau de la position des points appartenant à la courbe. La figure 4.17 montre à
gauche une courbe composée de deux segments qui est continue C0. Par contre, dans la partie
de droite de la même figure, la courbe composée est discontinue C0 à cause du saut de position
entre les deux segments.

Continuité C0 Discontinuité C0
Figure 4.17 : Exemples de courbes continue et discontinue C0 (continuité de la position)

La seconde continuité d’une courbe, appelée continuité C1, est satisfaite lorsqu’il n’y a pas de
saut au niveau de la pente le long de la courbe. La pente en un point d’une courbe peut être
représentée par la droite qui est tangente à la courbe en ce point. À moins d’avoir une courbe
rectiligne, la pente varie continuellement le long de la courbe. La figure 4.18 montre la pente en
deux points (A et B) d’une même courbe. Visuellement, on remarque que la pente n’est pas la
même à ces deux points car les droites qui sont respectivement tangentes aux points A et B
n’ont pas la même inclinaison par rapport à l’horizontale.

Figure 4.18 : Représentation visuelle de la pente à deux points d’une courbe

La valeur de la pente d’une courbe analytique y = y(x) est simplement calculée en dérivant la
fonction y(x) par rapport à x :

Pente = y’(x) = dy/dx (4.20)

Cependant, pour une courbe paramétrique x = x(u) et y = y(u), la valeur de la pente dy/dx
nécessite le calcul des deux pentes paramétriques dx/du et dy/du selon l’équation suivante :

dy dy/du
Pente   (4.21)
dx dx/du

4.13
Pour avoir la continuité C1 à la jonction de deux courbes, il faut donc que la pente soit la même
de part et d’autre de la jonction. La figure 4.19 illustre deux courbes offrant la continuité C0 à
leur jonction. Celle de gauche offre en plus la continuité C1 car à la jonction des deux segments
(la droite et l’arc de cercle), la pente est nulle de part et d’autre. La courbe de la partie de droite
de la figure n’offre cependant pas la continuité C1 car la pente des segments avant et après la
jonction n’est pas la même.

Continuité C1 Discontinuité C1
Figure 4.19 : Exemples de courbes continue et discontinue C1 (continuité de la pente)

En formulation paramétrique, il faut donc que la pente paramétrique dx/du soit identique de part
et d’autre de la jonction et qu’en plus, la pente paramétrique dy/du le soit aussi afin d’obtenir la
continuité C1 entre deux segments.

La troisième continuité d’une courbe, appelée continuité C2, est satisfaite lorsqu’il n’y a pas de
saut au niveau de la courbure le long de la courbe. La courbure d’une courbe peut être
géométriquement interprétée de la façon suivante. À chaque point d’une courbe, il est possible
de déterminer le rayon R d’un cercle (ni trop petit, ni trop grand) qui « épouse » parfaitement la
forme concave de la courbe en ce point particulier (voir figure 4.20). La courbure k de la courbe
est alors donnée par le rapport k = 1/R. Plus la courbe est arquée, plus le rayon R du cercle est
petit et par conséquent, plus la courbure est élevée. À la limite, seulement un cercle de rayon
infini peut épouser la forme d’une droite. Ainsi, la courbure d’une droite est nulle car k = 1/ = 0.

Courbe
Cercle de
rayon R

Cercle
trop
grand
Cercle
trop
Cercle trop petit
petit

Figure 4.20 : Cercle de rayon qui épouse parfaitement la courbe au point A

Mathématiquement, la courbure k d’une courbe analytique y = y(x) se calcule de la façon


suivante en utilisant les dérivées première dy/dx et seconde d2y/dx2 :

d 2 y dx 2
k  (4.22)
1   dy dx 
2
 3
2

4.14
Pour ce qui est du cas d’une courbe paramétrique exprimée sous la forme x = x(u) et y = y(u), le
calcul de la courbure s’effectue comme suit avec x’ = dx/du, y’ = dy/du, x’’ = d2x/du2 et
y’’ =d2y/du2 :

x' y'' - y' x'' (4.23)


k 
 x'  2
 y'
2
 3
2

Deux courbes présentant les continuités C0 et C1 sont illustrées à la figure 4.21. De plus, la
courbe de gauche est composée de deux segments qui offrent en plus une continuité C2, ce qui
signifie que la courbure est la même immédiatement avant et immédiatement après la jonction.
Le cas montré dans la partie de droite de la figure 4.21 n’offre pas une continuité C2 entre la
droite et l’arc de cercle. En effet, la droite est caractérisée par une courbure nulle, tandis que
l’arc de cercle l’est par une courbure constante et égale à l’inverse du rayon de l’arc.

Continuité C2 Discontinuité C2
Figure 4.21 : Exemples de courbes continue et discontinue C2 (continuité de la courbure)

En plus des continuités discutées ci-haut, une courbe peut en offrir d’autres (C3, C4, etc.). Par
exemple, il est souhaitable que le contour d’une came soit au moins continu jusqu’à C3 afin de
minimiser les impacts et les vibrations dans la conception des machines.

Dans le cas des polynômes de Lagrange de degré « n », la courbe modélisée offre les
continuités C0, C1, …, Cn. En effet, il est possible de vérifier que l’équation d’un polynôme de
Lagrange et celle de toutes ses dérivées (de la première à la « n-ième » dérivée) sont des
fonctions continues. La formulation des polynômes de Lagrange possède donc l’avantage de
générer des courbes avec des continuités élevées, ce qui produit cependant des oscillations
prononcées et souvent indésirables.

Exemple 5 : Continuités des courbes analytiques


Une courbe composée est construite à partir de deux segments (voir figure 4.22). Le premier
segment est un polynôme de Lagrange de degré 3 dont l’équation est y1 = x3 – 3x2 + 1 et qui
varie entre x = 1 et x = 2.5. L’équation du second polynôme est y2 = 8x2 + 13x – 6. Il s’agit d’un
polynôme de degré 2 qui varie entre x = 0 et x = 1. Les deux polynômes sont exprimés en
formulation analytique.

Le polynôme y1(x) est de degré 3. Par conséquent, ce dernier offre les continuités C 0, C1, C2 et
C3 sur l’intervalle compris entre x = 1 et x = 2.5. Le second polynôme y2(x) offre moins de
continuités à cause de son degré inférieur, en l’occurrence le degré 2. On désire maintenant
vérifier quelles sont les continuités au passage d’un polynôme à l’autre situé à x = 1. Pour
vérifier la continuité de position C0, les deux polynômes sont évalués à x = 1 :

y1(1) = (1)3 – 3(1)2 + 1 = –1 (4.24)


y2(1) = 8(1)2 + 13(1) – 6 = –1

4.15
0

-1 y1 = x3  3x2 + 1

-2

-3
y

-4
y2 = 8x2 + 13x  6
-5

-6
0 0.5 1 1.5 2 2.5

x
Figure 4.22 : Représentation d’une courbe composée

Puisque les deux fonctions passent par le même point (x, y) = (1, –1), le passage d’un polynôme
à l’autre offre donc la continuité C0. La continuité C1 est vérifiée si les pentes sont les mêmes à
la jonction de deux polynômes. Pour quantifier la pente, la première dérivée des polynômes doit
être calculée et évaluée à x = 1 :

y’1 = 3x2 – 6x  y’1(1) = 3(1)2 – 6(1) = –3 (4.25)


y’2 = 16x + 13  y’2(1) = 16(1) + 13 = –3

Puisque la pente des deux polynômes est la même à –3 au niveau de la jonction, la continuité
C1 est donc vérifiée. Pour vérifier la continuité C2, la courbure de chaque polynôme à x = 1 doit
être calculée. Pour y arriver, les polynômes doivent d’abord être dérivés une seconde fois et
ensuite évalués à x = 1 :

y’’1 = 6x – 6  y’’1(1) = 6(1) – 6 = 0 (4.26)


y’’2 = 16  y’’2(1) = 16

En utilisant l’équation 4.22, la courbure de chaque courbe à x = 1 peut donc finalement être
évaluée :

0
k1   0
1   -3   2
3
2
(4.27)
-16
k2   -0.506
1   -3   2
3
2

Étant donné les différentes valeurs de courbure (courbure nulle pour y1 et courbure de –0.506
pour y2), la continuité C2 n’est pas présente à la jonction des deux polynômes, et cela même si
chaque polynôme est continu C2 le long de leur intervalle respectif.

Afin de vérifier la discontinuité de courbure au passage d’un polynôme à l’autre, les deux
courbes ont été modélisées dans un système de CAO commercial. La courbure de la courbe est
quantifiée par la longueur d’une ligne dessinée perpendiculairement à la trajectoire de la courbe.

4.16
Ainsi, plus la courbure de la courbe est prononcée, plus la ligne est proportionnellement longue.
Les sommets des lignes perpendiculaires sont ensuite reliés les uns aux autres afin de former
une seconde courbe. S’il n’y a pas de saut sur cette dernière courbe, alors la continuité de
courbure est respectée. La figure 4.23 illustre dans la partie de gauche la courbure des deux
polynômes. Il est facile d’observer la discontinuité C2 au passage d’un polynôme à l’autre à
cause du saut dont l’agrandi est montré dans la partie de droite de la même figure.

En résumé, un polynôme de Lagrange de degré « n » offre toutes les continuités allant de C0 à


Cn. Cependant, lorsqu’une courbe composée est construite de segments joints bout à bout, les
continuités doivent être vérifiées aux intersections afin de prédire la continuité au passage d’un
segment à l’autre.

Figure 4.23 : Représentation de la courbure des deux polynômes.

Exemple 6 : Continuités des courbes paramétriques


Une courbe composée est construite en joignant bout à bout deux courbes dont les équations
paramétriques sont données à la figure 4.24. On désire maintenant vérifier si les continuités C 0,
C1 et C2 sont vérifiées à la jonction des deux courbes.

Y Courbe 1
x1(u) = 4u - 2
3.
0 y1(u) = 3 - u
2.
0

1.
0

X
-2.0 -1.0 1. 2. 3. 4. 5. 6. 7. 8.
0 0 0 0 0 0 0 0
-1.0
Courbe 2
-2.0
x2(u) = 8 - 6u
y2(u) = -9u2/4 + 6u - 7/4
Figure 4.24 : Courbes paramétriques de l’exemple 6.

4.17
Le premier aspect à vérifier est de déterminer s’il y a continuité C0 entre les deux courbes.
Cependant, il existe deux extrémités à une courbe paramétrique, en l’occurrence à u=0 et à u=1.
Dans le cas d’une jonction, il faut donc déterminer si elle se produit au début ou à la fin de
chaque courbe paramétrique. Pour la courbe 1, les points de départ (u=0) et d’arrivée (u=1) se
situent respectivement à (x,y) = (-2,3) et (x,y) = (2,2) tandis que ces mêmes points sont
(x,y) = (8,-1.75) et (x,y) = (2,2) pour la courbe 2. Par conséquent, il y a bel et bien continuité C0
entre les deux courbes paramétriques et le point de jonction (x,y) = (2,2) correspond à la fin
(u=1) de chacune de ces deux courbes.

Pour vérifier la continuité C1 entre les deux courbes paramétriques, il faut d’abord calculer la
pente de chaque courbe selon l’équation 4.21 :

dy/du 1
Courbe 1: pente    0.25
dx/du 4

dy/du 4.5u6
Courbe 2 : pente    0.75u  1
dx/du 6

On remarque que la pente de la courbe 1 est constante, ce qui signifie qu’il s’agit d’une droite.
La pente de cette droite a été calculée à –0.25. Pour la courbe 2, la pente varie en fonction de
u. Or, il a été établi précédemment que la jonction se produit à u=1. La pente de la courbe 2 au
point de jonction est donc égale à –0.25. Puisque les deux courbes ont la même valeur de
pente à leur jonction, elles offrent donc la continuité C1

Pour vérifier la continuité C2, il faut dans un premier temps calculer la dérivée seconde de
chaque équation paramétrique :

Courbe 1 :
x1 = 4u – 2  x’1 = 4  x’’1 = 0
y1 = 3 – u  y’1 = -1  y’’1 = 0

Courbe 2 :
x2 = 8 – 6u  x’2 = -6  x’’2 = 0
y2 = -9u2/4 + 6u – 7/4  y’2 = -9u/2 + 6  y’’2 = -9/2

En employant l’équation 4.23 puis en évaluant les dérivées premières et secondes à u=1, la
courbure de chaque courbe au point de jonction est calculée comme suit :

(4) (0) - (-1) (0)


k1  0
 4  2
  1
2
 3
2

(-6) (-4.5) - (1.5)(0)


k2   0.114
 -6  2
 1.5 
2
 3
2

4.18
La courbure de la courbe 1 est nulle, ce qui n’est pas surprenant puisqu’il s’agit d’une droite.
Cependant, puisque la courbure de la courbe 2 est différente de zéro, il y a donc discontinuité
C2 entre les deux courbes au point de jonction.

4.1.3.3 Splines cubiques

Le principal problème associé aux polynômes de Lagrange, autant en formulation analytique


que paramétrique, concerne les oscillations indésirables qui peuvent être générées le long de la
courbe. Pour pallier à cette lacune, les splines cubiques représentent une alternative
intéressante. Le mot « spline » provient du nom donné à l’instrument de dessin flexible
(généralement en plastique bleu) qui permet de tracer des courbes quelconques. L’idée
principale derrière les splines cubiques est la suivante. Plutôt que d’avoir un seul polynôme de
Lagrange qui relie tous les points de la courbe, la formulation des splines cubiques propose de
mettre bout à bout des polynômes de degré 3, d’où l’appellation « cubique ». Chaque polynôme
cubique relie deux points de la courbe. Des polynômes de degré 3 sont choisis car c’est la
formulation polynomiale de degré le plus faible (afin de minimiser les oscillations) qui puisse
représenter une courbe définie dans un espace tri-dimensionnel (courbe 3D). En effet, des
courbes polynomiales de degré 1 et 2 ne peuvent représenter respectivement que des courbes
linéaires (courbes 1D) et des paraboles dans un plan (courbes 2D).

Linéaire Quadratique Cubique


(courbe 1D) (courbe 2D) (courbe 3D)

Figure 4.25 : Représentation de courbes polynomiales de degré 1, 2 et 3

En somme, chaque segment compris entre 2 points est une courbe polynomiale cubique. Ainsi,
si une spline doit passer par 9 points, elle sera composée de 8 segments. De façon générale,
on retrouve « N » segments de courbe polynomiale cubique pour une courbe devant passer par
« N+1 » points comme le montre la figure 4.26. Sur cette dernière figure, les points sont notés
K0, K1, K2 et ainsi de suite jusqu’à KN. Chaque point est positionné dans l’espace par 3
coordonnées, en l’occurrence x, y et z : K0(x0, y0, z0), K1(x1, y1, z1), …, KN(xN, yN, zN).

4.19
Segment #N
pN(u) u=uN

KN
KN-1
u=uN-1
Segment #2
p2(u) u=u2
u=u5
K2 Segment #N-1
u=u3 K5 pN-1(u)
K3
Segment #1 u=u1 K1
p1(u)
K4
u=u4
u=u0 K0
Figure 4.26 : Spline cubique passant par N points

Les points de la spline sont reliés par des polynômes cubiques. Ainsi, le point K0 est relié au
point K1 par une courbe dont l’équation est p1(u), les points K1 et K2 le sont par le polynôme
p2(u), et ainsi de suite jusqu’au polynôme pN(u) reliant les points KN-1 et KN. Les équations de
ces polynômes sont :

p1(u) = a1 u3 + b1 u2 + c1 u + d1
p2(u) = a2 u3 + b2 u2 + c2 u + d2 (4.28)

pN(u) = aN u3 + bN u2 + cN u + dN

où les coefficients ai, bi, ci et di sont les inconnues à déterminer. Il y a donc « 4  N »


coefficients inconnus qui doivent être déterminés en utilisant autant d’équations. En réalité, il y
a « 4  N » coefficients inconnus pour chaque dimension du problème. En effet, en notation
paramétrique, des équations indépendantes représentent les composantes x, y et z des
polynômes. Lorsque les composantes x, y et z des courbes sont tour à tour traitées, il faut
respectivement remplacer les pi(u) des équations (4.28) par xi(u), yi(u) et zi(u).

Avant d’entamer la détermination des coefficients inconnus ai, bi, ci et di, une valeur distincte et
croissante du paramètre u doit être attribuée à chaque point. Ainsi, la valeur u0 est attribuée au
point K0, la valeur u1 est attribuée au point K1 et ainsi de suite jusqu’à la valeur uN qui est
attribuée au point KN. Il existe différentes approches pour attribuer une valeur du paramètre u à
chaque point. L’approche la plus simple consiste à attribuer une valeur de u0=0 au premier point
K0, u1=1 au second point K1, et ainsi de suite en incrémentant de 1 pour les autres points. Une
telle façon de procéder peut générer des anomalies numériques pouvant conduire à des
résultats imprécis au niveau du calcul des pentes ou encore à des boucles indésirables dans les
segments polynomiaux. La paramétrisation idéale serait d’attribuer une valeur du paramètre u
proportionnelle à la longueur parcourue de long de la courbe. Or, la courbe à calculer est
inconnue au moment de l’attribution d’une valeur du paramètre u à chaque point, à moins
d’utiliser une procédure itérative qui pourrait devenir lourde à gérer. Afin d’obtenir un bon
compromis entre la précision et l’efficacité, l’approche généralement employée consiste à

4.20
attribuer à chaque point une valeur du paramètre u normalisée entre 0 et 1 en se basant sur la
distance entre les points définissant la spline :

 0 0
u0   0  N  0
 1  0   x 1  x 0   y 1  y 0   z 1 z 0 
2 2 2
u1   1  N
 2  1   x 2  x 1  2  y 2  y 1  2  z 2 z 1  2  u2   2  N (4.29)

 
uN   N  N 1
 N  N 1   x N x N 1  2  y N y N 1  2  z N z N 1  2

Des « 4 N » équations à établir afin de déterminer les coefficients inconnus, un total de « 2 N »


équations proviennent du fait que chaque segment doit passer par deux points. En effet, le
premier segment p1(u) doit passer par les points K0 et K1, le second segment p2(u) par les
points K1 et K2, et ainsi de suite. Une telle façon de procéder assure la continuité de position
C0 entre les différents segments de la spline et les équations (4.30) peuvent être établies :
p1(u0) = K0 p1(u1) = K1
p2(u1) = K1 p2(u2) = K2 (4.30)

pN(uN-1) = KN-1 pN(uN) = KN

La continuité C1 est assurée en imposant que la pente de part et d’autre des intersections entre
les segments de la spline soit identique. Par exemple, la pente du premier segment p1’(u) doit
égaler celle du second segment p2’(u) au point d’intersection K1, la pente du second segment
p2’(u) doit égaler celle du troisième segment p3’(u) au point d’intersection K2, et ainsi de suite.
Un total de « N  1 » équations supplémentaires sont ainsi établies :

p1’(u1) = p2’(u1)
p2’(u2) = p3’(u2) (4.31)

pN-1’(uN-1) = pN’(uN-1)

où les pi’(u) correspondent à la dérivée première des équations (4.28) :

p1’(u) = 3a1 u2 + 2b1 u + c1


p2’(u) = 3a2 u2 + 2b2 u + c2 (4.32)

pN’(u) = 3aN u2 + 2bN u + cN

La continuité C2 est assurée en imposant que la courbure de part et d’autre des intersections
entre les segments de la spline soit identique. Rappelons qu’avec les équation (4.31), la pente
est forcée d’être égale de part et d’autre de ces intersections. Ainsi, selon l’équation (4.23), si
les pentes sont égales, une continuité de courbure peut être obtenue en travaillant au niveau
des dérivées secondes. Par conséquent, plutôt que de calculer des courbures par l’entremise
d’une équation relativement complexe comme l’équation (4.23), la formulation des splines
cubiques propose d’imposer une continuité au niveau de la dérivée seconde des équations
paramétriques. Cette astuce assure donc une continuité de courbure aux jonctions des
différents segments qui composent la spline tout en ayant à manipuler des équations simplifiées.

4.21
Par exemple, la dérivée seconde du premier segment p1’’(u) de la figure 4.26 doit égaler celle du
second segment p2’’(u) au point d’intersection K1, la dérivée seconde du second segment p2’’(u)
doit égaler celle du troisième segment p3’’(u) au point d’intersection K2, et ainsi de suite. Un
total de « N  1 » équations supplémentaires sont ainsi établies :

p1’’(u1) = p2’’(u1)
p2’’(u2) = p3’’(u2) (4.33)

pN-1’’(uN-1) = pN’’(uN-1)

où les pi’’(u) correspondent à la dérivée seconde des équations (4.28) :

p1’’(u) = 6a1 u + 2b1


p2’’(u) = 6a2 u + 2b2 (4.34)

pN’’(u) = 6aN u + 2bN

Il manque deux équations à établir afin de pouvoir déterminer les coefficients inconnus ai, bi, ci
et di des équations (4.28). C’est en contrôlant la pente aux extrémités de la spline que les deux
dernières équations pourront être obtenues. Il existe plusieurs alternatives en ce qui concerne
le choix des pentes aux extrémités dont les principales sont les suivantes :
 On suppose que les pentes paramétriques aux extrémités de la spline sont nulles, ce qui
implique que p1’(u0)=0 et pN’(uN)=0. Dans ce cas, l’usager n’a pas à spécifier de pente
au début et à la fin de la spline et les systèmes de CAO sont en mesure de calculer la
trajectoire de la spline seulement à partir de la position des points.
 On impose une courbure nulle aux extrémités de la spline, ce qui implique que p 1’’(u0)=0
et pN’’(uN)=0 selon l’équation (4.23). Dans un tel cas, les systèmes de CAO sont
également en mesure de tracer la spline seulement à partir de la position des points.
 La pente aux extrémités de la spline est spécifiée par l’usager. Il faut cependant noter
que dans le cas d’une spline en trois dimensions, les trois composantes paramétriques
x’(u), y’(u) et z’(u) sont nécessaires.

La figure 4.27 montre deux splines cubiques qui passent exactement par les mêmes 9 points.
Cependant, le choix des pentes aux extrémités est différent dans les deux cas. D’une part, les
deux extrémités de la spline de gauche ont des pentes paramétriques nulles. D’autre part, les
extrémités de la spline de droite sont forcées à être tangentes à des droites représentés par des
lignes en traits pointillés (pentes spécifiées par l’usager). On remarque donc une modification
au niveau de la courbe, plus particulièrement aux abords des extrémités.

Figure 4.27 : Modification d’une spline cubique en changeant la pente aux extrémités

4.22
Puisque chaque segment de la spline est une courbe polynomiale cubique, les continuités C0,
C1, C2 et C3 à l’intérieur d’un segment sont assurées. Par contre, au passage d’un segment à
l’autre, seulement les continuités C0, C1 et C2 sont vérifiées à cause des restrictions imposées
pour obtenir les équations de la spline.

Segment #3 Segment #4
(continuités C0, C1, C2 et C3) (continuités C0, C1, C2 et C3)

Jonction entre les segments #3 et #4


(continuités C0, C1 et C2)
Figure 4.28 : Différents niveaux de continuité à l’intérieur d’une spline cubique

En utilisant un système de CAO commercial, la spline de la figure 4.27 a été modélisée. Comme
précédemment, la courbure a été tracée et le résultat est montré à la figure 4.29. On remarque
facilement la continuité de la courbure sur toute la longueur de la spline car aucun saut n’est
présent au niveau de la courbe reliant les lignes perpendiculaires.

Figure 4.29 : Représentation de la continuité C2 le long d’une spline cubique

La formulation des splines cubiques n’offre donc pas la continuité C3 le long de la courbe. Ainsi,
si pour différentes raisons des continuités supérieures étaient souhaitées (par exemple dans le
cas de la conception de cames où C3 est recherchée afin d’éviter les chocs et les vibrations),
une formulation similaire pourrait être adoptée, mais en prenant des segments polynomiaux de
degré supérieur à 3 et en spécifiant davantage de continuités aux jonctions des segments.

Enfin, les splines cubiques offrent un contrôle global, c’est-à-dire que si un point de la spline est
déplacé, toute la courbe est affectée. La figure 4.30 montre le cas d’une spline construite à
partir de 6 points dont l’avant-dernier point est déplacé. Mathématiquement, toute la courbe
subit des déplacements et cela même si on se trouve loin de la perturbation. Ceci peut devenir
embêtant lorsque des splines cubiques sont utilisées pour modéliser des pièces de grande
précision. En effet, une modification à un certain endroit de la pièce peut affecter légèrement

4.23
des endroits qui ne doivent pas être altérés. Cependant, la déplacement de la courbe est
généralement atténué au fur et à mesure qu’on s’éloigne de la perturbation.

Figure 4.30 : Contrôle global d’une spline cubique (tirée de C. McMahon et J. Browne [3])

Exemple 7 : Équations d’une spline cubique


Il faut obtenir les équations paramétriques d’une spline cubique qui passe par les 3 points
suivants dans l’espace bidimensionnel : K0(1,1), K1(3,3) et K2(5,2). De plus, la pente de la
courbe au point K0 doit être égale à dy/dx = ½ tandis que les pentes paramétriques au point K2
doivent être nulles.

La première étape consiste à calculer la distance séparant les points de la spline en appliquant
les équations (4.29) :

 0 0
 1 0  31  2  31  2  8 2.828 (4.35)

2 8   53   23   8  5 5.064


2 2

Par la suite, il est possible de normaliser la distance linéaire parcourue entre les points de façon
à ce que la courbe soit comprise entre u=0 et u=1 (voir également les équations 4.29). La
paramétrisation suivante, qui sera employée pour la suite de l’exemple, est alors obtenue :

u0 = 0 / 5.064 = 0.0
u1 = 2.828 / 5.064 = 0.558
u2 = 5.064 / 5.064 = 1.0

Débutons avec les équations paramétriques de x en fonction de u. Puisqu’il y a trois points à


relier, la spline sera constituée de 2 segments dont l’équation provient des expressions (4.28) :

x1(u) = a1 u3 + b1 u2 + c1 u + d1 (4.36)
x2(u) = a2 u3 + b2 u2 + c2 u + d2

Les 8 coefficients inconnus requièrent 8 équations à établir. Les 4 premières équations sont
obtenues en imposant que le premier segment passe par les deux premiers points et le second
segment, par les deux derniers :

x1(u0) = x0  a1(0)3 + b1(0)2 + c1(0) + d1 = 1 (4.37)


 d1 = 1
x1(u1) = x1  a1(0.558)3 + b1(0.558)2 + c1(0.558) + d1 = 3 (4.38)
 0.1737a1 + 0.3114b1 + 0.558c1 + d1 = 3

4.24
x2(u1) = x1  a2(0.558)3 + b2(0.558)2 + c2(0.558) + d2 = 3 (4.39)
 0.1737a2 + 0.3114b2 + 0.558c2 + d2 = 3

x2(u2) = x2  a2(1)3 + b2(1)2 + c2(1) + d2 = 5 (4.40)


 a2 + b2 + c2 + d2 = 5

Une autre équation provient de l’imposition de la continuité C1 entre les deux segments. À partir
des équations (4.31) et (4.32), on obtient :

x1’(u1) = x2’(u1)  3a1(0.558)2 + 2b1(0.558) + c1 = 3a2(0.558)2 + 2b2(0.558) + c2


 0.9341a1 + 1.1160b1 + c1 – 0.9341a2 – 1.1160b2 – c2 = 0 (4.41)

Une sixième équation provient de l’imposition de la continuité C2 entre les deux segments en
utilisant les équations (4.33) et (4.34) :

x1’’(u1) = x2’’(u1)  6a1(0.558) + 2b1 = 6a2(0.558) + 2b2


 3.348a1 + 2b1 – 3.348a2 – 2b2 = 0 (4.42)

Les deux dernières équations proviennent de l’imposition des pentes aux extrémités de la
spline. Au point de départ, on désire que la pente soit dy/dx = ½. Cette condition peut se
traduire arbitrairement par l’imposition des pentes paramétriques suivantes : y1’(u0)=1 et
x1’(u0)=2 car selon l’équation (4.21), on peut écrire :

dy dy1 y1'(u0)
  du  (4.43)
dx début du u 0 dx1 u 0 x1'(u0)

Ainsi, en choisissant x1’(u0)=2, on obtient l’équation suivante :

x1’(u0) = 2  3a1(0)2 + 2b1(0) + c1 = 2


 c1 = 2 (4.44)

Au point d’arrivée, on cherche à obtenir des pentes paramétriques nulles, x2’(u2)=0 et y2’(u2)=0 :

x2’(u2) = 0  3a2(1)2 + 2b2(1) + c2 = 0


 3a2 + 2b2 + c2 = 0 (4.45)

En disposant les équations linéaires (4.37), (4.38), (4.39), (4.40), (4.41), (4.42), (4.44) et (4.45)
dans une matrice, les 8 coefficients inconnus des équations (4.36) peuvent être calculés :

 0 0 0 1 0 0 0  a1  1 
0
(4.46)
0.1737 0.3114 0.558 1 0 0 0 0  b1  3
     
 0 0 0 0 0.1737 0.3114 0.558 1  c1  3
 0 0 0 0 1 1 1 1  d1  5
  
 0.9341 1.116 1 0  0.9341  1.116  1 0  a 2  0 
     
 3.348 2 0 0  3.348 2 0 0  b 2  0 
 0 0 1 0 0 0 0 0  c 2   2
     
 0 0 0 0 3 2 1 0  d 2   0 

4.25
d’où :
1
 a1   0 0 0 1 0 0 0 0 1   1.7767  (4.47)
 b1  0.1737 0.3114 0.558 1 0 0 0 0 3  1.8477 
       
 c1   0 0 0 0 0.1737 0.3114 0.558 1  3  2 
 d1   0 0 0 0 1 1 1 1 5   1 
      
a 2   0.9341 1.116 1 0  0.9341  1.116 1 0 0  17.0354
       
b 2   3.348 2 0 0  3.348 2 0 0 0  33.3392 
 c2   0 0 1 0 0 0 0 0 2   15.5723
       
d 2   0 0 0 0 3 2 1 0 0  4.2684 

Les équations paramétriques de y en fonction de u sont obtenues en reprenant exactement la


même méthodologie. Finalement, les équations de la spline cubique sont donc obtenues :

x 1 (u )  1.7767 u 3  1.8477 u 2  2u  1


 si 0  u  0.558
y1 (u )  18.971u 3  15.217 u 2  u  1
(4.48)
x 2 (u )  17.0354u  33.3392u  15.5723u  4.2684
3 2

 si 0.558  u  1
y 2 (u )  24.501u 3  57.554u 2  41.606u  6.552 

En faisant varier le paramètre u entre 0 et 1, la spline cubique peut être tracée dans un
diagramme bidimensionnel (voir figure 4.31). On remarque sur cette figure les continuités de la
spline au niveau de la jonction entre les deux segments au point (x,y)=(3,3) ainsi que la pente
de ½ au début de la spline.

K1
3
Y

2
Pente = 1/2 K2

K0
1

0
0 1 2 3 4 5 6
X

Figure 4.31 : Représentation de la spline cubique de l’exemple 7

4.26
4.1.3.4 Courbes B-splines

La formulation des splines cubiques est avantageuse car elle permet d’obtenir une courbe qui
passe par une série de points et qui ne présente pas, contrairement aux polynômes de
Lagrange, des oscillations démesurées. Par contre, les splines cubiques offrent un contrôle
global, ce qui peut s’avérer problématique dans certaines situations. Afin de disposer de
courbes offrant un contrôle local, la formulation des courbes B-splines a été développée. Les
développements mathématiques régissant les B-splines sont volontairement omis car ils
dépassent le cadre de ce cours. Cependant, les concepts de base des courbes B-splines sont
énoncés afin d’exposer qualitativement les avantages et les limitations de ce type de courbes.

Tout comme les splines cubiques, les courbes B-splines sont contrôlées par une série de points.
Par contre, les points ne sont pas utilisés pour définir les lieux de passage de la courbe, mais
plutôt pour contrôler la forme de la courbe. En effet, les points servant à définir une courbe
B-spline forment un polygone de contrôle, ce qui signifie qu’en général, la courbe ne passe plus
par les points. La figure 4.32 montre une courbe B-spline et son polygone de contrôle. On
remarque que la courbe ne passe que par le premier et le dernier point et que la courbe est
tangente au premier et au dernier segment du polygone de contrôle.

Courbe passe
Courbe tangente par ce point
à ce segment

Courbe passe
par ce point Courbe tangente
à ce segment

Figure 4.32 : Représentation d’une courbe B-spline et de son polygone de contrôle


(tirée de C. McMahon et J. Browne [3])

Des algorithmes complexes doivent être employés pour déterminer la position des points du
polygone de contrôle pour forcer une courbe à passer à des endroits précis. Généralement, de
tels algorithmes sont présents dans les systèmes de CAO. De façon analogue aux splines
cubiques, les courbes B-splines sont composées d’un certain nombre de polynômes joints bout
à bout. Par contre, la formulation mathématique derrière les courbes B-splines permet de varier
le degré de ces polynômes de façon à obtenir les continuités désirées. De plus, le contrôle local
est obtenu en incorporant des fonctions mathématiques supplémentaires qui limitent l’influence
d’un point non pas sur toute la longueur de la courbe, mais seulement sur la région avoisinante
à ce point. Ainsi, comme le montre la figure 4.33, lorsqu’un point du polygone de contrôle est
déplacé, seulement la courbe dans le voisinage à ce point est affectée.

Figure 4.33 : Contrôle local des courbes B-splines (tirée de C. McMahon et J. Browne [3])

4.27
La majorité des systèmes de CAO modernes manipulent les courbes comme étant des NURBS
(Non-Uniform Rational B-Spline). Ce type de courbes, qui est une généralisation des courbes
B-spline, est extrêmement général et flexible. L’avantage des NURBS réside dans le fait que
leur formulation mathématique est en mesure de représenter tout genre de courbes (droites,
arcs de cercle, coniques, splines cubiques, etc.). Ainsi, un seul algorithme de création et de
manipulation des courbes doit être développé au sein des systèmes de CAO, ce qui est très
avantageux. Les équations mathématiques décrivant la théorie des NURBS dépassent
largement les objectifs visés par ces notes de cours. Cependant, pour l’étudiant qui désire
approfondir ses connaissances dans le domaine des courbes en CAO, il existe de nombreux
ouvrages spécialisés qui traitent des NURBS comme celui de D.F. Rogers, « An Introduction to
NURBS with Historical Perspective », Morgan Kaufmann Publishers, 2001.

De façon générale, il n’y a pas un type de courbes meilleur qu’un autre. En effet, les polynômes
de Lagrange, les splines cubique et les B-splines ont chacun leurs avantages et inconvénients.
L’important pour un utilisateur de systèmes de CAO est de connaître les limitations respectives
associées à chaque type de courbes afin de faire un choix éclairé et justifié en fonction des
besoins particuliers de l’application modélisée.

4.2 Surfaces

Les surfaces sont entre autres utilisées en CAO pour modéliser des solides dont les frontières
sont difficilement ou ne peuvent tout simplement pas être représentées par les autres
techniques de construction. Certains domaines tels l’automobile ou l’aéronautique utilisent
abondamment les surfaces pour contrôler le profil des corps.

4.2.1 Formulations analytique et paramétrique d’une surface

Traditionnellement, une surface est décrite par une équation analytique du type z = z(x,y). Par
exemple, la figure 4.34 montre une surface analytique dont l’équation est :

z(x,y) = cos(0.017y – 0.2x)e–0.2x

Figure 4.34 : Exemple de surface analytique

4.28
Dans le domaine de la CAO, les surfaces sont représentées non pas par des équations
analytiques, mais plutôt par des équations paramétriques. En effet, la formulation analytique est
trop limitative car tout comme les courbes analytiques, elles présentent les inconvénients
suivants :
- Possibilité de dégénérescence (pente infinie dans certaines directions par exemple)
- Surface infinie (absence de frontières)
- Interdépendance des coordonnées x, y et z
- Impossibilité de générer des surfaces qui se replient sur elles-mêmes

Ce dernier inconvénient est le principal frein à l’emploi d’une formulation analytique pour la
représentation des surfaces en CAO. Par exemple, il existe plus d’une valeur de z associées à
certaines coordonnées (x, y) de la surface illustrée à la figure 4.35. Par conséquent, une telle
surface ne pourrait pas être représentée par une seule équation analytique du type z = z(x,y).

z
y

Figure 4.35 : Surface nécessitant une formulation paramétrique

La formulation paramétrique d’une surface se veut une simple généralisation des notions
présentées pour les courbes paramétriques. Les équations décrivant la position x, y et z des
points de la surface sont indépendantes les unes des autres. Cependant, les équations
paramétriques dépendent cette fois de deux paramètres u et v qui varient généralement entre 0
et 1.

Figure 4.36 : Représentation d’une surface paramétrique

4.29
Exemple 8 : Équations paramétriques d’une surface
Une surface, montrée à la figure 4.37, est décrite par les trois équations paramétriques
suivantes (où u et v varient entre 0 et 1) :
x(u,v) = 4u + 3v y(u,v) = 4v z(u,v) = 0

Figure 4.37 : Représentation de la surface paramétrique de l’exemple 8

On désire calculer la position de la surface dans l’espace aux différentes coordonnées (u,v)
suivantes : (1, 0), (0, 1) et (0.8, 0.8). Pour y arriver, il suffit simplement de remplacer les
paramètres u et v dans les trois équations x(u,v), y(u,v) et z(u,v). Le tableau suivant présente
les résultats obtenus.

Tableau 4.2 : Évaluation du lieu de passage de la surface de l’exemple 8


u v x(u,v) = 4u + 3v y(u,v) = 4v z(u,v) = 0 Point sur la figure 4.37
1 0 4 0 0 A
0 1 3 4 0 B
0.8 0.8 5.6 3.2 0 C

Une surface paramétrique possède donc 4 frontières (u=0, u=1, v=0 et v=1). Pour tracer la
frontière d’une surface, il suffit de remplacer la valeur du paramètre u ou v par la valeur 0 ou 1
afin d’obtenir trois équations paramétriques d’une courbe définissant cette frontière. Par
exemple, la frontière correspondant à v=0 est décrite par les trois équations paramétriques
suivantes :
x(u,0) = 4u + 3(0) = 4u
y(u,0) = 4v = 4(0) = 0
z(u,0) = 0

Ces trois équations définissent donc une courbe paramétrique car il ne reste qu’une seule
inconnue dans les équations, en l’occurrence u. La courbe frontière v=0 possède donc les trois
équations paramétriques x = 4u, y = 0 et z = 0 avec u variant entre 0 et 1. Cette courbe est
représentée par le tireté à la figure 4.37.

4.30
Exemple 9 : Équations paramétriques d’une surface tridimensionnelle
Il est demandé de tracer l’allure de la surface décrite par les trois équations paramétriques
suivantes :
x(u,v) = 2u y(u,v) = 1 + u + 2v - uv z(u,v) = uv + 2v2 - 2uv2

Pour représenter une surface paramétrique dans l’espace tridimensionnel x-y-z, un système de
CAO calcule les coordonnées x, y et z d’un grand nombre de points par lesquels passe la
surface en évaluant les trois équations paramétriques x(u,v) y(u,v) et z(u,v) à différentes valeurs
de u et de v. Pour cet exemple, nous allons dans un premier temps positionner les quatre
sommets de la surface puis, dans un second temps, tracer les quatre courbes frontières.

Les sommets de la surface correspondent aux quatre coordonnées paramétriques (0,0), (0,1),
(1,0) et (1,1) dans le repère u-v. Pour déterminer la position des sommets dans l’espace x-y-z, il
suffit simplement de remplacer les coordonnées u et v de chaque sommet dans les trois
équations paramétriques. Le résultat des calculs est donné dans le tableau 4.3 alors que la
figure 4.38 positionne les sommets dans un espace tridimensionnel. À la figure 4.38, une boîte a
été tracée afin de mieux percevoir le positionnement des sommets dans l’espace. Cependant,
en procédant ainsi, aucun des sommets de cette boîte ne coïncide avec l’origine. Les axes X et
Z définis dans cette figure sont donc légèrement décalés d’une unité.

Tableau 4.3 : Évaluation du lieu de passage des quatre sommets de la surface de l’exemple 9
2 2
u v x(u,v) = 2u y(u,v) = 1 + u + 2v - uv z(u,v) = uv + 2v - 2uv Point sur la figure 4.38
0 0 0 1 0 A
1 0 2 2 0 B
0 1 0 3 2 C
1 1 2 3 1 D

Figure 4.38 : Sommets de la surface de l’exemple 9

Comme pour l’exemple précédent, les courbes frontières de la surface sont obtenues en
replaçant la valeur du paramètre u ou v par la valeur 0 ou 1 afin d’obtenir trois équations
paramétriques d’une courbe. Ainsi, pour la frontière v=0, on obtient les équations paramétriques
suivantes :
x(u) = 2u y(u) = 1+ u z(u) =0 avec 0  u  1

4.31
Ces équations paramétriques représentent une droite qui débute au point (0,1,0) lorsque u=0 et
se termine au point (2,2,0) lorsque u=1. La frontière v=0 relie donc les points A et B de la
figure 4.38. Pour les frontières u=1 et v=1, on obtient respectivement des droites qui relient les
points B et D (frontière u=1) et les points C et D (frontière v=1). Pour la frontière u=0, les
équations paramétriques suivantes sont obtenues :
x(v) = 0 y(v) = 1+ 2v z(v) = 2v2 avec 0  v  1

On remarque que c’est le paramètre v qui varie cette fois-ci entre 0 et 1 pour définir la courbe.
Les équations paramétriques ne représentent plus une droite (à cause du terme quadratique en
z), mais bien une parabole qui débute au point (0,1,0) lorsque v=0 et se termine au point (0,3,2)
lorsque v=1. La parabole relie donc les sommets A et C de la figure 4.38. Enfin, la figure 4.39
présente les quatre frontières de la surface ainsi qu’une multitude de courbes pour lesquelles la
valeur du paramètre u ou v est constante.

Figure 4.39 : Frontières (gauche) et allure générale (droite) de la surface de l’exemple 9

4.2.2 Surfaces définies par des courbes

De nos jours, les surfaces ne sont généralement pas construites en définissant leurs équations
paramétriques. Elles le sont plutôt par l’entremise de courbes ou de points qui leur servent de
frontière ou de support. Dans les paragraphes qui suivent, quelques techniques de construction
des surfaces sont présentées, mais les possibilités offertes par les systèmes de CAO modernes
sont nettement plus nombreuses.

Parmi les nombreuses techniques employées par les systèmes de CAO pour construire des
surfaces à partir de courbes prédéfinies, seulement deux d’entre elles sont discutées ici, soit les
surfaces obtenues par transformation géométrique d’une courbe et les surfaces appuyées par
plusieurs sections.

4.2.2.1 Surface obtenue par transformation géométrique d’une courbe

Dans ce type de surface, une courbe dont l’équation est connue (arc de cercle, droite, spline,
etc.) subit des transformations géométriques (translation, rotation, etc.) afin de définir une
surface. Les cylindres tabulés (ou surfaces extrudées), les surfaces balayées et les surfaces de
révolution en sont des exemples.

4.32
Surface balayée
Cylindre

Surface de révolution

Figure 4.40 : Surfaces construites par transformation géométrique de courbes

La figure 4.41 montre une surface balayée et le quadrillage sur la surface représente les lignes
pour lesquelles la valeur du paramètre u ou v est constante. Ainsi, la section au début de la
surface (ligne pleine) est un arc de cercle pour lequel le paramètre v est constant et égal à 0.
Cet arc de cercle est décrit par trois équations paramétriques qui varient entre u=0 et u=1. Le
même arc de cercle subit des transformations géométriques (déplacement et rotation) pour
définir d’autres sections de la surface à différentes valeurs de v. Par exemple, la figure 4.41
montre aussi la section de la surface qui correspond à la valeur du paramètre v = 0.35. Cette
section est aussi un arc de cercle de mêmes dimensions que le premier, mais avec des
équations paramétriques en fonction de u qui diffèrent (à cause des transformations
géométriques appliquées).

Dans l’autre direction, on retrouve les trajectoires de la surface balayée. Ces trajectoires sont
des courbes pour lesquelles le paramètre u est constant et dont les équations sont exprimées
en fonction du paramètre v qui varie entre 0 et 1. Les tiretés à la figure 4.41 représentent les
courbes correspondant à u=0 et à u=0.2. La courbe u=0 est une frontière de la surface qui relie
tous les points correspondant à u=0 de chaque section en arc de cercle. De la même façon, la
trajectoire à u=0.2 relie tous les points de chaque section qui correspondent à cette valeur du
paramètre u.

Figure 4.41 : Surface balayée

4.33
4.2.2.2 Surface appuyée par plusieurs sections

Les surfaces appuyées par plusieurs sections sont appelées en anglais « blend » ou « loft ».
Chaque section Si(u) de la surface correspond à une valeur constante du paramètre v et est
décrite par une courbe paramétrique où le paramètre u varie entre 0 et 1. Il est à noter que les
sections ne reposent pas nécessairement sur des plans parallèles également distancés les uns
des autres. De plus, la valeur de v associée à chaque section n’est pas nécessairement
uniformément incrémentée d’une section à l’autre

S(
S 3 u)
2 (u
)

v=1
S1
(u
)

S(
0 u)
v=2/3
v=1/3
v=0

Figure 4.42 : Représentation des sections d’une surface de type « blend »

La forme de la surface dans l’autre direction est décrite par des courbes T(v) reliant le point de
chaque section qui correspond à une valeur de u donnée. Ainsi, si la surface est appuyée par 6
sections, 6 points (x,y,z) dans l’espace seront connus. De plus, une valeur du paramètre v peut
être attribuée à chacun de ces points, en l’occurrence le paramètre associé à chaque section.

En connaissant les coordonnées (x,y,z) du point de chaque section qui correspond à une valeur
du paramètre u donnée, il est alors possible de générer une courbe T(v) où le paramètre v varie
de 0 (à la première section) jusqu’à 1 (à la dernière section). Cette courbe T(v) peut être une
spline cubique. La figure 4.43 illustre la génération des courbes T(v) à partir des sections S(u).

Figure 4.43 : Génération des courbes T(v) à partir des sections S(u)

Les surfaces réglées représentent le cas le plus simple de surfaces appuyées par plusieurs
sections. En effet, une surface réglée ne compte que deux sections, soit S0(u) et S1(u) qui
correspondent respectivement à v=0 et v=1 (voir la partie de gauche de la figure 4.44). Sur

4.34
chacune de ces sections, un point associé à une valeur donnée du paramètre u peut être
calculé, ce qui génère deux points dans l’espace. Ces points sont ensuite reliés entre eux par
une droite. La partie centrale de la figure 4.44 montre deux paires de points qui correspondent
respectivement à u=0.2 et u=0.6. La forme de la surface ainsi obtenue (voir la partie de droite de
la figure 4.44) peut être vue comme une droite qui glisse le long de deux rails, ces dernières
étant les deux courbes frontières.

Figure 4.44 : Création d’une surface réglée

Le positionnement d’un point sur une surface réglée est relativement simple. Lorsque v=0, il faut
que la surface suive exactement la courbe S0(u). Lorsque v=1, la surface doit alors être décrite
par S1(u). Pour une valeur intermédiaire du paramètre v, c’est la loi des mélanges (équation
linéaire qui génère une droite) qui s’applique. Par exemple, le point de la surface pour lequel
u=0.2 et v=0.9 est beaucoup plus près de la courbe frontière S1 (qui correspond à v=1) que de la
frontière S0 (qui correspond à u=0). En fait, ce point se trouve à exactement 90% de la distance
sur la droite qui relie le point S0(0.2) au point S1(0.2).

Exemple 10 : Positionnement d’un point sur une surface réglée


Il est demandé de calculer la position du point sur une surface réglée qui correspond à u=0.6 et
v=0.7. Les frontières à v=0 et v=1 de la surface réglée sont respectivement représentées par les
équations paramétriques suivantes :

Frontière S0(u)  x(u) = 3 y(u) = 3u z(u) = -u2


Frontière S1(u)  x(u) = 0 y(u) = 2u z(u) = 4u2-4u+1

La première étape est de calculer les points qui correspondent à u=0.6 sur chaque frontière. En
remplaçant u dans les équations de la frontière S0 par 0.6, on obtient le point A (voir figure 4.45)
dont les coordonnées sont (x, y, z) = (3, 1.8, -0.36). De la même façon pour la frontière S1, on
obtient le point B positionné à (x, y, z) = (0, 1.2, 0.04).

Par la suite, on sait qu’une surface réglée est définie par une droite qui relie les points de même
valeur de u le long des courbes frontières. Par conséquent, le point sur la surface dont les
coordonnées paramétriques sont (u, v) = (0.6, 0.7) repose sur la droite qui relie les points qui
viennent tout juste d’être calculés (les points A et B à la figure 4.45). La droite débute donc à
v=0 au point A (3.0, 1.8, -0.36) pour se terminer à v=1 au point B (0.0, 1.2, 0.04). Pour trouver la
position à v=0.7 (le point C à la figure 4.45), il suffit d’appliquer la même démarche vue
auparavant dans ce chapitre (exemple 1 à la page 4.3) pour calculer les coordonnées du point
recherché. Les coordonnées du point recherché sont donc C (0.9, 1.38, -0.08).

4.35
xC = xA + v (xB – xA) = 3.0 + 0.7 (0.0 – 3.0) = 0.9
yC = yA + v (yB – yA) = 1.8 + 0.7 (1.2 – 1.8) = 1.38
zC = zA + v (zB – zA) = -0.36 + 0.7 (0.04 – -0.36) = -0.08

Figure 4.45 : Surface réglée de l’exemple 10

4.2.3 Concept de « patch »

Une surface complexe peut être construite à partir d’une série de « patch » qui sont jointes côte
à côte. Une surface composée est alors obtenue. C’est un concept analogue aux courbes
composées (les splines cubiques par exemple) qui sont construites en joignant bout à bout des
segments.

Segment #3 Segment #4

Gé n
éra Surface composée
lisa
tion
Courbe composée

Figure 4.46 : Analogie entre les courbes composées et le concept de « patch »

Généralement, les « patch » sont définies par des courbes qui représentent les délimitations. En
d’autres mots, les frontières d’une « patch » sont habituellement des courbes. Il existe différents
types de « patch » qui peuvent être employés pour représenter une surface composée. Ce qui
différencie un type de « patch » d’un autre est sa formulation mathématique. Le choix de la
formulation mathématique est fonction du niveau de continuités qu’on désire obtenir entre les
« patch » de la surface composée. Par exemple, la figure 4.47 illustre la continuité qui existe

4.36
entre deux « patch ». Des continuités de position C0, de pente C1 ou de courbure C2 peuvent
être obtenues entre les différentes « patch ».

- Continuités C0 :
« patch » de Coons

- Continuités C0 et C1 :
« patch » bicubique

Imposition des continuités

Figure 4.47 : Représentation des continuités entre les « patch » d’une surface composée

Certaines formulations permettent d’imposer plus ou moins de continuités entre les « patch ». Si
seulement la continuité de position C0 n’est requise, les « patch » de Coons constituent la
meilleure alternative. La figure 4.48 illustre une glissoire composée de deux « patch » de Coons
qui génèrent une surface composée. Un agrandi de la jonction permet de bien apprécier la
continuité C0 et la discontinuité C1 entre les deux « patch ».

Figure 4.48 : Continuité C0 entre 2 « patch » de Coons

Une nouvelle surface composée peut être obtenue en forçant la continuité C1 en plus de la
continuité C0 entre les deux « patch ». Pour y arriver, des « patch » bicubiques doivent être
utilisées. La figure 4.49 reprend l’exemple de la glissoire, mais cette fois avec des « patch »
bicubiques. La partie de droite de la figure permet d’apprécier les continuités de position et de
pente.

4.37
Figure 4.49 : Continuité C0 et C1 entre deux « patch » bicubiques

4.2.4 Surfaces définies par un maillage de contrôle

Le dernier type de surfaces traitées dans ce chapitre concerne les surfaces définies par un
maillage de contrôle. Ce concept est la généralisation des courbes B-splines qui sont définies
par un polygone de contrôle. En effet, un maillage de points est employé pour contrôler la
surface. La surface ne passe que par les 4 points situés dans les coins du maillage de contrôle.
Enfin, la surface est tangente dans les deux directions aux 4 coins du maillage de contrôle. La
présentation de la formulation mathématique de telles surfaces dépasse largement les objectifs
du cours. Par conséquent, les surfaces définies par un maillage de contrôle sont seulement
présentées seulement de manière qualitative.

Polygone
de contrôle

Surface
Gé n (contrôlée par le maillage de contrôle)
éra
lisa
tion
Courbe B-spline
(contrôlée par le polygone de contrôle)

Maillage
de contrôle

Figure 4.50 : Surface contrôlée par un maillage de points

Il existe plusieurs formulations de surfaces définies par un maillage de contrôle, les principales
étant les surfaces de Bezier qui offrent un contrôle global, les surfaces B-splines qui offrent un
contrôle local et les surfaces NURBS qui se veulent les plus générales de toutes. La figure 4.51
montre quelques exemples de surfaces B-splines.

Surfaces de Bezier
Figure 4.51 : Exemples de Surfaces B-splines
surface B-splines
(contrôle global) (contrôle local)
Les développements mathématiques soutenant les surfaces définies par un maillage de contrôle
dépassent largement les objectifs du cours. Par conséquent, elles ne sont présentées qu’à titre
informatif sans aborder d’exemples numériques.

4.38

Surfaces de Bezier Surfaces B-splines


Enfin, ce chapitre se veut une introduction aux concepts fondamentaux concernant les courbes
et surfaces employées en CAO pour modéliser des pièces de géométrie complexes. Il existe
plusieurs autres types de courbes et surfaces qui n’ont volontairement pas été abordés ici.
Cependant, les notions de base vues dans ce chapitre ont été abordées dans le but d’initier les
usagers potentiels de systèmes de CAO à la terminologie et aux caractéristiques intrinsèques
des différents types de courbes et surfaces (paramétrisation, continuité, contrôle local/global,
etc.) afin de les utiliser adéquatement et efficacement.

4.39
Exercices

Exercice #1
Évaluer la fonction y1(x) = -2x2 + ex/2 ainsi que sa pente à x=1.5

Exercice #2
Évaluer la courbure de y2(x) = 2(x+1)2 + cos(3x) à x = -

Exercice #3
Une courbe paramétrique bidimensionnelle est décrite par les équations suivantes :
x(u) u u3 y(u)=0.5u2+cos(2u)–1
a) Tracer l’allure de la courbe sur un graphique
b) Évaluer la position, la pente dy/dx et la courbure de la courbe lorsque u=0.25

Exercice #4
Sachant que x = 3-2u, faire le changement de variable de façon à exprimer y3(x) = -4x3 + 2x2 – 1
en fonction de « u » plutôt que de « x »

Exercice #5
Obtenir les équations paramétriques x = x(u) et y = y(u) des courbes suivantes en fonction du
paramètre « u » variant entre 0.0 et 1.0 :
c) droite reliant les points p0(2,5) et p1(-1,3)
d) fonction cubique y = ½ x3 + 4 comprise entre x = 0.5 et x = 2
e) fonction analytique y = x2 e-x comprise entre x = 0 et x = 2

Exercice #6
Obtenir les équations paramétriques x = x(u), y = y(u) et z = z(u) des courbes suivantes en
fonction du paramètre « u » variant entre 0.0 et 1.0 et vérifier les équations en utilisant un
système de CAO commercial :

a) une hélice de 3 unités de rayon dont le pas


est de 4 unités comportant 7½ spires

b) une spirale centrée à (y, z) = (0, 0) reposant


dans le plan x = 2 dont le rayon varie entre
2 et 8 unités en effectuant 2 tours complets

Exercice #7
a) Spécifier si la paire de courbes suivantes exprimées en notation analytique présente une
continuité C0, C1 et C2 à x = 1: y1(x) = x3 + 1 et y2(x) = -0.5x4 + 5x – 2.5

b) Spécifier si la paire de courbes suivantes exprimées en notation paramétrique présente une


continuité C0, C1 et C2 à leur jonction :
Courbe 1 : x1(u) = ¼ u3 + u + 1 y1(u) = u2 + 2u + 1
Courbe 2 : x2(u) = u y2(u) = u2

4.40
Exercice #8
On désire faire passer un polynôme de Lagrange par les 4 points suivants : P0(2,-1), P1(3,½),
P2(0,2) et P3(-1,½). Obtenir les équations paramétriques x(u) et y(u) du polynôme de Lagrange
en supposant la paramétrisation particulière suivante : u0=-1, u1=0, u2=1 et u3=2. Il est
souhaitable d’utiliser l’ordinateur ou la calculatrice pour résoudre le système d’équations.

Exercice #9
Une spline cubique relie les trois points suivants : P0(1,1), P1(5,4), P2(8,0). Calculer la position
(x,y) de la courbe qui correspond à u=0.3 et u=0.8 de la spline. Il est à noter que la courbure de
la spline est nulle aux deux extrémités. La paramétrisation utilisée est basée sur la distance
linéaire entre les points. Il est souhaitable d’utiliser l’ordinateur ou la calculatrice pour résoudre
le système d’équations.

Exercice #10
a) Dessiner l’allure de la surface décrite par les équations paramétriques suivantes :
x(u,v) = u2v y(u,v) = 2v z(u,v) = u
b) Évaluer la position (x, y, z) du point dont les coordonnées paramétriques sont u=0.25 et
v=0.6.

Exercice #11
La frontière v=0 d’une surface extrudée est décrite par les équations paramétriques suivantes :
x(u) = -5u2 + 4 y(u) = 6 z(u) = 2u - 1

Positionner sur la surface extrudée le point correspondant aux coordonnées paramétriques


suivantes : (u,v) = (0.85, 0.15).

4.41
Exercice #12
Une surface réglée est décrite par les courbes A et B dont les équations sont données à la
figure suivante.
Courbe A
2
y(x) = -x /4 + 3
z=2

z
y

x
Courbe B
xB(u) = 6u – 3
yB(u) = b sin(2u)
zB(u) = 0

a) Déterminer l’équation paramétrique yA(u) si xA(u) = 4u – 2 et zA(u) = 2.

b) Déterminer la valeur de la constante b dans l’équation yB(u) pour que dy/dx = 3 à la fin
de la courbe B.

c) Évaluer la position (x, y, z) de la surface réglée lorsque u = 0.4 et v = 0.5.

Exercice #13
Les équations paramétriques des sections d’une surface appuyée par trois sections sont
spécifiées dans la figure ci-dessous. La forme de la surface dans la direction v est définie par
des splines cubiques pour lesquelles les pentes paramétriques sont nulles aux extrémités.
a) Dessiner approximativement à main levée l’allure de la surface.
b) Calculer la position (x,y,z) de la surface lorsque u=0 et v=0.5.
c) Calculer la position (x,y,z) de la surface lorsque u=0.5 et v=0.75.

4.42
Chapitre 5
Échange de données

5.1 Mise en situation

Avec la mondialisation des marchés, il devient de plus en plus fréquent que des firmes aient
recours à la sous-traitance pour la conception, la fabrication ou l’assemblage d’un produit ou
d’une composante d’un produit. De plus, avec l’avancement de la technologie, il est maintenant
devenu difficile de maîtriser tous les volets (mécanique, électronique, etc.) d’un produit, ce qui
nécessite des partenariats technologiques entre différentes entreprises. Que ce soit dans un
contexte de sous-traitance ou de partenariat, les différentes firmes qui participent au
développement d’un nouveau produit doivent constamment échanger de l’information. Si les
entreprises en cause développent le produit avec les mêmes systèmes de CAO, l’échange de
données s’effectue sans embûche. Par contre, si les systèmes de CAO diffèrent d’une firme à
l’autre, ce qui est fréquemment le cas étant donné la diversité des systèmes sur le marché
d’aujourd’hui, l’échange de données devient un problème qui doit être résolu.

Même lorsqu’un projet n’implique qu’une seule entreprise, l’échange de données entre différents
systèmes peut devenir une préoccupation. En effet, la diversité des applications périphériques
est un autre facteur qui justifie de l’échange de données entre différents systèmes de CAO. De
nos jours, des logiciels d’analyse par éléments finis, d’usinage, d’analyse de tolérances,
d’assemblage, d’analyse dynamique, de marketing, etc. viennent épauler les logiciels de
modélisation afin de rendre davantage productives les firmes qui pratiquent la CAO.
L’émergence continuelle de nouvelles applications périphériques favorise la diversité des
systèmes. Un processus efficace d’échange d’information entre toutes ces différentes
applications périphériques est donc une nécessité afin d’éviter de refaire le même travail à
chaque étape d’un projet.

Les systèmes de CAO évoluent très rapidement. Certains naissent et d’autres sont délaissés
par le monde industriel en général. Les systèmes de CAO qui innovent prennent une part
importante du marché au détriment des autres systèmes. Par conséquent, il n’est pas rare de
voir une entreprise changer de système de CAO. Toutes les données qui ont été obtenues avec
l’ancien système ne doivent donc pas être perdues à cause du changement. À titre d’exemple,
les compagnies aéronautiques doivent conserver leurs données sur une période de 20 à 50 ans,
ce qui démontre l’importance de l’établissement de mécanismes fiables et robustes afin
d’échanger de l’information entre différents systèmes de CAO.

Pour toutes ces raisons, des méthodes d’échange de données entre les systèmes de CAO ont
été développées. Dans un premier temps, ce chapitre présente les principales caractéristiques
des méthodes d’échange directe et indirecte. Par la suite, trois des principaux formats
d’échange de données sont discutés, en l’occurrence les formats IGES, STEP et DXF.

5.1
5.2 Méthodes d’échange de données

Il existe essentiellement deux façons d’échanger de l’information entre des systèmes de CAO
différents : la méthode directe et la méthode indirecte. Les avantages et inconvénients de
chaque méthode sont discutés dans les prochaines sections.

5.2.1 Méthode directe

Imaginons que deux départements d’une compagnie spécialisée dans la fabrication de moteurs
à combustion interne travaillent avec des systèmes de CAO différents. Le département en
charge de la résistance de la structure du moteur utilise le système « A », tandis que le
département responsable des échanges thermiques emploie le système « B ». Chaque système
de CAO utilise son propre format de fichier, appelé format natif, pour sauvegarder les données.
Afin de faciliter la collaboration entre les deux départements, il serait souhaitable que le système
« A » puisse lire le fichier natif du système « B », et vice versa. Un tel échange de données
réfère à la méthode directe. Ainsi, s’il y a plusieurs systèmes de CAO en jeu, chaque système
doit être en mesure de lire les fichiers natifs de tous les autres systèmes. Par exemple, la figure
6.1 montre la situation où 4 systèmes de CAO doivent être compatibles les uns avec les autres.
Ainsi, un total de 12 « traducteurs » doivent être programmés à l’intérieur des systèmes de
CAO. Un premier traducteur doit traduire le format natif du système « A » en format natif pour le
système « B », un autre doit traduire le format natif du système « A » en format natif du système
« C », et ainsi de suite. Ainsi, s’il y a N systèmes de CAO, le nombre de traducteurs qui doivent
être programmés est N·(N 1). En CAO, les « traducteurs » sont également appelés
« interfaces ».

SYSTÈME A SYSTÈME B

SYSTÈME C SYSTÈME D

Figure 5.1 : Échange de données selon la méthode directe entre 4 systèmes de CAO.

Le développement des interfaces selon la méthode directe nécessite la connaissance de la


structure de données interne des systèmes concurrents afin d’assurer un transfert d’information
robuste et précis. Ceci implique donc des ententes entre les compagnies compétitrices œuvrant
dans le développement de systèmes de CAO. Il est extrêmement difficile d’imaginer une saine
collaboration entre ces compétiteurs compte tenu de la férocité du marché. Pour y arriver, les
compagnies ont souvent recours au « reverse engineering » pour développer les interfaces.
Néanmoins, cette approche présente certaines contraintes, notamment la nécessite de
synchroniser les révisions (appelées en anglais « releases ») des systèmes de CAO concurrents
afin d’offrir un mécanisme d’échange d’information constamment à jour. En somme, peu de
systèmes de CAO sont en mesure de lire les fichiers natifs des systèmes concurrents. Lorsque
c’est le cas, l’échange d’information est rapide et généralement efficace. Cette méthode est

5.2
praticable lorsque peu de systèmes sont en jeu, ce qui est de moins en moins le cas avec la
grande diversité des systèmes et le nombre grandissant d’applications périphériques.

5.2.2 Méthode indirecte


Revenons au cas de notre motoriste dont les deux départements utilisent des systèmes de CAO
différents. Pour échanger de l’information, les deux départements pourraient utiliser un fichier
temporaire qui puisse être écrit et lu par les deux systèmes de CAO impliqués, mais qui ne
correspond pas aux fichiers natifs des systèmes. Cette approche est la méthode indirecte. Elle
adopte la philosophie de création d’une structure de données neutre, appelée format neutre,
indépendante de n’importe quel système CAO existant. Le format neutre est l’intermédiaire entre
les formats natifs des systèmes CAO en jeu. La figure 6.2 illustre l’échange de données selon la
méthode indirecte entre 4 systèmes de CAO. On remarque que chaque système de CAO doit
être en mesure de lire et d’écrire le format neutre. L’écriture s’effectue par l’intermédiaire d’un
pré-processeur, tandis que la lecture utilise un post-processeur. Ainsi, deux processeurs, ou
interfaces, doivent être développés pour chaque système de CAO. En d’autres mots, s’il y a N
systèmes de CAO, le nombre d’interfaces qui doivent être programmées est 2·N, ce qui
constitue une diminution par rapport à la méthode directe lorsque plus de trois systèmes de
CAO sont en jeu.

SYSTÈME A SYSTÈME B

SYSTÈME C SYSTÈME D

Figure 5.2 : Échange de données selon la méthode indirecte entre 4 systèmes de CAO.

Le principal avantage de la méthode indirecte est que le format neutre est indépendant de la
structure de données interne des systèmes de CAO. Ceci provoque une communication stable
avec un processus d’archivage possible. En effet, avec un format neutre, il devient possible de
conserver et de réutiliser des données sur une longue période de temps même si une entreprise
change son système de CAO au fil des années. La seule contrainte est celle relative à l’adoption
d’un format neutre commun pour l’ensemble des systèmes. Il faut éviter d’avoir un grand
nombre de formats de fichiers neutres, ce qui augmente considérablement les interfaces à
développer afin que chaque système de CAO devienne compatible avec chaque format neutre.
De plus, les entreprises qui commercialisent les systèmes de CAO doivent se conformer
parfaitement et complètement aux formats neutres existants, ce qui nécessite des normes
rigoureuses les définissant. Les fichiers neutres sont généralement plus volumineux que les
fichiers natifs de chaque système de CAO, ce qui provoque un échange de données moins
rapide et moins efficace que la méthode directe.

La méthode indirecte est celle qui prédomine aujourd’hui. En effet, il existe plusieurs formats
neutres qui ont été normalisés dont les principaux sont IGES (État-Unis), VDA/FS (Allemagne)

5.3
et SET (France). Afin de pallier la grande diversité des formats neutres, l’Organisation
Internationale de Normalisation (ISO – International Standard Organisation) travaille à mettre au
point la norme STEP afin d’en arriver un jour à un seul et unique format neutre. De nos jours, le
format neutre IGES est encore très populaire en Amérique du Nord comme protocole d’échange
de données entre différents systèmes de CAO, mais la norme STEP risque de gagner en
popularité au cours des prochaines années.

5.3 Format IGES

Les lettres IGES proviennent des mots anglais « Initial Graphics Exchange Specification ». La
première version de ce format d’échange a vu le jour en 1979 aux États-Unis. Depuis 1981, ce
format est normalisé ANSI et la version 5.3 proposée en 1997 est la plus récente version
adoptée. Cette version est stable et très fiable pour le transfert d’entités géométriques simples
(points, arcs, lignes, coniques, etc.). Cependant, la fiabilité diminue lorsque des entités plus
complexes comme les splines ou les surfaces complexes doivent être transférées.

Les fichiers IGES peuvent être sauvegardés en format binaire ou texte (ASCII). Dans ce
document, seulement le format texte sera brièvement discuté afin de donner aux étudiants un
aperçu concernant la structure d’un fichier d’échange normalisé. Un fichier texte IGES est
constitué d’un certain nombre de lignes de 80 caractères. La figure 6.3 montre le contenu d’un
fichier IGES.
séquence

IGES file generated from an AutoCAD drawing by the IGES S0000001


translator from Autodesk, Inc., translator version IGESOUT-2.0. S0000002 début
1H,,1H;,7HUNKNOWN,8HTEST.IGS,10HAutoCAD-10,11HIGESOUT-2.0,16,38,6,99, G0000001
15,7HUNKNOWN,1.0,1,4HINCH,32767,3.2767E1,13H950718.131734,1.0E-8, G0000002 globale
6.6213203435596E0,16HPatrickTerriault,3HETS,4,1; G0000003
110 1 1 1 00000000D0000001
110 1 D0000002
110 2 1 1 00000000D0000003
110 1 D0000004
100 3 1 1 0 00000000D0000005 répertoire
100 1 D0000006
100 4 1 1 0 00000000D0000007
100 1 D0000008
110,1.0,1.0,0.0,2.0,1.0,0.0; 1P0000001
110,1.0,1.0,0.0,1.0,6.0,0.0; 3P0000002
100,0.0,1.0,3.0,4.0,3.0,1.0,6.0; 5P0000003
données
100,0.0,4.0,1.0,4.0,3.0,2.0,1.0; 7P0000004
S0000002G0000003D0000008P0000004 T0000001 fin

1er caractère 73ième caractère 80 ième caractère

Figure 5.3 : Structure d’un fichier IGES.

Les 8 derniers caractères d’une ligne de texte, du 73ième au 80ième caractère inclusivement,
représentent la séquence. La séquence est simplement la numérotation des lignes et chaque
ligne possède son propre numéro. La séquence est constituée d’une lettre et d’un chiffre. La
lettre indique à quelle section appartient la ligne de texte et le chiffre correspond à la
numérotation croissante des lignes. Un fichier IGES inclut 5 sections : Début, Globale,
Répertoire, Données et Fin. Le tableau 6.1 donne la signification des lettres constituant le début
de la séquence d’une ligne en fonction de chaque section d’un fichier IGES.

5.4
Tableau 5.1 : Signification des lettres de la séquence dans un fichier IGES

Section Lettre utilisée Signification


Début S « Start »
Globale G « Global »
Répertoire D « Directory »
Données P « Parameter Data »
Fin T « Terminate »

5.3.1 Section « Début »

La section « Début » est simplement utilisée pour inscrire des commentaires selon un format
libre. En effet, sur des lignes de 80 caractères, l’usager peut inscrire toute l’information qu’il juge
pertinente sur autant de lignes qu’il en a besoin. Les 72 premiers caractères sont employés pour
inscrire les commentaires proprement dits, tandis que les 8 derniers caractères sont employés
pour indiquer la séquence. Cette dernière commence par la lettre S afin de spécifier qu’il s’agit
de la section « Début ». Il est à noter que les espaces vides sont comptabilisées comme des
caractères. En résumé, la section « Début » d’un fichier IGES est constituée en conformité au
format donné au tableau 6.2.

Tableau 5.2 : Structure de la section « Début » d’un fichier IGES

1 72 73 80
Dans la section début, l’usager peut y inscrire S0000001
toute l’information qu’il juge pertinente, mais en S0000002
respectant toujours les 72 caractères par ligne S0000003

5.3.2 Section « Globale »

La section « Globale » contient une liste de 24 paramètres nécessaires pour la lecture du fichier.
Chaque paramètre est exprimé dans un champ séparé par un caractère spécial. Ce caractère
de délimitation des champs est le premier paramètre spécifié dans la section globale. Le second
paramètre, le caractère de délimitation d’un enregistrement, spécifie la fin des informations
comprises sur une ligne. Par défaut, les caractères « , » et « ; » sont respectivement employés
comme caractères de délimitation des champs et caractère de délimitation des enregistrements.
Tous les champs sont listés les uns après les autres sur une ou plusieurs lignes. Comme le
montre le tableau 6.3, la façon d’indiquer les données dans le fichier IGES est similaire à la
section « Début ». En effet, les 72 premiers caractères d’une ligne servent à spécifier les 24
paramètres, tandis que les 8 derniers caractères sont utilisés pour indiquer la séquence des
lignes, laquelle débute par la lettre « G ». La signification de tous les champs de la section
« Globale » est la suivante :

5.5
1. Caractère spécial de délimitation des 15. Nom des unités
champs 16. Nombre possible d’épaisseur de
2. Caractère de délimitation d’un lignes différentes (1 à 32768)
enregistrement 17. Épaisseur maximale des lignes
3. Identification du logiciel CAO 18. Date et heure de la création du fichier
4. Nom du fichier IGES 19. Résolution minimale utilisable par
5. Identification du logiciel traducteur ayant l’utilisateur (la plus petite distance)
généré le fichier 20. Coordonnée maximale des limites du
6. Version du préprocesseur modèle
7.–11. Précision des nombres (entiers, réels 21. Nom de l’auteur
simple et double précision) 22. Organisation
12. Identification du logiciel CAO récepteur 23. Numéro de la version IGES utilisée
13. Échelle du modèle 24. Norme de dessin utilisée (1=ISO,
14. Indicateur d’unités (1=pouce) 2=AFNOR, 3=ANSI, 4=BSI, 5=CSA)

Tableau 5.3 : Structure de la section « Globale » d’un fichier IGES

1 72 73 80
Paramètre1,Paramètre2,Paramètre3,Paramètre4,Paramètre5, G0000001
Paramètre6,Paramètre7,Paramètre8,Paramètre9, G0000002
Paramètre10,Paramètre11,Paramètre12,Paramètre13, G0000003
Paramètre14,Paramètre15,Paramètre16,Paramètre17, G0000004
Paramètre18,Paramètre19,Paramètre20,Paramètre21, G0000005
Paramètre22,Paramètre23,Paramètre24; G0000006

Lorsqu’un paramètre de la section « Globale » est une chaîne de caractères (les champs 1, 2, 3,
4, 5, 6, 12, 15, 18, 21 et 22), le nombre de lettres constituant la chaîne doit être spécifié. Ainsi, le
paramètre débute par un chiffre donnant le nombre de caractères de la chaîne, suivi par la lettre
« H » qui à son tour est suivie par la chaîne de caractères proprement dite. Par exemple, si le
nom de l’auteur du dessin est « Anonyme », le champ 21 sera inscrit dans le fichier comme
suit : « 7HAnonyme ».

5.3.3 Section « Répertoire »

Chaque entité (ligne, arc de cercle, spline, etc.) est décrite par un enregistrement dans la
section « Répertoire » et par un enregistrement dans la section « Données ». Les informations
contenues dans la section « Répertoire » sont de nature plutôt générale, tandis que celles
contenues dans la section « Données » sont plus souvent qu’autrement de nature géométrique.
Dans la section « Répertoire », l’information décrivant une entité est contenue dans un
enregistrement formé de 18 champs répartis sur deux lignes de 80 caractères. Chaque champ
compte 8 caractères. Le tableau 6.4 donne la structure d’un enregistrement de la
section « Répertoire ». Comme précédemment, la première ligne du tableau donne la
numérotation des caractères, tandis que les indicatifs « C1 » à « C18 » spécifient la
numérotation des 18 champs de chaque enregistrement.

5.6
Tableau 5.4 : Structure de la section « Répertoire » d’un fichier IGES

1 8 9 16 17 24 25 32 33 40 41 48 49 56 57 64 65 72 73 80
Type Pointeur Structure Motif de Niveau Vue Matrice Étiquette Numéro Numéro de
d’entité vers la ligne de affichage de statut Séquence
section transfo.
Données

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
Type Épaisseur Couleur Nombre Forme Étiquette Numéro Numéro de
d’entité de ligne de lignes d’entité de l’entité Séquence
dans la
section
Données

C11 C12 C13 C14 C15 C16 C17 C18

Pour chacun des champs, un code est donné pour décrire le paramètre correspondant. Par
exemple, les champs C1 et C11 donnent le type d’entité. Les plus récentes versions des fichiers
IGES supportent plus de 50 types d’entités dont les principaux sont :

100 : Arc circulaire 116 : Point


102 : Courbe composée 120 : Surface de révolution
104 : Conique 122 : Cylindre tabulé
108 : Plan 124 : Matrice de transformation
110 : Ligne droite 126 : Courbe B-spline
112 : Spline 128 : Surface de B-spline

Le champ C2 donne le numéro de séquence de l’enregistrement qui décrit la même entité, mais
dans la section « Données ». Le champ C13 spécifie la couleur de l’entité. Les principaux codes
de couleur sont les suivants :

0 : Aucune 3 : Vert 6 : Magenta


1 : Noir 4 : Bleu 7 : Cyan
2 : Rouge 5 : Jaune 8 : Blanc

Le champ C7 spécifie si une entité a été transformée par une matrice de transformation. Si tel
est le cas, le numéro donné dans ce champs indique quelle matrice de transformation est
appliquée à l’entité en spécifiant le numéro de la ligne dans la section « Répertoire » de la
matrice de transformation en question.

L’objectif ici n’est pas de décrire en détail le contenu de chaque champ compris dans la section
« Répertoire », mais plutôt d’initier le lecteur à la structure rigide que doit présenter un fichier
normalisé d’échange de données. Certains champs sont fréquemment inutilisés et dans un tel
cas, ils sont laissés vides, tout comme du 41ième au 56ième caractères de la deuxième ligne d’un
enregistrement.

5.7
5.3.4 Section « Données »

Cette section contient les informations géométriques de chaque entité précédemment définie
dans la section « Répertoire ». Comme le montre le tableau 6.5, les 64 premiers caractères des
lignes dans la section « Données » sont réservés pour l’énumération des paramètres de chaque
entité. On retrouve dans un premier temps le numéro du type d’entité suivi d’un certain nombre
de paramètres propres à chaque entité. Le 65e caractère de chaque ligne est toujours vide. Par
la suite, les caractères compris entre la 66e et la 72e position sont réservés à établir le lien avec
la section « Répertoire ». En effet, chaque ligne de la section « Données » est jumelée à une
ligne de la section « Répertoire » et le chiffre compris dans ce champ pointe vers le numéro de
séquence d’une ligne de la section « Répertoire ». Enfin, comme toutes les autres sections, les
8 derniers caractères servent à attribuer à chaque ligne de la section un numéro de séquence
débutant par la lettre « P ».

Tableau 5.5 : Structure de la section « Données » d’un fichier IGES

1 64 65 66 72 73 80
Type d’entité, paramètre, paramètre, paramètre, ..., paramètre; Pointeur Numéro
vers la de
section Séquence
Répertoire

Comme il en a été discuté précédemment, le nombre de paramètres dépend du type d’entité. Le


but ici n’est pas de fournir au lecteur la description des paramètres requis pour tous les types
d’entités, mais simplement de fournir un minimum de compréhension sur la structure d’un fichier
IGES. Ainsi, seulement la structure de la section « Données » associée aux quatre types
d’entités suivants est présentée :

Pour une ligne (type 110), les coordonnées x, y et z des points aux extrémités de la
droite doivent être spécifiés. Si les points 1 et 2 correspondent respectivement au
début et à la fin de la droite, alors 6 paramètres doivent être spécifiés selon l’ordre
suivant :
x1, y1, z1, x2, y2, z2

Pour une matrice de transformation (type 124), les 12 éléments importants de la


matrice sont donnés dans l’ordre suivant, en omettant de spécifier la dernière ligne
de la matrice qui est toujours la même :

E11, E12, E13, E14, E21, E22, E23, E24, E31, E32, E33, E34

E 11 E 12 E 13 E 14
E 21 E 22 E 23 E 24
où Matrice de transformation
E 31 E 32 E 33 E 34
0 0 0 1

Pour un point (type 116), les coordonnées x, y et z du point sont simplement


énumérées :
x, y, z

5.8
Pour un arc de cercle (type 100), les 2 coordonnées du centre de l’arc (zcentre, xcentre,
ycentre), deux coordonnées du point de début de l’arc (xdébut, ydébut) et deux autres
coordonnées du point d’arrivée de l’arc (xfin, yfin) doivent être définies. Par
conséquent, un total de 7 paramètres doivent être spécifiés selon l’ordre particulier
suivant :
zcentre, xcentre, ycentre, xdébut, ydébut, xfin, yfin

Dans le cas des arcs de cercles (entité de type 100), la convention implique qu’un arc soit
balayé dans le sens anti-horaire à partir du point de départ jusqu’au point d’arrivée. Les
coordonnées xdébut, ydébut, xfin et yfin doivent donc être spécifiées dans le bon ordre. Pour obtenir
un arc de cercle qui n’est pas dans le plan z = zcentre, une matrice de transformation (entité de
type 124) devra être définie et employée pour transformer l’arc de cercle.

5.3.5 Section « Fin »

La section « Fin » d’un fichier IGES n’est composée que d’une seule ligne et elle marque la fin
du fichier. La ligne est constituée de 5 champs de 8 caractères chacun. Les 8 derniers
caractères, en l’occurrence T0000001, correspondent à la séquence de la seule ligne du fichier
appartenant à la section « Fin ». Les 33e au 72e caractères inclusivement sont inutilisés et on y
retrouve des espaces vides. Les quatre premiers champs donnent le dernier numéro de
séquence des sections précédentes. Une telle façon de procéder permet la validation des
entrées. Le tableau 6.6 spécifie la structure de la seule ligne de la section « Fin » d’un fichier
IGES qui est constituée de 5 lignes dans la section « Début », 6 lignes dans la section
« Globale », 102 lignes dans la section « Répertoire » et 54 lignes dans la section « Données ».

Tableau 5.6 : Structure de la section « Fin » d’un fichier IGES

1 8 9 16 17 24 25 32 33 72 73 80
S0000005 G0000006 D0000102 P0000054 T0000001

5.3.6 Exemple de fichier IGES

Le dessin montré à la figure 6.4 est constitué de deux arcs de cercles et de deux droites. Ce
dessin a été réalisé avec la version 10 du logiciel de DAO AutoCad. Le dessin a ensuite été
exporté afin de créer un fichier IGES. Le fichier IGES obtenu est transcrit immédiatement après
la figure 6.4.
(1,6)
R3

R2
(1,3) (4,3)

(1,1) (2,1) (4,1)

Figure 5.4 : Dessin constitué de 2 droites et 2 arcs de cercle

5.9
IGES file generated from an AutoCAD drawing by the IGES S0000001
translator from Autodesk, Inc., translator version IGESOUT-2.0. S0000002
1H,,1H;,7HUNKNOWN,8HTEST.IGS,10HAutoCAD-10,11HIGESOUT-2.0,16,38,6,99, G0000001
15,7HUNKNOWN,1.0,1,4HINCH,32767,3.2767E1,13H950718.131734,1.0E-8, G0000002
6.6213203435596E0,16HPatrickTerriault,3HETS,4,1; G0000003
110 1 1 1 00000000D0000001
110 1 D0000002
110 2 1 1 00000000D0000003
110 1 D0000004
100 3 1 1 0 00000000D0000005
100 1 D0000006
100 4 1 1 0 00000000D0000007
100 1 D0000008
110,1.0,1.0,0.0,2.0,1.0,0.0; 1P0000001
110,1.0,1.0,0.0,1.0,6.0,0.0; 3P0000002
100,0.0,1.0,3.0,4.0,3.0,1.0,6.0; 5P0000003
100,0.0,4.0,1.0,4.0,3.0,2.0,1.0; 7P0000004
S0000002G0000003D0000008P0000004 T0000001

Avec cet exemple, on remarque que les 5 sections sont effectivement présentes dans le fichier.
En effet, il s’agit de regarder la lettre S, G, D, P ou T du numéro de séquence de chaque ligne.
On note également que le dessin sauvegardé dans le fichier « test.igs » est constitué de 4
entités, deux lignes droites (entités de type 110) et deux arcs de cercle (entités de type 100).
Dans la section « Répertoire », très peu d’information y est présente. Le positionnement dans
l’espace s’effectue par l’entremise des coordonnées qui sont spécifiées dans la section
« Données ». Enfin, il est intéressant d’observer les doubles liens qui existent entre les
informations concernant une entité dans les sections « Répertoire » et « Données ». Par
exemple, l’arc de cercle dont les coordonnées géométriques sont données à la ligne P0000003
est lié à la ligne dont la séquence est D0000005 (voir le chiffre 5 inscrit au 72ième caractère de la
ligne P0000003). Inversement, le second champs appartenant à la ligne D0000005 dans la
section « Données » comprend le chiffre 3, ce qui établi le lien avec la ligne P0000003.

Cet exemple se veut un survol de la structure d’un fichier normalisé IGES. Le but recherché ici
est de démontrer toute la rigidité de la structure de données et du grand besoin de règles
strictes afin que tous les systèmes de CAO puissent échanger de l’information de façon robuste
et précise. Avec une telle rigidité de la structure de données, il n’est pas surprenant de noter que
certaines fonctionnalités d’un modèle construit dans un système de CAO peuvent être perdues
lors de l’échange de données vers un autre système. Ceci est particulièrement le cas d’un
modèle paramétrique ou certaines dimensions dépendent de d’autres selon des relations
préétablies. Par exemple, si l’épaisseur d’une pièce doit être la moitié de sa largeur, il est
possible de définir des relations dans les systèmes de CAO modernes de telle sorte que si la
largeur de la pièce est modifiée, l’épaisseur sera automatiquement ajustée. Cependant, en
transférant ce modèle par l’entremise d’un fichier IGES, toutes les relations définies pour
contrôler les dimensions seront inévitablement perdues.

5.4 Format STEP


Le format IGES ne se limite qu’aux données présentées selon un format bien défini et cela sans
s’attarder à l’utilité de ces données pour une application spécifique. Par exemple, le transfert de
la géométrie d’une pièce est le même, que ce soit pour réaliser une analyse par éléments finis
afin de calculer la résistance mécanique de la structure ou pour déterminer les chemins d’outils
afin d’utiliser une machine à commandes numériques pour la fabrication de la pièce. De plus, le
format IGES ne procure aucun moyen de vérifier si les systèmes de CAO se conforment au
standard et ce format n’exige aucunement que la norme soit implantée dans sa totalité. Ainsi, un
système de CAO peut limiter le nombre d’entités IGES supportées, ce qui peut devenir très
problématique.

5.10
La norme STEP, pour « Standard for the Transfer and Exchange of Product model data » vise à
trouver une solution aux lacunes de la norme IGES. Le développement de la norme STEP est
coordonné par l’ISO et unit les efforts de deux importants groupes de travail : le PDES aux
États-Unis (« Product Data Exchange Specification ») et le CAD-I en Europe (« Computer-Aided
Design Interfaces »). Le travail est tellement considérable que plus de 200 sous-comités
développent une partie de la norme. Par exemple, le comité 104 se concentre sur l’échange de
données concernant les analyses par élément finis, le comité 42 étudie la représentation
géométrique et topologique des modèles et le comité 519 est responsable du tolérancement
géométrique.

La structure du fichier d’échange en format STEP est passablement plus compliquée que la
structure d’un fichier IGES. En effet, un langage de programmation orientée-objet, en
l’occurrence EXPRESS, est employé pour décrire l’information transférée. Différents niveaux
sont utilisés pour catégoriser les données échangées. Par conséquent, la description de la
structure d’un fichier STEP est volontairement omise. Enfin, comme le montre la figure 6.5, la
norme STEP prévoit d’inclure des données supplémentaires dans les fichiers d’échange tels les
données de conception, d’utilisation, de fabrication, etc., et cela en plus de contenir tous les
éléments de la norme IGES.

 Données reliées à la forme; géométrie, topologie, attributs


(couleur, font, layer, annotations) IGES
 Données non reliées à la forme; unités de mesure, résolution
des valeurs numériques, visualisation, données graphiques
 Données de conception ( information tirée des modèles
géométriques; masse, maillage, etc. )
 Données de fabrication (outillage, parcours d’outils, STEP
tolérancement, gamme, bill de matériel)
 Autres : utilisation, entretien.

Figure 5.5 : Comparaison de l’information véhiculée par les normes STEP et IGES

En résumé, la norme STEP laisse entrevoir d’importantes fonctionnalités dans le futur.


Cependant, il reste encore beaucoup de travail à accomplir au sein des comités techniques afin
d’en arriver un jour à l’utilisation d’un seul format d’échange normalisé pouvant satisfaire à tous
les besoins de l’industrie.

5.5 Format DXF


Les lettres DXF signifient « Data eXchange Format ». Ce format a été développé par Autodesk
Inc. pour l’exportation des fichiers de dessin réalisés avec le logiciel de DAO AutoCad vers
d’autres applications. Ce fichier n’a jamais été normalisé par un organisme quelconque, mais
étant donné la grande popularité d’AutoCad sur le marché, ce format est devenu un standard de
facto. Le format DXF est supporté par la plupart des systèmes de CAO et de DAO. Le transfert
d’information est très robuste pour des entités de dessin bi-dimensionnels, mais des problèmes
surviennent fréquemment lorsque vient le moment de transférer de l’information représentant
des entités complexes comme les splines ou les surfaces complexes.

5.11
Exercice #1
Vous disposez du fichier IGES suivant :

ETS - MEC129 - Exemple de fichier IGES S0000001


,,7HUNNAMED,13HEXERCICE1.IGS,10HAutoCAD-12,12HIGESOUT-3.04, G0000001
32,38,6,99,15,7HUNNAMED,1.0,1,4HINCH,32767,3.2767D1,13H010326.191321, G0000002
8.5D-9,8.5,7HIncOnnu,7HETS-Mec,6,0; G0000003
110 1 1 1 00000000D0000001
110 1 1 D0000002
110 2 1 1 00000000D0000003
110 5 1 D0000004
110 3 1 1 00000000D0000005
110 6 1 D0000006
100 4 1 1 0 00000000D0000007
100 4 1 D0000008
100 5 1 1 0 00000000D0000009
100 2 1 D0000010
110,1.0,1.0,0.0,6.0,2.0,0.0; 1P0000001
110,6.0,2.0,0.0,6.0,6.0,0.0; 3P0000002
110,1.0,1.0,0.0,1.0,6.0,0.0; 5P0000003
100,0.0,3.5,6.0,6.0,6.0,1.0,6.0; 7P0000004
100,0.0,4.0,4.0,5.0,4.0,5.0,4.0; 9P0000005

a) Dessinez sur le diagramme suivant ce que représente ce fichier IGES.

b) De quelle couleur est le cercle ?

c) Qui a produit le fichier IGES ?

d) Quelle section du fichier IGES est absente ?

e) Écrivez la dernière ligne de ce fichier IGES.

5.12
Exercice #2
Dessinez dans le diagramme suivant ce que représente le fichier IGES donné plus bas.

ETS - MEC129 - Exemple de fichier IGES S0000001


,,7HUNNAMED,13HEXERCICE2.IGS,10HAutoCAD-12,12HIGESOUT-3.04,32,38, G0000001
6,99,15,7HUNNAMED,1.0,1,4HINCH,32767,3.2767D1,13H010326.210628, G0000002
1.6435444620812D-8,1.6435444620812D1,8HInc Onnu,16HETS-Mec,6,0; G0000003
110 1 1 1 00000000D0000001
110 0 1 D0000002
110 2 1 1 00000000D0000003
110 0 1 D0000004
110 3 1 1 00000000D0000005
110 0 1 D0000006
110 4 1 1 00000000D0000007
110 0 1 D0000008
110 5 1 1 00000000D0000009
110 0 1 D0000010
110 6 1 1 00000000D0000011
110 0 1 D0000012
110 7 1 1 00000000D0000013
110 0 1 D0000014
110 8 1 1 00000000D0000015
110 0 1 D0000016
110 9 1 1 00000000D0000017
110 0 1 D0000018
100 10 1 1 0 00000000D0000019
100 0 1 D0000020
100 11 1 1 0 00000000D0000021
100 0 1 D0000022
100 12 1 1 0 00000000D0000023
100 0 1 D0000024
100 13 1 1 0 00000000D0000025
100 0 1 D0000026
100 14 1 1 0 00000000D0000027
100 0 1 D0000028
110,2.0,1.0,0.0,6.0,1.0,0.0; 1P0000001
110,6.0,1.0,0.0,6.0,4.0,0.0; 3P0000002
110,5.0,3.0,0.0,5.0,4.0,0.0; 5P0000003
110,4.0,3.0,0.0,4.0,4.0,0.0; 7P0000004
110,3.0,3.0,0.0,3.0,4.0,0.0; 9P0000005
110,2.0,3.0,0.0,2.0,4.0,0.0; 11P0000006
110,1.0,2.0,0.0,1.0,4.0,0.0; 13P0000007
110,2.0,3.0,0.0,3.0,3.0,0.0; 15P0000008
110,4.0,3.0,0.0,5.0,3.0,0.0; 17P0000009
100,0.0,5.5,4.0,6.0,4.0,5.0,4.0; 19P0000010
100,0.0,3.5,4.0,4.0,4.0,3.0,4.0; 21P0000011
100,0.0,1.5,4.0,2.0,4.0,1.0,4.0; 23P0000012
100,0.0,1.0,1.0,2.0,1.0,1.0,2.0; 25P0000013
100,0.0,4.5,2.0,5.25,2.0,5.25,2.0; 27P0000014
S0000001G0000003D0000028P0000014 T0000001

5.13
Exercice #3
Dessinez dans le diagramme suivant ce que représente le fichier IGES donné plus bas.

PTC IGES file: prt0001.igs S 1


1H,,1H;,7HPRT0001,11Hprt0001.igs, G 1
49HPro/ENGINEER by Parametric Technology Corporation,7H2000370,32,38,7, G 2
38,15,7HPRT0001,1.,1,4HINCH,32768,0.5,13H010427.120217,0.00104864, G 3
10.4868,11Hpaterriault,7HUnknown,10,0,13H010427.120217; G 4
110 1 1 1 0 0 0 000000000D 1
110 0 0 1 0 LINE 1D 2
124 2 1 1 0 0 0 000000000D 3
124 0 0 2 0 XFORM 1D 4
100 4 1 1 0 0 3 000000000D 5
100 0 0 1 0 ARC 1D 6
110,0D0,4D0,0D0,6D0,0D0,0D0; 1P 1
124,8.320502943378D-1,5.547001962252D-1,0D0,3D0, 3P 2
-5.547001962252D-1,8.320502943378D-1,0D0,2D0,0D0,0D0,1D0,0D0; 3P 3
100,0D0,0D0,0D0,3.605551275464D0,0D0,-3.605551275464D0,0D0; 5P 4
S 1G 4D 6P 4 T 1

5.14
RÉFÉRENCES

[1] R. Toogood, « Pro/ENGINNER Tutorial, Release 20/2000i, A Click-by-click Primer », SDC


Publications, 1999.

[2] T. McLellan, F. Karam, « Pro/ENGINEER Tips and Techniques », OnWord Press, 1996.

[3] C. McMahon, J. Browne, « CAD CAM Principles, Pratice and Manufacturing


Management », 2nd Edition, Addison-Wesley, 1998.

[4] K. Lee, « Principles of CAD/CAM/CAE Systems », Addison-Wesley, 1999.

[5] I. Zeid, « CAD / CAM, Theory and Practice », McGraw-Hill, 1991

[6] B. Greer, « Finite Element Modeling and Analysis of the Proximal Femur », Thèse de
maîtrise, Université de Nevada-Reno, États-Unis, 1999.

[7] G. Drouin, M. Gou, P. Thiry, R. Vinet, « Éléments de machines », Éditions de l’École


Polytechnique de Montréal, 1986.

R.1
ANNEXE A

Introduction au calcul matriciel

Mise en situation

Le calcul matriciel a permis à de nombreuses disciplines de l’ingénierie moderne d’évoluer


considérablement. Sans le calcul matriciel, il serait pratiquement impossible de faire de la
conception assistée par ordinateur, de la robotique ou de l’usinage à commandes numériques,
de réaliser des analyses par éléments finis, de résoudre des problèmes d’optimisation, etc. En
somme, le calcul matriciel permet de manipuler simultanément plusieurs équations à plusieurs
inconnues. Il s’agit d’organiser les équations d’une façon telle qu’il devient facile de toutes les
considérer en même temps.

Par exemple, imaginez que vous travaillez dans un magasin qui vend des éléments de
machines et que votre patron a perdu certains documents qui concernent l’inventaire du
magasin. Sachant qu’un engrenage, un roulement et une chaîne se vendent respectivement
8.00$, 17.25$ et 22.50$, votre patron vous demande de retrouver combien d’engrenages, de
roulements et de chaînes ont été vendus sachant que :
- un total de 200 items ont été vendus,
- exactement 2 fois plus de roulements que d’engrenages ont été vendus,
- les recettes des ventes s’élèvent à 3800$.

Il est bien évident que de procéder par essais et erreurs n’est pas envisageable ici, et cela
même si ce problème est très simple. En effet, il s’agit d’un problème où seulement 3 inconnues
doivent être déterminées (le nombre d’engrenages, de roulements et de chaînes vendus). Dans
certaines disciplines de l’ingénierie et des mathématiques, des problèmes où plusieurs
centaines de milliers d’inconnues à déterminer simultanément sont fréquents de nos jours.

Le calcul matriciel implique de mettre les données du problème sous forme d’équations faisant
intervenir les inconnues. Par exemple, on sait que 200 items ont été vendus, on peut donc
écrire l’équation suivante :

E + R + C = 200

où E est le nombre d’engrenages,


R est le nombre de roulements,
C est le nombre de chaînes.

On sait également qu’il y a deux fois plus de roulements qui ont été vendus que d’engrenages.
Ainsi, cette donnée du problème se traduit par l’équation suivante :

2E=R

Finalement, puisque le prix de vente de chaque item ainsi que les recettes totales sont connus,
une troisième équation peut être établie :

8.00 E + 17.25 R + 22.50 C = 3800.00

A.1
En résumé, un système des trois équations à trois inconnues est obtenu. En remaniant
légèrement ces équations, on obtient :

1.00 E + 1.00 R + 1.00 C = 200.00


2.00 E – 1.00 R + 0.00 C = 0.00
8.00 E + 17.25 R + 22.50 C = 3800.00

Pour déterminer la valeur que doit prendre les variables E, R et C afin de satisfaire les trois
équations précédentes, des opérations de calcul matriciel vont être réalisées. Le système de
trois équations est maintenant exprimé en notation matricielle de la façon suivante :

1 1 1 E 200
2 1 0 R 0
8 17.25 22.5 C 3800

Avant de poursuivre la résolution du problème, une présentation générale des propriétés et


opérations matricielles est effectuée. L’important pour le moment est de retenir que des
matrices permettent de manipuler plusieurs équations simultanément en les exprimant selon
une structure particulière composée de lignes et de colonnes.

Définitions générales

Une matrice m x n possède « m » rangées et « n » colonnes.


La matrice suivante est une 3 x 4 :

a11 a12 a13 a14


A = a 21 a 22 a 23 a 24
a 31 a 32 a 33 a 34

Lorsque le nombre de rangées est égal au nombre de colonnes (m=n), la matrice est dite
« carrée ».

La « transposée » d’une matrice est obtenue en transposant les rangées en colonnes (les
rangées deviennent des colonnes et vice-versa).

La matrice A transposée devient :

a11 a 21 a 31
a a 22 a 32
AT = 12
a13 a 23 a 33
a14 a 24 a 34

1 2 1 3
B= BT =
3 4 2 4

A.2
Une matrice carrée est dite « symétrique » lorsque sa transposée lui est identique :

2 1 3
1 3
A= 1 5 0 BT =
2 4
3 0 1
A est symétrique car A = AT B n’est pas symétrique car B BT

Les éléments en haut de la diagonale sont symétriques avec ceux en bas de la diagonale.

Une matrice « rangée » a un nombre de rangées m = 1.

B = b1 b 2 b 3

Une matrice « colonne » a un nombre de colonnes n = 1.

c1
C = c2
c3

Enfin, une matrice « identité » est une matrice carrée et symétrique où tous les éléments de la
diagonale sont unitaires alors que tous les autres éléments sont nuls. La matrice suivante est la
matrice identité 4 x 4.

1 0 0 0
0 1 0 0
I=
0 0 1 0
0 0 0 1

Addition matricielle

Deux matrices ayant le même nombre de rangées et de colonnes peuvent être additionnées en
faisant l’addition de chaque élément correspondant.

1 3 2 2 0 4 3 3 6
4 1 1 1 2 3 5 1 2

Multiplication matricielle

Le produit de deux matrices A et B donne une autre matrice C.

C A B

A.3
L’élément de la matrice résultante C situé à la i-ième rangée et à la j-ième colonne est obtenu
en additionnant les produits entre les termes correspondants de la i-ième rangée de la matrice A
et ceux de la j-ième colonne de la matrice B.

1 1 1 2 0 1 1 1 2 0 5 0
A= 1 2 2 B= 0 1 A B= 1 2 2  0 1 = 8 0
1 2 3 3 1 1 2 3 3 1 11 1

C21 = (1 x 2) + (2 x 0) + (2 x 3) = 8

Règle de validité de la multiplication : toute multiplication matricielle n’est réalisable


uniquement que si le nombre de colonnes de A est égal au nombre de rangées de B.

# colonnes A # colonnes B
# rangées A # rangées B

(m x k) (k x n) = m x n

La multiplication matricielle n’est pas commutative.

A B B A

5 0 2 0 1 1 1
8 0 0 1 1 2 2
11 1 3 1 1 2 3
Impossible
(# colonnes B # rangées A)

Exemple 1 :
1 1 1 1 6
1 5 2 2 17
2 1 3 3 13
3x3 3x1 = 3x1

Exemple 2 :
1 1 2 1
A= B=
2 3 1 1

C= A B
(2 x 2) (2 x 2) C sera 2 x 2

1 1 2 1 3 2
2 3 1 1 7 5
A B C

A.4
Exemple 3 :
2 2
2 2 0 1 0 0 1 0 2
B= 2 2 0 T1 = 0 1 0 T2 = 0 1 2
2 2
0 0 1 0 0 1 0 0 1

Ici T1 est identité

2 2 2 2
2 2 0 2 2 0
C= B T1= 2 2 0 C= B T2= 2 2 2 2
2 2 2 2
0 0 1 0 0 1

Inversion matricielle

L’inverse d’une matrice A est dénotée A-1. La matrice inverse A-1 est telle que le produit suivant
est toujours vérifié (où I est la matrice identité) :

A-1  A = I

Pour qu’une matrice soit inversible, elle doit être carrée. Si elle existe, la matrice inverse ainsi
obtenue est unique et carrée. Cependant, il est possible qu’une matrice carrée ne possède pas
d’inverse. On dit alors que la matrice est singulière. Une matrice est singulière si les lignes de
la matrice sont linéairement dépendantes (c’est-à-dire qu’on retrouve deux fois la même
équation dans la matrice ou encore une combinaison linéaire d’équations).

Par exemple, l’inverse de la matrice A suivante existe car elle est carrée et non-singulière. En
effet, il est possible de calculer A-1 et de vérifier que A A-1 = A-1 A = I.

2 2 0.4 - 0.2 2 2 0.4 - 0.2 1 0


A , A -1 , A A -1
1 4 0.1 0.2 1 4 0.1 0.2 0 1

Pour la matrice B suivante, l’inverse B-1 n’existe pas car la matrice n’est pas carrée.

1 2
B 0 3 , B-1 n’existe pas
2 1

La matrice C suivante est bel et bien carrée, mais son inverse n’existe pas car la première et la
troisième ligne sont identiques (équations linéairement dépendantes).

A.5
1 0 2
C 4 1 1 , C-1 n’existe pas
1 0 2

Bien que les deux lignes de la matrice D soient différentes, l’inverse de D n’existe pas car les
deux lignes sont linéairement dépendantes. En effet, il suffit de multiplier par -2 la première ligne
pour obtenir la seconde.

1 2
D , D-1 n’existe pas
2 4

1 2 3
Considérons maintenant la matrice E 0 1 2 . L’inverse de E n’existe pas car les lignes
2 5 8
sont linéairement dépendantes. En effet, il suffit de multiplier la première ligne par 2 et de
soustraire la seconde ligne pour obtenir la troisième ligne.

2 4 6
2 1 2 3
0 1 2
1 0 1 2
2 5 8

Enfin, si les termes d’une même ligne ou d’une même colonne sont tous nuls, la matrice est
singulière. Ainsi, l’inverse de la matrice F suivante n’existe pas.

0 1 3 3
4 2 0.1 1
F , F-1 n’existe pas
0 0 0 0
2 4 1 0.2

Une matrice inverse est généralement employée pour résoudre un système d’équations. Par
exemple, si la matrice carrée A et la matrice colonne B sont connues, la matrice colonne
inconnue X satisfaisant l’équation suivante peut être déterminée :

AX=B

Pour y arriver, les deux côtés de l’équation sont multipliés par la matrice inverse A-1 :

A-1  A  X = A-1  B

Puisque A-1  A = I (propriété d’une matrice inverse), on obtient :

I  X = A-1  B

A.6
Enfin, on peut vérifier que I  X = X. Par conséquent, la matrice colonne inconnue X est donnée
par :

X = A-1  B

Il existe deux cas particuliers qui méritent d’être discutés. Le premier cas concerne
l’inversion d’une matrice 2X2. La matrice inverse est alors calculée par une simple
formule, à la condition que les deux équations soient linéairement indépendantes. Ceci
se traduit alors par l’inégalité suivante : (a d – b c) 0.

a b 1 d -b
H H-1
c d ad bc - c a

L’autre cas particulier survient lorsqu’une matrice diagonale d’ordre n (matrice de nxn dont tous
les termes sont nuls sauf ceux situés sur la diagonale) doit être inversée. La matrice inverse est
également une matrice diagonale.

j1 0  0 1/j1 0  0
0 j2  0 0 1/j2  0
J J-1
       
0 0  jn 0 0  1/jn

Retour à la mise en situation

Avant d’entreprendre la présentation générale des matrices, nous présentions un problème où


vous étiez appelés à déterminer le nombre d’engrenages, de roulement et de chaînes qui ont
été vendus par votre patron. Nous avions alors abouti au système d’équations suivant :

1 1 1 E 200
2 1 0 R 0
8 17.25 22.5 C 3800

La résolution de ce système d’équations (c’est-à-dire l’inversion de la matrice 3 x 3) nous permet


de connaître la valeur de E, R et C vérifiant les trois équations précédemment énoncées :

1
E 1 1 1 200 0.9 0.21 0.04 200 28
R 2 1 0 0 1.8 0.58 0.08 0 56
C 8 17.25 22.5 3800 1.7 0.37 0.12 3800 116

Donc, 28 engrenages, 56 roulements et 116 chaînes ont été vendus. Avec ces valeurs, on peut
s’assurer que les trois équations sont effectivement vérifiées.

A.7
ANNEXE B

Solutionnaire des différents chapitres

Chapitre 2

Solutions aux exercices sur la cohérence B-Rep I

A) S=5 A=8 F=5 B=0 P=0 C=1 cohérent

B) S=16 A=28 F=16 B=0 P=0 C=1 incohérent

C) S=24 A=36 F=16 B=2 P=0 C=1 cohérent

D) S=16 A=24 F=10 B=0 P=0 C=1 cohérent

E) S=16 A=24 F=12 B=2 P=0 C=1 cohérent

F) S=32 A=48 F=20 B=4 P=1 C=1 cohérent

G) S=12 A=20 F=11 B=0 P=0 C=1 incohérent

H) S=24 A=36 F=14 B=2 P=1 C=1 cohérent

I) S=16 A=24 F=11 B=3 P=1 C=1 cohérent

J) S=12 A=16 F=8 B=0 P=0 C=1 incohérent

B.8
Solutions aux exercices sur la cohérence B-Rep II

Bien qu’il existe une infinité de solution possible, voici quelques suggestions :

A)

Solution 1) S=2 A=4 F=4 B=0 P=0 C=1 cohérent

Solution 2) S=4 A=7 F=5 B=0 P=0 C=1 cohérent

B.9
Solution 3) S=5 A=9 F=6 B=0 P=0 C=1 cohérent

B)

Solution 1) S=4 A=8 F=6 B=0 P=0 C=1 cohérent

B.10
Solution 2) S=7 A=13 F=8 B=0 P=0 C=1 cohérent

Solution 3) S=10 A=18 F=10 B=0 P=0 C=1 cohérent

B.11
C)

Solution 1) S=7 A=10 F=6 B=1 P=0 C=1 cohérent

Solution 2) S=7 A=12 F=7 B=0 P=0 C=1 cohérent

B.12
Solution 3) S=7 A=13 F=8 B=0 P=0 C=1 cohérent

D)

Solution 1) S=12 A=18 F=8 B=2 P=1 C=1 cohérent

B.13
Solution 2) S=14 A=23 F=9 B=0 P=1 C=1 cohérent

Solution 3) S=16 A=27 F=11 B=0 P=1 C=1 cohérent

B.14
Solutions aux exercices sur les arbres CSG

A) Primitives de base :

Primitives avancées :

B) Primitives de base

Primitives avancées

C) Primitives de base

Primitives avancées

B.15
D) Primitives de base

Primitives avancées

E) Primitives de base

Primitives avancées

F) Primitives de base

Primitives avancées

B.16
G) Primitives de base

Primitives avancées

H) Primitives de base

Primitives avancées

B.17
Chapitre 3

Solutions aux exercices sur les transformations géométriques

1. Exercices sur les opérations matricielles de base

3 0 2
3 2 2 4 2 6
A+B= S+T= 0 4 3 B+S=impossible AB= BA=
4 8 12 15 8 15
1 0 2
2 0 4 3
11 22
ST= 0 3 9 BT=impossible BP1 = TP2 = 3 (AB)P1= A(BP1)=
32 96
1 0 1 1
21
2
40
AP1B=impossible TSP2= 0 QVP3 =
11
0
1

2. Exercices sur les transformations géométriques en 2D

0.71 3.54
a) P1’ = P2’ =
3.54 10 .61

cos 30 sin 30 0 1 0 5 3 2 12 5 3 2 32
b) C = R30  T = sin 30 cos 30 0  0 1 3 = 12 3 2 3 3 2 52
0 0 1 0 0 1 0 0 1

2 0 0 1 0 0 .5 1 0 0 2 0 1
c) C=STM= 0 2 0  0 1 0  0 1 0 = 0 2 0
0 0 1 0 0 1 0 0 1 0 0 1

2 3 12 3.96 2 3 2 5.46 7 3 2 12 6.56


d) P1’ = P2’ = P3’ =
3 2 2 1.13 2 3 2 1.46 3 2 7 2 2.63

5 0 20
5 10
e) C = 0 0.25 3 P1’ = P2’ =
4 5
0 0 1
0 1 0 0 2 2 0 2 2 0 1 0 0 0 0 3 2 12 0
f) C= 1 0 0 0 0 1 0 0 0 3 2 0 .5 0 = 2 2 2 4 6 4 0
0 0 1 0 2 2 0 2 2 0 0 0.5 3 2 0 2 2 2 4 6 4 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

B.18
3. Exercices sur les transformations géométriques en 3D _
a) _

3 0 0 0 3 0 0 0 3 0 0 0 1 0 0 1
0 2 0 0 0 2 0 1 0 1 0 1 0 2 0 0
0 0 3 0 0 0 2 3 0 0 1 3 0 0 2 2
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
1- SX = 3 SY = 2 SZ = 3 1- SX = 3 SY = 2 SZ = 2 1- SX = 3 SY = 1 SZ = 1 1- SX = 1 SY = 2 SZ = 2
2- TX = 0 TY = 1 TZ = 3 2- TX = 0 TY = 1 TZ = 3 2- TX = 1 TY = 0 TZ = 2

b)
_

4 0 0 4 3 2 4 3 2 4 0 2 0 2 0 1
0 5 0 0 3 2 4 3 2 4 0 2 3 3 0 1 0
0 0 2 .5 0 0 0 2 .5 0 3 0 3 0
0 0 0 1 0 0 0 1 0 0 0 1

1- SX = 4 SY = 5 SZ = 2.5 1- SX = 1.5 SY = 1.5 SZ = 2.5 1- SX = 6 SY = 2 SZ = 2


2- TX = -4 TY = 0 TZ = 0 2- RZ ( = +45 ) 2- RZ ( = -90 )
3- TX = -2 TY = 2 TZ = 0 3- RX ( = -30 )
4- TX = -1 TY = 0 TZ = 0

1 0 0 6 2 0 0 0 1 0 0 6 2 0 0 6
c) C = 0 1 0 8 0 1 0 0 0 1 0 8 = 0 1 0 0
0 0 1 4 0 0 0. 5 0 0 0 1 4 0 0 0.5 2
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

B.19
Chapitre 4

Solutions aux exercices

Exercice #1 :
y1(x) = -2.383 y1’(x) = -4.9415

Exercice #2
y2’(- ) = -8.566 y2’’(- ) = 13 donc k2 = 0.0203

Exercice #3
a)

b) (x,y) = (-2.25, -0.97), dy/dx = -2.89, k = -0.033

Exercice #4
y3(u) = 32u3 – 136u2 + 192u – 91

Exercice #5
a) x = 2-3u y = 5-2u
b) x = 0.5 + 1.5u y = (27u3+27u2+9u+65)/16
c) x = 2u y = 4u2e-2u

Exercice #6
a) x = 3cos(2700u) y = 3sin(2700u) z = 30u
b) x = 2 y = (2+6u)cos(720u) z = (2+6u)sin(720u)

Exercice #7
a) continuités C0 et C1, discontinuité C2
b) continuités C0, C1 et C2

Exercice #8
x(u) = u3 - 2u2 - 2u + 3 y(u) = -½u3 + 2u + ½

Exercice #9
u=0.3 (x,y)=(3.496,3.472) u=0.8 (x,y)=(6.884,2.188)

B.20
Exercice #10

a) b) (x, y, z) = (0.0375, 1.2, 0.25)

Exercice #11

Exercice #12
a) yA(u) = -4u2 + 4u + 2 b) b = 9/ c) (x,y,z) = (-0.5, 2.32, 1)

Exercice #13

a)

b) (x, y, z) = (3, -0.5, -1)

c) (x, y, z) = ( 4.46875, 1.00000, 0.40625 )

B.21
Chapitre 5

Solutions aux exercices :

Exercice 1
a)

b) Rouge
c) Inconnu
d) Fin (ou Terminate)
e) S0000001G0000003D0000010P0000005 T0000001

Exercice 2

Exercice 3
Y

B.22
B.23

Vous aimerez peut-être aussi