3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D...

34
1 3D Modellierung Im 2D gibt es folgende Objekte: 0-dim.: Punkte (x, y) 1-dim.: Geraden (ax+by=c), Linien (x1,y1,x2,y2) , Kreise (xm,ym,r), Kurven (f(x,y)=0) 2-dim.: Flächen Die Flächen können beschrieben werden durch die Umrandung (1-dim. Objekte) oder durch eine oder mehrere Ungleichungen f(x,y)>=0. Flächen werden relativ selten gebraucht, z.B. bei der Schraffur oder bei der Flächenberechnung. Daher sind die primären Objekte im 2D die 1-dim. Objekte. Ein 2D Modellierer stellt nur selten die reale Welt dar, z.B. bei der Leiterplattenentflechtung. Die reale Welt ist jedoch 3- dimensional. Im 3D existieren: 0-dim.: Punkte (x, y, z) 1-dim.: Linien (x1,y1,z1,x2,y2,z2) , Kreise (Mittelpunkt, Radius, Senkrechte) Kurven (x=f(t), y=g(t), z=h(t)) Geraden r=r0+λ*u ,wobei r,r0 und u 3 dimensionale Vektoren sind oder eine Gerade als Schnitt zweier Ebenen (s.u.) 2-dim.: Flächen f(x,y,z)=0 oder x=x(u,v), y=y(u,v), z=z(u,v) Ebenen im Raum (ax+by+cz=d) Kugeloberfläche Zylindermantel 3-dim.: Volumen, Solids f(x,y,z)>=0 Kugel Zylinder Quader Halbraum (ax+by+cz>=d)

Transcript of 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D...

Page 1: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

1

3D Modellierung Im 2D gibt es folgende Objekte:

• 0-dim.: Punkte (x, y) • 1-dim.: Geraden (ax+by=c), Linien (x1,y1,x2,y2) ,

Kreise (xm,ym,r), Kurven (f(x,y)=0) • 2-dim.: Flächen

Die Flächen können beschrieben werden durch die Umrandung (1-dim. Objekte) oder durch eine oder mehrere Ungleichungen f(x,y)>=0. Flächen werden relativ selten gebraucht, z.B. bei der Schraffur oder bei der Flächenberechnung. Daher sind die primären Objekte im 2D die 1-dim. Objekte. Ein 2D Modellierer stellt nur selten die reale Welt dar, z.B. bei der Leiterplattenentflechtung. Die reale Welt ist jedoch 3- dimensional. Im 3D existieren:

• 0-dim.: Punkte (x, y, z) • 1-dim.: Linien (x1,y1,z1,x2,y2,z2) ,

Kreise (Mittelpunkt, Radius, Senkrechte) Kurven (x=f(t), y=g(t), z=h(t))

Geraden r=r0+λ*u ,wobei r,r0 und u 3 dimensionale Vektoren sind oder eine Gerade als Schnitt zweier Ebenen (s.u.)

• 2-dim.: Flächen f(x,y,z)=0 oder x=x(u,v), y=y(u,v), z=z(u,v) Ebenen im Raum (ax+by+cz=d) Kugeloberfläche Zylindermantel

• 3-dim.: Volumen, Solids f(x,y,z)>=0 Kugel Zylinder Quader Halbraum (ax+by+cz>=d)

Page 2: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

2

Gerade im Raum

Geraden im Raum lassen sich nicht in der Normalenform darstellen, da sie weder Achsenabschnitte noch einen eindeutig bestimmten Normalenvektor besitzen (zu einer Geraden im Raum gibt es unendlich viele auf ihr senkrecht stehende Richtungen). Gebräuchlich ist die oben vorgestellte Parameterform

wobei , und nun Vektoren im Raum sind. Mit Hilfe des Vektorprodukts lässt sich noch eine andere, parameterfreie Geradenform konstruieren, die Determinantenform

ist wiederum der Ortsvektor eines fixen Punktes und der Richtungsvektor. Da die

Differenz des Ortsvektors jedes beliebigen Punktes der Geraden und dem Stützvektor kollinear zum Richtungsvektor sein muss (also in dieselbe oder in die Entgegengesetzte Richtung zeigt), ergibt das Vektorprodukt der beiden immer den Nullvektor:

Ausmultipliziert erhält man die obige Geradenform. Für jeden Vektor , der Ortsvektor eines Punktes der Geraden ist, trifft die Gleichung zu, in allen anderen Fällen ergibt sich nicht der Nullvektor. Ist ein Einheitsvektor, so entspricht

