Representation Issues in Data Exchange for RP-LM
Sara McMains
U.C. Berkeley
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Data Translation
• Easiest for the designer:– Format that includes all design constructs
• B-reps– Tesselated
– Trimmed NURBS
• CSG• Sweeps• Voxels• Parametric• Surface equations
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Data Translation
• Easiest for the manufacturer:– Simplest possible format
• Lowest common denominator• This is why STL is still being used!
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
ASCII or Binary?
• ASCII– Data exchange always imperfect
• Humans will end up examining files
• Binary– Compact– Computers store binary numbers
• Simple fractional decimals cannot be exactly represented as floating point values
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Sources of Cracks in STL
• Round-off– Instancing with geometric transformations
Require Shared Vertices
• Specify vertex coordinates only once
• All geometry that shares vertex references same vertex
• Compact for transmission
• Forces designer to think about connectivity
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Sources of Cracks in STL
– Boolean trim curves
Boolean Trim Curves
• Intersection curve higher order than input
• Mapped back onto input patches– Approximated in parametric space – Won’t match exactly on two patches
• Connectivity of trimmed patches should be specified explicitly
File Repair Techniques: Local• Triangulate between unmatched facet edges
– Bohn and Wozny ’92– Barequet and Sharir ’95
• Merges edges for small cracks,• Triangulate remaining holes
– Barequet and Kumar ’97
• Adding triangles may introduce intersections;• Best match problem NP complete
File Repair Techniques: Global
• Build a Binary Space Partitioning tree, identify solid regions,
output boundary– Murali & Funkhouser ’97
• Scalability issues
Better STL Generation
• Curved patch to STL conversion without gaps:Match discretized trim curves, User-supplied tolerances
– Dolenc ’93 – Sheng & Meier ’95
• Prevent intersections when triangulating
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Nesting Information
• Should nesting of shells be transmitted?– Designer intent– But how is nesting generated?
• Computed from b-rep?
– What if it disagrees with geometry?• Who do you believe - geometry or topology?
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Units
• Require units!
• Lack of units invites educated guesses
• Default unit not good enough– Assumptions may differ– Require explicit specification
• Force assumptions to be visible
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Input Captured in Layers
• E.g.– CT scans– Digitized input
• Can we manufacture these layers directly?
• Do we want to?
Matched Layer Thicknesses
Unmatched Layer Thicknesses
Surface Reconstruction
• Interpolate between input slices– Interpolation smooths boundary– Additional processing can further smooth
coarse input– Complete freedom to re-orient surface
• Faster build times
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit
Implicit Booleans
• Implicit unions
Implicit Booleans
• Implicit unions
Implicit Booleans
• Implicit differences
(2D example)
Implicit Booleans
• Implicit differences
(2D example)
Implicit Booleans
• Implicit differences
(2D example)
Implicit Booleans
• Implicit differences
(2D example)
Implicit Booleans
• Implicit differences
(2D example)
Implicit Booleans
• Implicit differences
(2D example)
Implicit Booleans
• Implicit differences
(2D example)
Implicit Booleans
• Self-intersections
(2D example)
Implicit Booleans
• Self-intersections
(2D example)
Implicit Booleans
• Self-intersections
(2D example)
Implicit Booleans
• Even if exchange format doesn’t include explicit Booleans, implicit Booleans will arise
• Manufacturers won’t categorically reject
• Need semantics for implicit Booleans
non-2-manifold
Scope: Solids
• Optimize for 2-manifolds– 2 directed “edge-uses” per undirected edge
• Should also support non-manifold solids
2-manifold
Pseudo-2-Manifolds
• Geometry not 2-manifold
• Represented topology is 2-manifold
RP-LM Data Exchange
Designer
• Read• Validate• Scale• Position/orient• Slice• Rasterize
Manufacturer
Network
• Translate• Write
• Transmit