0% found this document useful (0 votes)
17 views

Solid Modeling

Solid modeling has evolved from wireframe to boundary representation (BREP) models. BREP models define solids using their boundaries, represented by faces, edges, and vertices. Each edge is shared by exactly two faces, and edges define the boundary of faces. BREP allows for efficient computation of properties like surface area and volume, and relationships like intersections. The winged-edge data structure efficiently implements algorithms by tracking neighboring faces and edges.

Uploaded by

Dogara Williams
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Solid Modeling

Solid modeling has evolved from wireframe to boundary representation (BREP) models. BREP models define solids using their boundaries, represented by faces, edges, and vertices. Each edge is shared by exactly two faces, and edges define the boundary of faces. BREP allows for efficient computation of properties like surface area and volume, and relationships like intersections. The winged-edge data structure efficiently implements algorithms by tracking neighboring faces and edges.

Uploaded by

Dogara Williams
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 27

Solid Modeling

History:
CNC: ~1950

Mainframe Computers: ~1960’s

BREP: 1970 (Baumgart)

CSG: 1974 (Ian Braid)


Computerized Drafting

Advantages:
Saves on storage/retrieval;
Easy modification, update;

Shortcomings:
Can’t analyse the
strength, shape,
geometry, weight
center of mass, center of inertia

Popular Commercial tools: AutoCAD, CADKEY…


3D and Solids Representation

Wireframe Models

Stores each edge of the object

data:
The vertices
start point, end point

The equation of the edge-curve


Wireframe Problem: Ambiguity

Wireframe ambiguity:
Is this object (a), (b) or (c) ?

(a) (b) (c)


Other Methods

Constructive Solid Geometry (CSG)

Boundary Representation (BREP)

Spatial Enumeration (voxels, octrees)


Constructive Solid Geometry (CSG)

Introduced: Ian Braid (Cambridge University, ~74)

Concepts:
Primitives: small set of shapes

Transformations: scaling, Rotation, Translation

Set-theoretic Operations Union, Intersection, Difference


[ Euler operators ]

Combinations of these  Solid part


Euler operators

U* (regular union)

-* (regular difference)

∩* (regular intersection)

CSG Tree:
Sequence of operators  design
Examples of CSG

box( a, b, c) cylinder( h, r)
z
z
x
y

y
x
Z
primitives

X
-*

U* Trans( 10, 0, 0) box( 3, 10, 10)

U* Trans( 20, 12.5, 15) cylinder( 5, 3)

box( 25, 25, 15) Trans( 5  2,0, 15) Rot(Y, 45) Trans( -5, 0, -5) box( 10, 25, 10)
Questions:

Can we use a different set of primitives ?

Is the CSG representation unique ?

[how to determine if two solids are identical ?]


Regularized operators

Is the set of 3D solids is closed with respect to ( U, -, ∩ )?

closure of a set S: kS

interior of a set S: iS

A U* B = k i ( A U B)

A -* B = k i ( A –B)

A ∩* B = k i ( A ∩ B)

Why is closure over operations important?

uniform data structures


Regularized Euler Operators

Maintain solid as a regular 2-Manifold

2-Manifold regular solids


Open neighborhood of each point is similar to an open disc

Non 2-Manifold:
Problems with CSG

Non-Unique representation

Difficulty of performing analysis for some tasks


BREP (Boundary REPresentation)

What entities define the

Boundary of a solid ?

Boundary of surfaces?

Boundary of curves (edges) ?

Boundary of points ?
BREP

Boundary of a solid… (a) Solid: bounded, connected subset of E 3

Boundary of surfaces…

(b) Faces: boundary of solid


bounded, connected subsets of Surfaces

Boundary of curves (edges)…

(c) Edges: boundary of faces


bounded, connected subsets of curves
BREP: Polyhedral models
Using a Boundary Model

Compute Volume, Weight

Compute Surface area

Point inside/outside solid

Intersection of two faces


An Edge-Based Model Faces:
f1 e1 e4 e5
f2 e2 e6 e4
f3 e3 e5 e6
f4 e3 e2 e1
v4

e6 Edges:
e4 e1 v1 v2
e5 v3 e2 v2 v3
e3 v3 v1
e3 e2 e4 v2 v4
e5 v1 v4
v1 v2 e6 v3 v4
e1

Vertices:
v1 x1 y1 z1
v2 x2 y2 z2
v3 x3 y3 z3
v4 x4 y4 z4
v5 x5 y5 z5
v6 x6 y6 z6
Edge-Based Models: inefficient algorithms

face

Compute Surface Area:


1. Identify Loops
2. Compute area of each loop
3. Compute area of face
The Winged-Edge Data Structure

Efficient implementation of often-used algorithms

Area of Face

Hidden surface removal

Find neighbor-faces of a face


Observations

2-Manifold => Each edge is shared by exactly 2 faces

co-edges

e6

e4 e4
e5
Face CCW convention =>
e2
Each edge is once +ve, once -ve
e1
BREP Example

v4

e6
v8
e12 v3
e5 e11 e10 e4
v7
e9
e8
v5 e2
e7 v6
e3
v1 v2
e1
BREP Example

Vertices:
v1 x1 y1 z1
v4
v2 x2 y2 z2
e6 v3 x3 y3 z3
v8
e12
v4 x4 y4 z4
v3
e5 e11
e9
e10
v7
e4
v5 x5 y5 z5
v5 e7
e8
v6
e2 v6 x6 y6 z6
e3 v7 x7 y7 z7
v1
e1 v2 v8 x8 y8 z8
v9 x9 y9 z9
v10 x10 y10 z10
v11 x11 y11 z11
v12 x12 y12 z12
BREP Example..

Edges:
e1 v1 v2
v4
e2 v2 v3
e6 e3 v3 v1
v8 e4 v2 v4
e12
e5 e11 e10
v7
e4 v3 e5 v1 v4
e9
e8 e6 v3 v4
v5 e2
e7 v6 e7 v5 v6
e3
e8 v6 v7
v1 v2
e1 e9 v7 v5
e10 v6 v8
e11 v5 v8
e12 v7 v8
BREP Example…
Faces:
f1 l1 l2
f2 l3
v4
f3 l4
f4 l5
e6 f5 l6
v8
f6 l7
e12 v3
e5 e11 e10
v7
e4 f7 l8
e9
e8
v5 e2 Loops:
e7 v6
e3 l1 +e1 +e4 -e5
l2 -e7 +e11 -e10
v1 v2 l3 +e2 +e6 -e4
e1
l4 +e5 -e6 +e3
l5 -e1 -e3 -e2
l6 +e7 +e8 +e9
l7 +e10 -e12 -e8
l8 -e11 -e9 +e12
BREP: Winged edge data structure

Solid

s_faces f_solid

prev_f Face next_f

f_loops l_face

prev_l Loop next_l

l_coedge c_loop

prev_ce coEdge next_ce

v_start v_end

prev_v Vertex next_v


BREP or CSG ?

Using: CSG is more intuitive

Computing: BREP is more convenient

Modern CAD Systems:

CSG for GUI (feature tree)

BREP for internal storage and API’s


BREP: non-polyhedral models?

Same Data Structure, plus

For each edge, store equation

For each curved face, store equation

Why do we need to learn all this ?

(a) To anticipate when an operation will fail

(b) To allow us to write API’s

You might also like