genau dem Abstand der Geraden vom Ursprung (Länge der kürzesten Verbindung zwischen Ursprung und Gerade).

Page 3: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

3

Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei Modellklassen sind

• Drahtmodelle Hier betrachtet man nur 0-dim. Objekte (Punkte) und 1.dim. Objekte z.B. Linien zwischen den Punkten

• Flächenmodelle Hier betrachtet man nur 2-dim. Objekte, z.B. Flächen

• Volumenmodelle Hier werden alle Dimensionen betrachtet.

Für die verschiedenen Modelle werden unterschiedliche rechnerinterne Repräsentationen genutzt. Auch die Anwendungsbereiche sind verschieden.

Drahtmodelle C:\CadVorlesung\drahtmodell.PIC

P1 P2

P3P4

P5 P6

P7P8

k1

k2

k3

k4 k5

k6

k7

k8

k9

k10k11

k12

3D Drahtmodelle sind die informationsärmsten Darstellungen. Beschrieben werden 3D Punkte und Kanten zwischen diesen Punkten. Die Kanten sind i.A. gerade Linien, sie können aber auch Kreisbögen oder Splines sein. Bilden mehrere Kanten einen geschlossenen Kantenzug, ist in dem Modell nicht ersichtlich ob dies eine Fläche ist oder ein Loch in einer Fläche. Auch ist nicht sichergestellt, dass die Punktes eines geschlossenen Kantenzuges alle in einer Ebene liegen, d.h. sie können auch windschief sein. Ein Punkt kann natürlich in mehreren Kantenzügen enthalten sein. Die entsprechende Datenstruktur ist:

Page 4: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

4

C:\CadVorlesung\drahtm2.KOG

Zu einem Drahtmodell kann es mehrere mögliche Körper geben. Ein Drahtmodell verlangt auch nicht, dass alle Kanten auf einem geschlossenen Kantenzug liegen und so entweder die Begrenzung einer Fläche oder einer Öffnung

Daher e

bilden.

xistiert zu einem Drahtmodell erst durch Interpretation des Benutzers ein ch

nwendungsbereiche für Drahtmodelle sind hauptsächlich solche, die keine Flächen

realer Körper, wenn dies überhaupt möglich ist. Zu einem Drahtmodell können aukeine Darstellungen mit verdeckten Kanten (Hidden-line Darstellung) erzeugt werden, da keine Flächen existieren. Abenötigen. Das z.B. der Fall bei Rohrleitungen im Anlagenbau.

Page 5: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

5

Ferner eignen sich Drahtmodelle als Eingabeformat für die Finite-Element-Analyse nd für die NC-Teileprogrammierung, da es hier in wesentlichen nur auf die

infügen, leme nicht generell behoben, da nicht

sichergestellt ist, dass die Flächen tatsächlich einen sinnvollen Körper ergeben.

uGeometrie der Kanten ankommt. Würde man in einem Drahtmodell lediglich von Hand Flächeninformationen eso wären die oben genannten Prob

Page 6: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

6

Flächenmodelle Mit den Flächenmodellen wird die Außenhaut von Körpern, wie Fahrzeuge oder Schiffskörper beschrieben. Dazu werden so genannte Freiformflächen benutzt. Diese

ht mit den Methoden der analytischen Geometrie beschrieben sich nicht durch Ebenen oder Quadriken beschrieben werden.

aher werden mathematische Verfahren zur Approximation oder Interpolation von

n, d.h.

rden können. • Vollständig:

it fehlenden Flächen oder Kanten. Keine Flächen oder Kanten, nem Körper gehören.

m Körper , bzw. auf der Oberfläche.

Mit den Volumenmodellen können 3D Körper komplett beschrieben werden. Dies ist einmal möglich durch die Beschreibung von Körpern durch Flächen. Die Technik nennt Opera estellt, dass nur sinnvolle Körper rzeugt werden können. Auch bei der Modifikation bleibt dies erhalten.

Flächen können nicwerden. Sie lassen Dmehrfach gekrümmten Flächen benutzt. Dies kann sein Bezierapproximation, Coons’sche Flächenpatches, Spline- oder B-Spline-Interpolation und auch rationale B-Spline Techniken bzw. Non-Rational-Unifined-B-Splines (NURBS). Anwendungen sind der Schiffs- oder Karosseriebau. Hier gibt es auch eine Norm (VDAFS) zum Datenaustausch. Die Flächen haben i.A. keine Beziehungen untereinander. Es kann jedoch festgestellt werden, ob sich 2 Flächen schneidegemeinsame Punkte haben, etwa für Kollisionsprüfungen.

