30
OPEN CASCADE © 2010 Hervé Legrand 23 Mars 2010 BRep Open Cascade OCAF Echanges de données

OCC-orsay

Embed Size (px)

Citation preview

Page 1: OCC-orsay

OPEN CASCADE © 2010

Hervé Legrand

23 Mars 2010

BRep Open CascadeOCAF

Echanges de données

Page 2: OCC-orsay

2 2OPEN CASCADE © 2010

Plan

Représentation des courbes et surfaces

Représentation des solides

BRep Open Cascade

OCAF

STEP

Page 3: OCC-orsay

3 3OPEN CASCADE © 2010

Généralités: courbes et surfaces

Forme paramétrée

Courbe 2D

x = f(t),

y = g(t),

Surface

x = f(u, v)

y = g(u, v)

z = h(u, v)

Nurbs (Non Uniform Rational BSpline)

Polynomes (rationnels) degré 1 à 15+

V

U

U

V

Page 4: OCC-orsay

4 4OPEN CASCADE © 2010

Généralités: courbes et surfaces

Forme Implicite

Courbe 2D

F (x, y) = 0

Surface

F (x, y, z) = 0

Limité généralement aux

coniques - quadriques

AX + BY + C = 0

X2 + Y

2 + Z

2 –R

2 = 0

+

-

+

-

Page 5: OCC-orsay

5 5OPEN CASCADE © 2010

Généralités: BRep

BRep Surfacique

La topologie et la geométrie

Vertex => Point

Edge => Portion de courbe

Wire => Liste d’edge

Face => Portion de surface

Shell => Liste de Faces

Solid => Shell fermé codé solide

Page 6: OCC-orsay

6 6OPEN CASCADE © 2010

Généralités: BRep

V

U

F1

F2

F2

pu = f(t)

pv = g(t)

Px = Sx(pu, pv)

Py = Sy(pu, pv)

Pz = Sz(pu, pv)

p

P

S

Sx = Sx(u, v)

Sy = Sy(u, v)

Sz = Sz(u, v)

Vertex

Wire

Edge

Face

Shell

Volume

Page 7: OCC-orsay

7 7OPEN CASCADE © 2010

Généralités: Constructive Solid Geometry

CSG

On définit des primitives (boite, cylindre, tore …)

Des opérateurs (différence, union, intersection)

Dans une CSG “pure” on ne calcule pas (évaluation) la représentation BRep

du résultat

Page 8: OCC-orsay

8 8OPEN CASCADE © 2010

Généralités: CSG surfacique

“CSG surfacique”

On partitionne l’espace en cellules définies par des quadriques sous forme

implicite

Convention MCNP

1 -2 == intersection de la région positive par rapport à la surface 1

avec la région négative par rapport à la surface 2

Page 9: OCC-orsay

9 9OPEN CASCADE © 2010

“CSG surfacique”

Une cellule doit être convexe (toute la cellule doit être à l’intérieur de

chacune de ses surfaces frontières)

1

3

2

4 4

5

1

3

2

4

1

3

2

4 1

3

2

4

1

3

2

4 -4 : (1 -2 3 4 -5)

(-4 5) : (1 -2 3 -5)

5

1 : 1 -2 -3 6

2 : 1 6 -4 5

Généralités: CSG surfacique

Page 10: OCC-orsay

10 10OPEN CASCADE © 2010

La CAO

La CAO

Une définition interne analogue à une CSG volumique (avec des primitives à

base d’extrusion, revolution, balayage) plus des opérateurs locaux (congés,

dépouilles …)

Un résultat BRep qui est l’évaluation de l’arbre des opérateurs et des

primitives

Page 11: OCC-orsay

11 11OPEN CASCADE © 2010

BRep Open Cascade

Séparation forte entre Géométrie et Topologie

Géométrie:

La géometrie décrit l’ensemble des points définissant le support

géométrique des entités (lignes, surfaces)

La géométrie est décrite de façon paramétrique:

Courbes: X=F(t), Y=G(t), Z=H(t)

Surfaces: X=F(u, v), Y=G(u, v), Z=H(u, v)

Topologie

La topologie décrit

des portions de la géométrie

l’assemblage de ces portions de géométrie pour définir un objet

complexe

Page 12: OCC-orsay

12 12OPEN CASCADE © 2010

BRep Open CascadeGéométrie

Geom_Point

Geom_Vector

Geom_CartesianPoint

Geom_Direction

Geom_VectorWithMagnitude

Geom_Geometry

Geom_Curve Geom_BoundedCurve

Geom_Geometry

Geom_Conic

Geom_Line

Geom_OffsetCurve

Geom_BSplineCurve

Geom_BezierCurve

Geom_TrimmedCurve

Geom_Circle

Geom_Ellipse

Geom_Hyperbola

Geom_Parabola

Page 13: OCC-orsay

13 13OPEN CASCADE © 2010

BRep Open CascadeGéométrie

Geom_Surface

Geom_Geometry

Geom_ElementarySurface

Geom_ConicalSurface

Geom_CylindricalSurface

Geom_Plane

Geom_SphericalSurface

Geom_ToroidalSurface

Geom_Surface Geom_BoundedSurface

Geom_Geometry Geom_BSplineSurface

Geom_BezierSurface

