• Aucun résultat trouvé

Chapitre V : Mise en œuvre

V.4 Services géométriques

L’interface géométrique est constituée des services que doit rendre le modeleur géométrique (l’arbre CSG) à la BAMGS pour qu’elle puisse construire les maillages. Cette interface comporte des fonctions de consultation et des fonctions de construction.

Ces fonctions sont pour la plupart des fonctions en 2D. La raison à cela est qu’il y a essentiellement deux approches pour construire un maillage surfacique : directement en 3D ou bien en 2D dans un espace paramétrique, suivi d’un plongement du maillage obtenu dans l’espace réel. C’est la deuxième solution qui a été retenue car les objets primitifs sont composés de surfaces pour lesquelles une représentation paramétrique est disponible, permettant ainsi de réaliser les opérations géométriques en 2D. De plus, certaines surfaces, comme les surfaces cylindriques par exemple, sont périodiques. Elles nécessitent alors des traitements en 2D spécifiques, comme le calcul de distance entre deux points nécessaires à certaines opérations géométriques dans l’espace paramétrique.

Fonctions de consultation :

- void uvAxyz (Identifiants IdSurf, const Points2D &, Points3D & )

Conversion des coordonnées paramétriques d’un point en ses coordonnées réelles.

- void xyzAuv (Identifiants IdSurf, const Points3D &, Points2D & )

Conversion des coordonnées réelles d’un point en ses coordonnées paramétriques.

- double distanceParam(Identifiants IdSurf, const Points2D&,

const Points2D& )

Renvoie la distance, dans l’espace paramétrique, entre deux points P1 et P2 (certaines surfaces sont cycliques, la distance retenue est donc la plus petite)

- double longueurGeodesique (Identifiants IdSurf, const Points2D& P1,

const Points2D& P2 )

Renvoie la longueur de la courbe qui est l’image du segment [P1P2]

- double distancePointSegment (Identifiants IdSurf, const Points2D& P,

const Points2D& O,

const Points2D& E )

Renvoie la distance, dans l’espace paramétrique d’un point P à un segment [OE] (certaines surfaces sont cycliques, la distance retenue est donc la plus petite, voir figure V.4.1)

P

O d1 E

d2

figure V.4.1 Distance point-segment dans l’espace paramétrique

- double distancePointDroite (Identifiants IdSurf, const Points2D& P,

const Points2D& O,

const Points2D& E )

Renvoie la distance d’un point P à une droite (OE) dans l’espace paramétrique. (Même remarque que ci-dessus concernant les surfaces cycliques)

- bool pointAppartientSegment (Identifiants IdSurf, const Points2D& P,

const Points2D& O,

const Points2D& E )

Teste si un point P appartient à un segment [OE] dans l’espace paramétrique.

- double angleSecteurParam (Identifiants IdSurf, const Points2D& O,

const Points2D& A,

const Points2D& B )

Calcule la valeur de l’angle en O d’un secteur AOB dans l’espace paramétrique (Même remarque que ci-dessus concernant les surfaces cycliques)

- double distanceOrientee (Identifiants IdSurf, const Points3D& )

Renvoie la distance entre un point et une surface (ou une approximation). Le résultat est positif si le point est du côté matière. (Même remarque que ci-dessus concernant les surfaces cycliques)

- double erreurArete (Identifiants IdSurf, const Points2D& O,

const Points2D& E )

Renvoie l’erreur de corde d’une arête (ou une majoration).

- double erreurTriangle (Identifiants IdSurf, const Points2D& P1,

const Points2D& P2

const Points2D& P3 )

Renvoie l’erreur d’approximation d’un triangle (ou une majoration de celle-ci).

Fonctions de construction :

- Points2D creerPointSegment (Identifiants IdSurf, const Points2D& O,

const Points2D& E,

double alpha )

Crée un point dans l’espace paramétrique valant : alpha . O + (1-alpha) . E. (Même remarque que ci-dessus concernant les surfaces cycliques)