Volumenmodelle Hier sollen vollständige und eindeutige Modelle erzeugt we

Kein Körper mdie nicht zu ei

• Eindeutig: Für jeden Punkt des Raumes kann berechnet werden, ob er in eineliegt oder nicht

man die B-Rep (Boundary Representation) Darstellung. Durch bestimmte tionen, die Euler-Operationen, wird sicherg

e

Page 7: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

7 7

Die andere Methode ist die Constructive Solid Geometry (CSG). Hier werden die Körper durch Boolesche Operationen aus primitiven Grundkörpern erzeugt. Die benutzten Booleschen Operationen sind:

Die andere Methode ist die Constructive Solid Geometry (CSG). Hier werden die Körper durch Boolesche Operationen aus primitiven Grundkörpern erzeugt. Die benutzten Booleschen Operationen sind:

• Vereinigung • Vereinigung C:\CADVorlesung\boolverein.P IC

• Durchschnitt • Durchschnitt

C:\CADVorlesung\boolverein.P IC

C:\CA DV orlesung\boolschnitt.P IC

C:\CA DV orlesung\boolschnitt.P IC

• Differenz • Differenz

Page 8: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

8

C:\CA DVorlesung\boolminus.PIC

A minus B

Page 9: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

9

Wie man sieht ist die Konstruktion eines Körpers (a) oft durch verschiedene Operationen möglich. Bei (b) werden zwei Quader vereinigt, bei (c) wird ein Quader von einem anderen abgezogen, bei (d) wird die Grundfläche mit 2 verschiedenen Höhen extrudiert, bei (e) wird die Seitenfläche extrudiert. Von dem Ergebnis wird dann jeweils der Zylinder abgezogen. Der Vorteil der BRep Darstellung ist, dass daraus relativ leicht eine Darstellung des Körpers abgeleitet werden kann. Dafür enthält das BRep Modell nicht die

Page 10: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

10

Entstehungsgeschichte. Es eignet sich daher nicht besonders für parametrische Systeme. Bei der CSG Darstellung ist es genau umgekehrt. Daher werden in der Praxis häufig hybride Systeme benutzt. Die eine Möglichkeit ist ein CSG Modellierer, wobei bei jeder Operation ein BRep Facettenmodell erzeugt wird. Dies ist möglich, da für die BRep Modelle ebenfalls die Booleschen Operationen implementiert werden können. Die andere Möglichkeit ist ein BRep Modellierer mit einem CSG Backup. Daneben gibt es noch ein Zellmodell (Voxels). Hier wird für jeden Punkt des dreidimensionalen Pixelraumes (Voxel) festgehalten, ob der Punkt in einem Körper liegt bzw. in welchem Körper. Mit dieser Darstellung sind Boolesche Operationen und visuelle Darstellung sehr einfach. Nachteil ist der große Speicherbedarf. Zur Lösung dieses Problems benutzt man eine Darstellung durch Octrees. Hier wird der betrachtete Raum, ein Würfel, jeweils rekursiv in 8 Oktanten unterteilt. Dies geschieht solange, bis entweder der betrachtete Oktant ganz gefüllt ist oder ganz leer ist, oder die maximale Tiefe erreicht ist.

Die Darstellung durch Octrees lässt bei der Berechnung von Volumen und Trägheitsmomenten, aber auch bei den mengetheoretischen Operationen und bei der Berechnung der Sichtbarkeit, einfache und effiziente Operationen zu. Dies auch deswegen, weil zur Darstellung der Octrees nur Integer- Werte benötigt werden. Allerdings gehen bei diesem Modell alle Strukturinformationen, wie Flächen, Kanten und Punkte des Körpers verloren.

Page 11: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

11

BRep Darstellung Die BRep Darstellung arbeitet mit einer Hierarchie von Datenstrukturen. Die hier benutzte Darstellung orientiert sich an dem Modellierer ACIS. Die BRep Systeme sollen i.A. jeweils Manifolds erzeugen. Ein Manifold ist ein Körper, der physikalisch realisierbar ist. Ein Würfel ist ein Manifold, jedoch bilden 2 Würfel, die sich nur an einer Kante oder einem Punkt berühren keinen Manifold. Allerdings ist es praktisch, wenn das BRep System auch Non-Manifolds behandeln kann, da bei einem Zwischenschritt auch ein Non-Manifold entstehen kann, der später in mehrere Körper zerfällt. Auf oberster Ebene hat man einen oder mehrere Body. Der Body besteht aus einem oder mehreren nicht verbundenen Körpern, den Lumps.

