440 likes | 586 Views
Representation Issues in Data Exchange for RP-LM. Sara McMains U.C. Berkeley. RP-LM Data Exchange. Read Validate Scale Position/orient Slice Rasterize. Network. Designer. Transmit. Manufacturer. Translate Write. RP-LM Data Exchange. Read Validate Scale Position/orient Slice
E N D
Representation Issues in Data Exchange for RP-LM Sara McMains U.C. Berkeley
RP-LM Data Exchange • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
RP-LM Data Exchange • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
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 • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
Data Translation • Easiest for the manufacturer: • Simplest possible format • Lowest common denominator • This is why STL is still being used!
RP-LM Data Exchange • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
RP-LM Data Exchange • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
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 • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
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 • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
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 • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
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 • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
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 • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
Input Captured in Layers • E.g. • CT scans • Digitized input • Can we manufacture these layers directly? • Do we want to?
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 • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write
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
2-manifold non-2-manifold Scope: Solids • Optimize for 2-manifolds • 2 directed “edge-uses” per undirected edge • Should also support non-manifold solids
Pseudo-2-Manifolds • Geometry not 2-manifold • Represented topology is 2-manifold
RP-LM Data Exchange • Read • Validate • Scale • Position/orient • Slice • Rasterize Network Designer • Transmit Manufacturer • Translate • Write