- void cercleCirconscritTriangle (Identifiants IdSurf, const Points2D& P1,

const Points2D& P2,

const Points2D& P3,

Points2D& Centre,

double& Rayon )

Construit le cercle (défini par un rayon et un centre) circonscrit à trois points P1, P2 et P3 dans l’espace paramétrique. (Même remarque que ci-dessus concernant les surfaces cycliques) La différence essentielle de cette interface avec les interfaces existantes servant d’accès unifié à un BRep est que d’une part, elle ne concerne pas exclusivement un BRep, et que d’autre part, les fonctions concernent des mesures sur des entités géométriques (distances, angles, appartenance), et des constructions d’entités géométriques (points et cercles). Ce sont ces dernières qui permettent d’éviter la reconstruction du modèle géométrique au niveau de la BAMGS tout en permettant la création de nouveaux points sur les surfaces des solides. Si de nouvelles surfaces apparaissent, il faut et il suffit qu’elles implémentent ces services (et donc qu’elles disposent d’une représentation paramétrique pour le cas de cette maquette) pour qu’elles puissent être maillées.

V.5 Résultats

Cette partie présente quelques maillages surfaciques de solides relativement simples modélisés par un arbre CSG et maillés par la méthode proposée.

V.5.1 Maillage pour la visualisation

Les maillages produits sont formés de polygones convexes.

figure V.5.1 Maillage par polygones convexes d’un système de remplissage en fonderie.

Plus grande dimension de la pièce : 55 Erreur de corde : 0

figure V.5.2 Visualisation en rendu

V.5.2 Maillage pour le prototypage rapide

Les maillages produits sont dirigés par l’erreur de corde. Il s’agit d’un renfort et d’un raccord.

figure V.5.3. Maillage d’un renfort pour le prototypage rapide Plus grande dimension de la pièce : 100

Erreur de corde : 0,00376477

figure V.5.4 Maillage d’un raccord pour le prototypage rapide Plus grande dimension de la pièce : 50

Erreur de corde : 0,00512008

V.5.3 Maillage pour la simulation

Les maillages produits sont dirigés par une contrainte de forme (limite du plus petit angle) et de taille (limites de la plus petite et de la plus grande arête). Pour chaque exemple sont données l’erreur de corde maximale et l’erreur d’approximation maximale des sommets. Ces grandeurs sont déterminées par la distance à la surface à laquelle ils appartiennent (ou le maximum des distances lorsqu’un sommet est porté par plusieurs surfaces).

V.5.3.a Union de deux cylindres

Sur cet exemple, nous voyons l’union de deux cylindres, en particulier les lieux où se coupent les maillages des deux surfaces cylindriques, induisant une erreur d’approximation des sommets ne dépassant pas 0,0422942.

figure V.5.5. Maillage pour la simulation de l’union de deux cylindres Plus grande dimension de la pièce : 20

Erreur de corde : 0,04831783

Erreur d’approximation des sommets : 0,0422942

V.5.3.bDisque troué

Les trous étant des lieux où se concentrent en général les contraintes, les cylindres utilisés pour les créer par une opération de différence ont été maillés plus finement que le disque plat.

figure V.5.6. Maillage d'un guide pour la simulation Plus grande dimension de la pièce : 150

Erreur de corde : 0,00512008

V.5.3.c Système de remplissage en fonderie

Dans le système de remplissage suivant, la pièce à fondre a été représentée par une boîte.

figure V.5.7 Vue générale du système de remplissage du moule

L’image suivante montre un plan rapproché de l’attaque qui constitue le raccord entre le canal et la pièce. L’attaque étant un lieu où se concentrent les contraintes lors d’une simulation de l’écoulement du métal en fusion, les propriétés de maillage qui lui ont été attribuées et conservées dans l’arbre CSG comprennent une taille d’arête minimale très petite devant celle de la pièce et celle du canal. On peut voir sur ce plan la progression de taille des arêtes.

Attaque