Die Lumps haben eine oder mehrere Oberflächen (Shells). Ein Würfel, der innen ausgehöhlt ist hat z.B. 2 Shells. Eine Shell besteht aus einer oder mehreren verbundenen Flächen (Faces). Die Faces sind i.A. definiert durch eine oder mehrere Umrandungen (Loops). Eine Oberfläche kann aber auch keine Umrandungen haben, z.B. hat die Oberfläche einer Kugel keine Umrandung. Die erste Umrandung ist die äußere Umrandung, die weiteren definieren Löcher in der Fläche. Die Umrandungen bestehen aus einer Folge von Kanten. Diese Kanten können zur Umrandung von 2 oder mehr Flächen gehören. Bei einem Manifold gehört eine Kante zu genau 2 Flächen bzw. deren Umrandungen. Die Kanten sind ungerichtet, die Umrandungen werden jedoch gebildet durch gerichtete Kanten, den Coedeges. Die Coedeges eines Loops bilden einen geschlossenen Kantenzug. Die Coedge wird dabei so orientiert, dass die Fläche jeweils in Kantenrichtung links liegt. Der Anfang und das Ende jeder Kante wird repräsentiert durch einen Punkt (Vertex).

Page 12: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

12

C:\CadVorlesung\brep2.KOG

Das bisherige Model spiegelt nur die Topologie der Körper wieder. Zusätzlich werden aber auch Datenelemente benötigt, die die Geometrie wiedergeben. Zunächst müssen die Flächen geometrisch definiert werden. Die Fläche kann zunächst beschrieben werden durch eine Ebenengleichung oder durch eine Gleichung für eine Fläche zweiter Ordnung, eine Quadrik. Kugeln, Zylinder, Kegel, Ellipsoide, Paraboloide bilden jeweils Quadriken. Daneben können die Flächen aber auch durch Approximation oder Interpolation beschrieben werden.

Page 13: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

13

Die durch die Geometrie beschriebenen Flächen haben keine Begrenzungen. Die Geometrie der Grenzen der Flächen wird den Kanten zugeordnet. Dies kann zunächst eine Linie zwischen zwei Knoten sein oder ein Linie zweiter Ordnung, ein Kegelschnitt. Darunter fallen Kreise, Kreisbögen, Ellipsen, Parabeln und Hyperbeln. Daneben aber auch Kurven, die durch Approximation (Bezier Kurven) oder Interpolation (Splines) definiert werden.

Zuletzt müssen auch für die Knoten jeweils die Koordinaten festgelegt werden. Dies geschieht durch ein Tripel (x,y,z).

Page 14: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

14

Insgesamt ergibt sich folgendes Schema:

Page 15: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

15

Alle Datenelemente sind dann z.B. bei dem Modellierer ACIS folgendermaßen verknüpft:

Page 16: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

16

Beipiel: Kugel -0 body $-1 $1 $-1 $2 # -1 lump $-1 $-1 $3 $0 # -2 transform $-1 1 0 0 0 1 0 0 0 1 2.0 2.0 -2.0 1 no_rotate no_reflect no_shear # -3 shell $-1 $-1 $-1 $4 $-1 $1 # -4 face $5 $-1 $-1 $3 $-1 $6 forward single # -5 fmesh-eye-attrib $-1 $-1 $-1 $4 # -6 sphere-surface $-1 0 0 0 1 1 0 0 0 0 1 forward_v I I I I # C:\CADVorlesung\acisKugel.KOG

0

12

3

4

6

Body

Lump

Shell

Face

Kugeloberfläche (Mittelp., Radius)

5Attribute

Page 17: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

17

