McMains' Presentation to NIST

advertisement
Representation Issues in
Data Exchange for RP-LM
Sara McMains
U.C. Berkeley
RP-LM Data Exchange
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
RP-LM Data Exchange
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
Data Translation
• Easiest for the manufacturer:
– Simplest possible format
• Lowest common denominator
• This is why STL is still being used!
RP-LM Data Exchange
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
RP-LM Data Exchange
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
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
Scope: Solids
• Optimize for 2-manifolds
– 2 directed “edge-uses” per undirected edge
2-manifold
non-2-manifold
• Should also support non-manifold solids
Pseudo-2-Manifolds
• Geometry not 2-manifold
• Represented topology is 2-manifold
RP-LM Data Exchange
Network
Designer
• Translate
• Write
• Transmit
Manufacturer
•
•
•
•
•
•
Read
Validate
Scale
Position/orient
Slice
Rasterize
Download