CS 285: SOLID MODELING
Lecture #3 -- We, Jan. 30, 2002.
PREVIOUS < - -
- - > CS 285 HOME < - -
- - > CURRENT < - -
- - > NEXT
Preparation
Fill out questionnaire on preferences of papers and bring it to class.
Design Plan, Choice of Parameters (Assignment 1)
The most important aspect of good model design is to have a good, realistic plan.
Some shortcomings observed in the write-ups of A1:
- Vague plans -- asking for things to be delivered "by magic": (rounding the edges).
- Vague plans how elements should fit together: (the 12 flowers on the dodecahedron).
- Too many low-level paramaters: (all vertex coordinates)
- Redundant, dependent parameters: (diameter of dodecahedron, edge-length of pentagon).
- Lack of generic high-level parameters: (number of teeth on gear wheels).
Remember that manufacturing issues are strongly scale dependent!
How would you build an icosahedral frames of 5mm, 1foot, 1m, or 10m in diameter ?
More on SLIDE and Tcl
(Jordan Smith)
Review of Various Shape Representations for Different Purposes
In our "Art to Part" design pipeline we now want to focus on
getting our designs into the computer as a CAD model.
In what form should we represent the geometry of our part ?
What are the main concerns for these representations ?
- Design front ends and design languages
-- Key constructs that are easy to use by the designers.
- Datastructures for manipulation, modification, analysis
-- Full connectivity to nearest neighbors for efficient modification.
- Shape capture for fabrication, interchange formats
-- Primitives that can readily be interpreted by the fabrication machines.
What are the building blocks for these representations ?
How do we know that we have a viable, consistent SOLID model ?
Design-Level Representations
- (Parameterized) Primitives
Cubes, spheres, cylinders, cones, ...
Look at the
SLIDE Language.
-
CSG -- Constructive Solid Geometry
Combine solids with regularized boolean operations
-
B-rep, Boundary Representation
The surface of the solid described as a collection of planar polygons
and/or curved (spline) patches.
Subdivision surfaces !
-
Voxels
Partially occupied array of solid volume elements.
- Instancing
--> This is the primary way to enforce symmetry in a design.
Atoms for
Nanotech Machines (
Differential Gear,
Motion Controller,
Atom Pump )
Parametrized primitives, previously defined objects, ...
- Parameterized objects, "auto-shapes"
2D: drafting symbols: n-gons, stars, "banners", ...
(available in most drawing programs).
3D: gear wheels, ...
(often custom-built, not yet readily available).
- Features for manufacturing
Through-holes, sink-holes, pockets, slots, shoulder pockets, ...
(No consistent nomenclature or definitions; should also be parameterized).
- Procedural generation
Spline patches -- defined by their type, control points, ...
Sweeps -- defined by cross section and sweep path.
L-systems -- parameterized instantiation based on expression trees.
Wavy surface of the sea, fractal mountains, ...
- Procedural shape modification
Edge bevelling or rounding.
Subdivision -- procedural smoothing, related to splines.
-
Structure of a design
Scene hierarchy (logical/functional).
Dynamic grouping during editing.
Constraints -- (e.g., Pro-E.)
-
The SLIDE Language
combines many of the above representations.
Many of the statements that have to do with rendering
can be ignored for CS285.
How to convert between these different representations ?
If you could have only ONE of the above paradigms -- which one would you choose ?
Data Structures for Solid Modeling
-
Non-hierarchical Boundary Representations
- Winged-edge data structure for orientable 2-manifolds (Baumgart)
- -- every edge connects to exactly two polygons, one on each side.
- Radial-edge data structure for non-manifolds (Weiler, UniGrafix)
- -- edges can connect to arbitrarily many polygons.
- Quad-edge data structure (Guibas and Stolfi)
- -- a dual/symmetric treatment of vertices and faces.
- Polygon soup ( .STL)
- -- not really a "data structure" -- but useful for "display lists."
- Cellular/Simplex Decompositions
-- the 3D equivalent of a triangulated 2D polygon.
-- finite-element meshes for structural analysis.
-- (possible project: generate these directly in SLIDE for sound analysis, e.g., bells).
-
Voxel-based Representations
-- for 3D raster data from ultra-sound or Magnetic Resonance Imaging (MRI).
-- also important as a general spatial reference frame when data is unevenly distributed.
"Tabulates" spatial occupancy. For efficient encoding use:
- Run-length encoding
- Octrees
- Wavelet-based (kD-tree-based) generalizations
Which is the right one for what purpose ?
Current Homework Assignments:
PREVIOUS < - -
- - > CS 285 HOME < - -
- - > CURRENT < - -
- - > NEXT
Page Editor:
Carlo H. Séquin