Beispiel: Zylinder -0 body $-1 $1 $-1 $2 # -1 lump $-1 $-1 $3 $0 # -2 transform $-1 1 0 0 0 0 -1 0 1 0 0 1.5 0 1 rotate no_reflect no_shear # -3 shell $-1 $-1 $-1 $4 $-1 $1 # -4 face $5 $6 $7 $3 $-1 $8 forward single # -5 fmesh-eye-attrib $-1 $-1 $-1 $4 # -6 face $9 $10 $11 $3 $-1 $12 forward single # -7 loop $-1 $13 $14 $4 # -8 cone-surface $-1 0 0 0 0 0 1 1 0 0 1 I I 0 1 1 forward I I I I # -9 fmesh-eye-attrib $-1 $-1 $-1 $6 # -10 face $15 $-1 $16 $3 $-1 $17 forward single # -11 loop $-1 $-1 $18 $6 # -12 plane-surface $-1 0 0 -1.5 0 0 -1 -1 0 0 forward_v I I I I # -13 loop $-1 $-1 $19 $4 # -14 coedge $-1 $14 $14 $18 $20 reversed $7 $-1 # -15 fmesh-eye-attrib $-1 $-1 $-1 $10 # -16 loop $-1 $-1 $21 $10 # -17 plane-surface $-1 0 0 1.5 0 0 1 1 0 0 forward_v I I I I # -18 coedge $-1 $18 $18 $14 $20 forward $11 $-1 # -19 coedge $-1 $19 $19 $21 $22 reversed $13 $-1 # -20 edge $23 $24 0 $24 6.2831853071796004 $18 $25 forward 7 unknown # -21 coedge $-1 $21 $21 $19 $22 forward $16 $-1 # -22 edge $26 $27 0 $27 6.2831853071796004 $21 $28 forward 7 unknown # -23 ptlist-eye-attrib $-1 $-1 $-1 $20 # -24 vertex $-1 $20 $29 # -25 ellipse-curve $-1 0 0 -1.5 0 0 -1 1 0 0 1 I I # -26 ptlist-eye-attrib $-1 $-1 $-1 $22 # -27 vertex $-1 $22 $30 # -28 ellipse-curve $-1 0 0 1.5 0 0 1 1 0 0 1 I I # -29 point $-1 1 0 -1.5 # -30 point $-1 1 0 1.5 #

Page 18: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

18

C:\CA DVorlesung\acisZylinder.KOG

0

12

3

4 6

Body

Lump

Shell

101.Fläche 2.Fläche 3. Fläche

7 131.Loop 2.Loop

14 18 19 21

11Loop

Coedge Coedge

20

24 25

29

22

27 28

30

16 17

Transfo.

Loop Ebene

CoedgeCoedge

Edge Edge

Vertex VertexKreis Kreis

Point Point

8Zylindermantel

12Ebene

C:\CadVorlesung\acisZylinderBild.PIC

4

6

20

2210

18

14

19

21

Page 19: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

19

Mathematisches Modell von soliden Körpern (Solids) Definition: Ein Körper ist eine beschränkte abgeschlossene Teilmenge des E3

Um zu soliden Körpern zu kommen, wird gefordert dass die Teilmenge unter Lagetransformationen invariant bleibt. Definition: Seien A, B Є E3 und о eine Äquivalenzrelation, die wie folgt definiert ist: A о B ↔A kann auf B mit einer endlichen Folge von Translationen und Rotationen abgebildet werden. Ein starres Objekt (Rigid) ist die von о aufgespannte Äquivalenzklasse von Punktmengen des E3. Weiter sollen für solide Körper Strukturen wie Punktwolken oder isolierte Kanten, die von keinem Körpermaterial umgeben sind nicht zugelassen werden. Definition: Eine Regularisierung r(A) einer Punktmenge A ist definiert durch: R(a):= c(i(A)), wobei c(A) den Abschluss und i(a) das Innere einer Menge A beschreibt. Eine Menge A ist regulär, wenn r(a)=A ist. Durch die Regularisierung werden alle isolierten Teile einer Punktmenge weggenommen.

Definition: Eine beschränkte reguläre Menge heißt r-Menge. Die r-Mengen entsprechen einem soliden, also mit endlichem Volumen behafteten dreidimensionalen Körper. Eine geschlossene Oberfläche eines soliden Körpers wird abstrakt als 2-Mannigfaltigkeit bezeichnet. Definition: Eine 2-Mannigfaltigkeit M ist ein topologischer Raum, in dem jeder Punkt p Є M eine Nachbarschaft besitzt, die topologisch äquivalent zu einer offenen Kreisscheibe des E2 ist.

Page 20: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

20

Die Oberfläche einer Kugel ist z.B. eine 2-Mannigfaltigkeit. Definition: Eine r-Menge A heißt die Realisierung einer 2-Mannigfaltigkeit M, falls die Begrenzung b(A) topologisch äquivalent zu M ist. Eine 2-Mannigfaltigkeit, die mindestens eine Realisierung hat, wird realisierbar genannt. Nicht alle r-Mengen sind Realisierungen von 2-Mannigfaltigkeiten. Beispiele:

Page 21: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

21

Für den Punkt bzw. die Kante, wo sich die beiden Quader berühren gilt nicht, dass die Nachbarschaft zu einer offenen Kreisscheibe äquivalent ist. Die Kante, wo sich die beiden Quader berühren ist auch eine Begrenzung von mehr als 2 Flächen.

Page 22: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

22