Geom_RectangularTrimmedSurface

Geom_SurfaceOfLinearExtrusion

Geom_SurfaceOfRevolution

Geom_SweptSurface

Geom_OffsetSurface

Geom_PlateSurface

Page 14: OCC-orsay

14 14OPEN CASCADE © 2010

BRep Open CascadeTopologie

Les principes:

Représentation du non-manifold

Pas de pointeurs arrières

Connexion = Partage

Partage avec déplacement

Pas de modifications. Modifier, c’est créer ce qui est nouveau et

partager ce qui n’a pas changé

Page 15: OCC-orsay

15 15OPEN CASCADE © 2010

BRep Open CascadeTopologie

Liste des entités de la topologie :

Vertex,

Edge,

Wire,

Face,

Shell : un ensemble de faces conectés par leurs edges

Solid : une portion de l’espace limité par des shells,

Compound : un groupe de shapes quelconques,

Compsolid : un ensemble de solides connectés par leurs faces.

Page 16: OCC-orsay

16 16OPEN CASCADE © 2010

BRep Open CascadeTopologie

Vertex

Edge

Face

Shell

compsolid

solidWire

compound

Page 17: OCC-orsay

17 17OPEN CASCADE © 2010

BRep Open CascadeTopologie

Un shape est homogène à un pointeur, il est défini par:

Un TShape (TopoDS package)

Un système de coordonées local (TopLoc package)

Une orientation (TopAbs package)

TopoDS_Shape

TopoDS_TShape

Location

TopoDS_TShape

Orientation

Un shape pointe sur un TShape qui décrit la géométrie

proprement dite

Page 18: OCC-orsay

18 18OPEN CASCADE © 2010

BRep Open CascadeTopologie

TShape : Un TShape descrit la géométrie d’un objet dans son

système de coordonnées par défaut.

Un Thape n’est jamais manipulé directement, on manipule

toujours un Shape

TopoDS_ShapeTopoDS_TShape

Page 19: OCC-orsay

19 19OPEN CASCADE © 2010

BRep Open CascadeTopologie

TopoDS_Vertex

TopoDS_Edge

TopoDS_Wire

TopoDS_Face

TopoDS_Shell

TopoDS_Solid

TopoDS_CompSolid

TopoDS_Compound

TopoDS_Shape

Root Class

Contains a list of shapes

Page 20: OCC-orsay

20 20OPEN CASCADE © 2010

BRep Open CascadeTopologie

Particularités

Partage

Page 21: OCC-orsay

21 21OPEN CASCADE © 2010

BRep Open CascadeTopologie

Particularités

Location : Partage avec déplacement

Orientation: Forward, Reverse,

Internal, External

Page 22: OCC-orsay

22 22OPEN CASCADE © 2010

BRep Open CascadeTopologie

Particularités

Same parameter

C22 = 2d Curve on S2

C3 = 3d Curve C21 = 2d Curve on S1

P

Page 23: OCC-orsay

23 23OPEN CASCADE © 2010

BRep Open CascadeTopologie

Particularités

Précision: notée explicitement dans les

vertex et les edges

Page 24: OCC-orsay

24 24OPEN CASCADE © 2010

Open CascadeOCAF

Open CASCADE Application Framework (OCAF)

Une structure d’accueil qui fournit des services essentiels pour bâtir une

application:

Définition du modèle de données applicatif

Association des données applicatives et de la géométrie

Notion de document

Synchronisation document (données) et visualisation

Support du Undo/Redo

Sauvegarde/relecture du document

OCAF est indépendant de l’interface graphique (utilisation de QT ou MFC

par exemple)

Page 25: OCC-orsay

25 25OPEN CASCADE © 2010

Open CascadeOCAF

Particularités OCAF

Reference-key driven

Les Reference-keys définissent des identifieurs persistants des données

Les données (geométrie incluse) sont implémentées comme des attributs

attachés au reference-keys

Le topological naming maintient la géométrie identifiée attachée aux

Refence_keys lors de la modification d’un objet paramétré

Page 26: OCC-orsay

26 26OPEN CASCADE © 2010

Open CascadeOCAF

Exemple OCAF

Page 27: OCC-orsay

27 27OPEN CASCADE © 2010

Open CascadeEchanges de données

Formats Standards

IGES

STEP (AP203, AP214)

Formats additionnels

ACIS – SAT

Parasolid – XT

DXF

CATIA V5 (via Datakit)

Page 28: OCC-orsay

28 28OPEN CASCADE © 2010

Open CascadeSTEP

Support des AP 203 et 214

Conversion STEP BRep pour la géométrie

Utilisation d’une structure OCAF dédiée (XCAF) pour le support

des assemblages

des validation properties (volume, cdg, aire)

des noms

des couleurs

des layers

Page 29: OCC-orsay

29 29OPEN CASCADE © 2010

Open CascadeSTEP

XDE

Page 30: OCC-orsay

30 30OPEN CASCADE © 2010

Open CascadeSTEP

Shape healing

Les géométries échangées peuvent être imparfaites ou mal adaptées

Des outils d’analyse, de réparation et de conversions sont

disponibles:

analyse de la validité de la géométrie

outils de réparation (fermeture des contours, suppression des

baillements, couture …)

Outils de conversion (réduction de degré, bspline Bezier …)