Geometric and Solid Modeling
Transcript of Geometric and Solid Modeling
-
7/26/2019 Geometric and Solid Modeling
1/21
Seminar in
Design Computing
Geometric and Solid Modeling
Interactive Design in 3D
A representation that was general enough to
depict any shape
Editing operations that would allow shapes to
be modified limitlessly
Ian Braid
Bruce Baumgart
The Fathers of Solid Modeling (1973)
ACIS Parasolids
Methods for computing shapes rather than
drawing them
-
7/26/2019 Geometric and Solid Modeling
2/21
Seminar in
Design Computing
Geometric and Solid Modeling
-
7/26/2019 Geometric and Solid Modeling
3/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
F
FF
E
E
E
Vertex adjacencies:
F
E
E
E
V
V
V
Face adjacencies:
F
FE VV
Edge adjacencies:
Geometry and topology
line :: edge
surface :: face
E + V = 212 + 8 = 2
-
7/26/2019 Geometric and Solid Modeling
4/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
Other issues:F
E
E
E
V
V
V
Face adjacencies:
F
E
E
E
V
V
V
Face - loop - edge adjacencies:
LF L
Faces bounded by
multiple loops Euler Equation:
F - E + V = 211 - 24 + 16 = ?? 11 - 24 + 16 - 1 = 2
F - E + V - L = 2
-
7/26/2019 Geometric and Solid Modeling
5/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
Other issues:
B
S1S2
Shapes bounded by
multiple shells
12 - 24 + 16 - 0 = ?
F - E + V - L = 2
24 + 16 - 0 = 2*2
- E + V - L = 2*S
-
7/26/2019 Geometric and Solid Modeling
6/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
Other issues:
Shapes with holes
through them
16 - 36 + 24 - 2 = 2*2 ??
F - E + V - L = 2*S F - E + V - L = 2*(S - H)
16 - 36 + 24 - 2 = 2*(2 - 1)
F - E + V - L = 2*(S - H)
-
7/26/2019 Geometric and Solid Modeling
7/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
Winged edge data structure
body
shell
face face face
loop loop
shell
edge edge edge
vert vert
Edge #
loop_ptr
p-edge_ptrs-edge_ptr
vert_ptr
F
FE VV
Edge adjacencies:
-
7/26/2019 Geometric and Solid Modeling
8/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
Winged edge data structure
body
shell
face face face
loop loop
shell
edge edge edge
vert vert
F
FE VV
Edge adjacencies:
Split edge data structure
Edge #
loop_ptr
p-edge_ptr
s-edge_ptr
vert_ptr
op_edge_ptr
-
7/26/2019 Geometric and Solid Modeling
9/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
How to construct - modify
shape topology
Euler operators
F1F2
F3F4
-
7/26/2019 Geometric and Solid Modeling
10/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure:
How to construct - modify
shape topology
Euler operators
Mbsflv( );
1-0+1=2
Mev( e1,e2, l);
0-1+1=0
Mef( e1,e2, l);
1-1+0=0
F
Keml( e1);
0+1-0-1=0
F
-
7/26/2019 Geometric and Solid Modeling
11/21
Seminar in
Design Computing
Geometric and Solid Modeling
*body Mbsflv()
/* creates a minimal shape, consisting of a body and shell, with one
face bounded by a vertex */
vf
null
Kbsflv(s, body_too )
* body s;
flag body_too;
/* deletes a shell, consisting of all its faces, loops, edges and vertices.
The flag determines if it is the last shell, whether to delete the body also.
*/
nullvf
vv
-
7/26/2019 Geometric and Solid Modeling
12/21
Seminar in
Design Computing
Geometric and Solid Modeling
*edge Mev( *edge1,*edge2,*loop1 )
*edge edge1, edge2;
*loop loop1;
/* adds a new edge as successor of edge1. oppedge of new edgeis predecessor of edge2. all edges between edge1 and edge2 are
put on new vertex in the case where an edge is connected to a
vertex bounding a face, the loop of the bounding vertex is given */
-
7/26/2019 Geometric and Solid Modeling
13/21
Seminar in
Design Computing
Geometric and Solid Modeling
AB
C
*edge Mef( *edge1,*edge2, *loop1 )*edge edge1, edge2;*loop loop1;
/* makes an edge and faceloop; new face may be bound by single
edge; new edge is successor to edghe1 and its opposite its successorof edge2; newedge is on existing face;is edge1 = edge2, then newfaceis a single edgeloop */
-
7/26/2019 Geometric and Solid Modeling
14/21
Seminar in
Design Computing
Geometric and Solid Modeling
*edge Mekl(*edge1, edge2, loop1, loop2 )
*edge edge1, edge2;
*loop loop1,loop2;
/* makes a new edge between 2 loops on the same face, kills one loop; new edge
is successor of edge1 and oppedge is successor of edge2 */
-
7/26/2019 Geometric and Solid Modeling
15/21
Seminar in
Design Computing
Geometric and Solid Modeling
SOLID MODELINGData structure: Euler operators
Operator F - E + V - L = 2 * (S - H)
mbsfv 1 - 0 + 1 - 0 = 2 * (1 - 0)kbsfv n - m + p - q = 2 * (1 - 0)
mev 0 - 1 + 1 - 0 = 2 * (0 - 0)
kev 0 + 1 - 1 - 0 = 2 * (0 - 0)
mef 1 - 1 + 0 - 0 = 2 * (0 - 0)kef -1 + 1 + 0 - 0 = 2 * (0 - 0)
Mekl 0 - 1 + 0 + 1 = 2 * (0 - 0)
Keml 0 + 1 + 0 - 1 = 2 * (0 - 0)
FglueMhole -2 - n + n - 0 = 2 * (0 - 1) glue end faces to make torus
Mlamina 2 - n + n - 0 = 2 * (1 - 0) cuts thru shape & makes lamina
KfaceMhole -2 + m - m - 0 = 2 * (0 - 1) merges two pockets into a hole
Fglue -2 + m - m - 0 = 2 * (-1 - 0) glues two coincident faces
KLamina -2 + m - m - 0 = 2 * (-1 - 0) deletes lamina
Completeness?
-
7/26/2019 Geometric and Solid Modeling
16/21
Seminar in
Design Computing
Geometric and Solid Modeling
BOOLEAN OPERATIONS (SIMPLE)OVERVIEW
1. partition faces sothey are uniquelyinside or outsidethe other shape.
2. kill all facesinside (outside theother shape.
3. Glue facestogether
SOLID MODELINGData structure:
-
7/26/2019 Geometric and Solid Modeling
17/21
Seminar in
Design Computing
Geometric and Solid ModelingGLUING TWO FACES WITHOUT INNER LOOPS:
This operation deletes N edges and N vertices and 2 faces and either (deletes
one shell) or (increases the genus (number of holes) by 1).
PARAMETERS PASSED: half-edge on each face that is to be merged
A. CHECK FOR LEGAL GLUE:1.same number of edges in g lued fa ces2.check each glued face has only one loop
B. SWAP HALF EDGES ON GLUED FACES:1.switch opposite references on opposite half edgesof glued faces
C. MERGE VERTICES TO A SINGLE SET:1.move all half edge references to one set of vertices2. traverse around all vertices to be removed, retargettingedge references to kept vertices
D. DELETE EXTRA VERTICES, EDGES, LOOPSAND FACES:1.delete N vertices on one of glued faces2. delete 2*N half edges on both glued faces
3. delete 2 loops and faces that are glued
FACE FACE FACE
-
7/26/2019 Geometric and Solid Modeling
18/21
Seminar in
Design Computing
Geometric and Solid Modeling
E. IF GLUING TWO SHELLS:1. merge in faces to single list2. delete shell not used in new shapeIF GLUING TWO SHAPES3.merge in vertex lists4.delete shape not used
F. DO NEEDED BOOKKEEPING:1.re-index all faces, edges and vertices2. update euler count and change genus, if necessary
SHELL
FACE FACE FACE
FACE FACEFACE
Add 2 faces, with n edges
and n vertices
MakeLamina
A B
C
Still connected, but withlamina in middle
-
7/26/2019 Geometric and Solid Modeling
19/21
Seminar in
Design Computing
Geometric and Solid Modeling
glue end faces together, removing 2
faces; deletes a set of edges and
vertices bounding lamina, adds hole
FaceGlueMakeHole
glue end faces together, removing 2
faces; deletes a set of edges and
vertices bounding lamina, adds hole
KillFaceMakehole
-
7/26/2019 Geometric and Solid Modeling
20/21
Seminar in
Design Computing
Geometric and Solid Modeling
What is a legal solid shape? All operations must
respect a set of basic well-formedness conditions
Continuous
No infinite dimensions
No self-intersections
Mobius Law regarding manifolds
S S
An algebra
-
7/26/2019 Geometric and Solid Modeling
21/21
Seminar in
Design Computing
Geometric and Solid Modeling
Assignment A:
The Expanded Euler equation, with the parameters F,E,V,L,S,H, defines a
shape topology appropriate for a family of shapes.Is there a unique shape topology for a particular set of parameters? If we
stored shape topologies by their parameters, would there be a unique
topology for a given set of Euler parameters?
Please (informally) provide a convincing argument one way or the other.
Assignment B:
Define the sequence of Euler operators needed to define an
extrusion, on M sides in the base.