Euler Charakteristik Ein Würfel hat 8 Ecken ( v ), 12 Kanten (e) und 6 Flächen (f). Es gilt: v-e+f= 8-12+6=2 Diese Konstante wird als Euler Charakteristik bezeichnet. Teilt man eine Fläche des Würfels durch eine zusätzliche Kante so erhöht man die Anzahl der Kanten und die der Flächen jeweils um 1. Die Euler-Summe bleibt als erhalten. Bei einem Tetraeder hat man: 4 Ecken, 6 Kanten und 4 Flächen v-e+f= 4-6+4=2 Für konvexe Polyeder gilt der Eulersche Polyedersatz: f - k + e = 2 Definition: Eine Oberfläche O eines Körpers hat das Geschlecht g, falls O topologisch äquivalent zu der Oberfläche einer Kugel mit h Henkeln ist. Ein Körper mit der einer Oberfläche vom Geschlecht g hat g Durchbohrungen. Das Geschlecht g eines Körpers entspricht der Anzahl h der Löcher (Durchbohrungen) eines Körpers. Definition: Schalen eines Körpers sind die Anzahl der Oberflächen die nicht miteinander verbunden sind.

Page 23: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

23

Hat man beliebige Körper mit Höhlungen, mehrfach zusammenhängenden Seitenflächen (Löchern in einer Fläche) und Durchbohrungen so bezeichnet man mit: X = f - k + e die Euler-Charakteristik. Für konvexe Körper ist X=2, d.h. der Körper hat eine Schale. Für einen Körper mit mehreren Schalen s gilt: v -e + f = 2 s Für einen Körper mit h Höhlungen und s Schalen gilt: v -e + f = 2 ( s -h) Hat der Körper auch noch r Ringe, d.h. Löcher in einer Fläche gilt die allgemeine Formel (Euler-Poincare): v -e + f = 2 ( s -h) +r Beispiele: Würfel mit Höhlung:

v=16 e=24 f=12 s=2 16-24+12=2*2

Page 24: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

24

Würfel mit aufgesetztem Würfel:

v=16 e=24 f=11 s=1 r=1 16-24+11=2*1+1 Würfel mit Durchbohrung:

v=16 e=24 f=10 s=1 r=2 h=1 16-24+10=2*(1-1)+2

Page 25: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

25

Würfel mit Höhlung und Durchbohrung

v=24 e=36 f=17 s=2 r=2 h=1 24-36+16=2*(2-1)+2

Page 26: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

26

Euler Operatoren Die Euler Operatoren sind Operationen, die die Euler Charakteristik erhalten. Beispiel: Erzeugen eines Würfels

Die Euler Poincare Formel v -e + f = 2 ( s -h) +r kann man auch schreiben: v -e + f -2s +2h –r =0 Zunächst wird mit der Operation: MVFS ein Knoten V eine Fläche F und eine Shell S erzeugt. Dann wird dreimal mit MEV eine Kante und ein Knoten hinzugefügt. Mit MEF wird eine Kante hinzugefügt und eine Fläche erzeugt. Dann noch viermal MEV. Am Ende noch viermal MEF zur Erzeugung der restlichen Flächen. Jede der Operationen erhält die Summe der Euler Poincare Formel. MVFS = v+f-2*s=0 MEF = -e+f =0 MEV = v-e =0 Dazu gehören die inversen Operationen: LVFS Lösche Knoten, Fläche und Shell LEF Lösche Kante und Fläche LEV Lösche Kante und Knoten Will man beliebige Polyeder mit Durchbrüchen und Ringen erzeugen so werden einige zusätzliche Operatoren benötigt. KEMR Lösche Kante Erzeuge Ring +e–r=0 Die inverse Operation ist: MEKR Erzeuge Kante Lösche Ring -e+r=0

Page 27: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

27

Um Durchbohrungen zu erzeugen bzw. zu schließen gibt es: KFMRH: Lösche Fläche, Erzeuge Ring und Loch. -f-r+2h MFKRH Erzeuge Fläche, Lösche Ring und Loch +f+r-2h

Zusammenfassung der Euler-Operatoren:

Page 28: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

28

Die Euler Operatoren werden mit Hilfe der folgenden Halbkanten-Datenstruktur implementiert.

B-Rep Darstellung mit Halbkanten Datenstruktur Die Darstellung eines B-Rep Modells erfolgt mit Hilfe der Halbkanten-Datenstruktur Zwei unterschiedliche Modellarchitekturen werden in der Halbkanten-Datenstruktur vereinigt, das hierarchische und das lineare Modell. Kanten eines festen Körpers, dessen Oberfläche eine 2-Mannigfaltigkeit ist, sind zu genau 2 Flächen adjazent. Daher wird eine Kante im hierarchischen Modell durch 2 Halbkanten repräsentiert.

Hierarchisches Modell Das hierarchische Modell besitzt einen Schichtenweisen Aufbau. Diese Schichten sind die Flächen- Berandungs-, Halbkanten- und Knotenschicht. Jedes Element der oberen Schicht wird durch ein oder mehrere Elemente der unteren Schicht repräsentiert.

Page 29: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

29

In jeder Schicht sind die einzelnen Elemente durch eine doppelt verkettete Liste verknüpft (prev*, next*). Ferner enthält jedes Element einen Zeiger auf Element der oberen Schicht, das es darstellt. Von der oberen Schicht zeigt ein Zeiger auf das erste Element der unteren Schicht, das dieses Element darstellt. Die im ACIS System vorkommenden Ebenen der Lumps und Shells wird hier weggelassen. Es werden also nur Körper betrachtet, die aus einem Teil bestehen und keine Aushöhlungen haben.

Page 30: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

30

Die Flächenschicht (Face) enthält für jeden Körper (Solid) genau eine Flächenliste, die alle Flächen des Körpers darstellt. Die Berandungsschicht (Loop) enthält eine Liste der Berandungen einer Fläche. Die Halbkantenschicht (HalfEdge) enthält für jede Berandung eine Liste der Halbkanten. Für jede Halbkante gibt es einen Zeiger auf den Startknoten in der Knotenschicht (Vertex). Jeder Knoten enthält einen Zeiger auf eine Halbkante, deren Startknoten der Knoten ist.

Page 31: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

31

Von dieser Halbkante können die übrigen mit dem Knoten adjazenten Halbkanten ermittelt werden. Lineares Modell In einer Instanz des hierarchischen Modells der Halbkanten-Datenstruktur sind alle geometrischen Informationen des repräsentierten Körpers gespeichert. Durch eine Instanz des linearen Modells wird die Halbkanten-Datenstruktur vervollständigt. Eine Kante der Winged-Edge-Datenstruktur tritt in einer Instanz des linearen Modells genau zweimal auf. Die Eigenschaft eines Ebenenmodells, zwei Kanten als genau eine Kante zu identifizieren, ist in der Winged-Edge-Datenstruktur somit implizit gespeichert. In einer Instanz der Halbkanten-Datenstruktur wird diese Eigenschaft dadurch gewährleistet, dass genau zwei Halbkanten als eine Kante identifiziert werden. Für die neue Datenstruktur Kante wird gefordert, dass • jede Kante genau einmal im gesamten Modell aufgeführt ist, • jede Kante auf genau zwei Halbkanten unterschiedlicher Orientierung verweist, • und genau zwei Halbkanten unterschiedlicher Orientierung auf dieselbe Kante zeigen.

Zwei Halbkanten werden durch den Verweis auf dieselbe Kante als genau eine Kante identifiziert. Eine Kante verweist auf genau zwei Halbkanten. Bei dieser Modellierungsmethode nimmt die Datenstruktur Kante eine Sonderstellung ein, da für sie nur eine Adjazenz bezüglich zweier Halbkanten definiert wird. Es fehlt

Page 32: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

32

die Definition einer Adjazenz zu einer über der Halbkante liegenden Schicht. Daher können Kanten nicht in eine Instanz des hierarchischen Modells eingeordnet werden. Sie werden in einer doppelt verketteten linearen Liste in einer Instanz des linearen Modells abgespeichert. In einem komfortablen CAD-System sollte es einem Benutzer möglich sein, Knoten eines Körpers ohne lange Verzögerungszeiten zu selektieren. Über das hierarchische Halbkantenmodell einen Knoten zu lokalisieren, ist äußerst aufwendig. Zuerst muss die Fläche gefunden werden, in der der selektierte Punkt liegt und anschließend alle Halbkantenlisten der äußeren und inneren Schleifen nach einem Knoten durchsucht werden, dessen Koordinaten den Koordinaten des selektierten Punktes entsprechen. Eine Instanz des linearen Modells wird aus diesem Grunde durch eine Knotenliste, in der alle Knoten des Körpers gespeichert sind, ergänzt. Aus Speichereffizienzgründen werden für Elemente der Knotenliste keine neuen Instanzen angelegt, da alle Knoten schon in der Knotenschicht des hierarchischen Modells gespeichert sind. Vielmehr werden diese Knoten als doppelt verkettete Liste in einer Instanz des linearen Modells abgelegt. Die Knotenliste spielt somit eine Sonderrolle, da sie sowohl einer Instanz des hierarchischen als auch einer Instanz des linearen Modells zugeordnet werden kann. Wie die Angliederung einer Instanz des linearen Modells an ein Element der Körperliste durch entsprechende Verweise realisiert wird, zeigt die folgende Abbildung.

Page 33: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

33

Eine mögliche Datenstruktur in Pascal kann wie folgt aussehen: tsolid = record { Körper } color:integer; { Farbe des Körpers } bbox : tbox; { boundarybox eines Körpers } solidno : id; { bezeichner des Körpers } sfaces : pface; { Zeiger auf Flächenliste } sedges : pedge; { Zeiger auf Kantenliste } sverts : pvertex; { Zeiger auf Knotenliste } nexts : psolid; { Zeiger auf Nachfolger } prevs : psolid; { Zeiger auf Vorgänger } end; tface = record { Fl„che } color:integer; { Fl„chenfarbe } BS:boolean; { Markierung von Vorder- und Rückseiten (BackSide) } bbox:tbox; { boundary-box des Körpers } mark:boolean; { Markierung von sich selbstber�hrenden Berandungen einer Fläche } dist:rtp; { definiert Abstand zum Augpunkt } faceno : id; { Flächenbezeichner } fsolid : psolid; { Zeiger auf Vorgänger } flout : ploop; { Zeiger auf äußere Flächenberandung, gespeichert in floops } floops : ploop; { Berandungsliste } feq : vector; { Flächennormale } nextf : pface; { Zeiger auf Nachfolger } prevf : pface; { Zeiger auf Vorgänger } end; tloop = record { Schleife } ledge : phalfedge; { Zeiger auf erste Halbkante des Halbkantenrings } lface : pface; { Zeiger auf adj. Fläche } nextl : ploop; { Zeiger auf Nachfolger } prevl : ploop; { Zeiger auf Vorgänger } end; tedge = record mark:boolean; { markiert Flatterkanten } bbox :tbox; { bbox einer Kante } ne:integer; { Verweis auf Nullkante, falls Halbkanteninstanz Nullkante ist. } he1 : phalfedge; { Zeiger auf erste Halbkante } he2 : phalfedge; { Zeiger auf zweite Halbkante } nexte : pedge; { Zeiger auf Nachfolger } preve : pedge; { Zeiger auf Vorgänger } end; thalfedge = record { Halbkante } konv : boolean; { Marke zur Unterscheidung von konvexen und konkaven Startknoten der Halbkante } neighb : phalfedge; { zeigt auf den Nachbarn der Halbkante } mark : boolean; { Markierung eines Nullkantenclusters } edg : pedge; { Zeiger auf adj. Kante } vtx : pvertex; { Zeiger auf Startknoten der Halbkante } wloop : ploop; { Zeiger auf adj. Schleife } nxt : phalfedge; { Zeiger auf Nachfolger } prv : phalfedge; { Zeiger auf Vorgänger } end; tvertex = record mark:boolean; { Zum Erzeugen eines linearen Modells } vertexno : id; { Knotenbezeichner } vedge : phalfedge; { Zeiger Halbkante, die den Knoten als Startknoten besitzt } vcoord : vector; { 3D-Koordinaten } vcoord2d :vector2d; { 2D-Koordinaten, werden in zur Projektion berechnet} nextv : pvertex; { Zeiger auf Nachfolger } prevv : pvertex; { Zeiger auf Vorgänger } end;

Page 34: 3D Modellierung - userpages.uni-koblenz.deros/CAD/Manuscript/3DModellierung.pdf · 3 Bei der 3D Modellierung werden also Körper in einem 3 dimensionalen Raum modelliert. Die drei

34

Die Funktionen traverse und mate Die Funktionen traverse und mate untersuchen die Nachbarschaften einer Kante und eines Knotens. Ein wichtiger begriff ist der Genosse (buddy) einer Halbkante. Die Halbkanten die eine Kante identifizieren sind Genossen. function mate(h:phalfedge) :phalfedge; begin If h=h^.edg^.he1 then mate:=h^.edg^.he2; else mate:=h^.edg^.he1; end; Die Prozedur traverse untersucht die Umgebung eines Knotens. Ausgehend von einer zu v adjazenten Halbkante start, werden die Nachfolger h des Genossen einer Halbkante an die Prozedur work übergeben.

In der Abbildung ist der Nachfolger des Genossen von beispielsweise hl die Halbkante h2. procedure traverse(v: pvertex); var h:phalfedge; begin start:=v^.edge; h:=start; repeat h:=mate(h)^.nxt; work(h); until h=v^.vedge; end;