Geometric Algorithms for Layered Manufacturing: Part II Ravi Janardan Department of Computer Science & Engg. University of Minnesota, Twin Cities Research Collaborators: P. Castillo, P. Gupta, M. Hon, I. Ilinkin, Research Collaborators: P. Castillo, P. Gupta, M. Hon, I. Ilinkin, E. Johnson, J. Majhi, R. Sriram, M. Smid, and J. Schwerdt
Model Acquisition CAD Software CT Scans Laser Scanning 3D Photography Computer-Aided Process Planning File repair Model orientation Slicing Support creation Model Building via Layered Manufacturing LAN or Interne t LAN or Interne t Postprocessing Remove supports Improve finish Inspect model “3D printing” technology that creates physical prototypes of 3D solids from their digital models Used in the automotive, aerospace, medical industries, etc., to speed up the design cycle Rapid Physical Prototyping
Layered Manufacturing Builds 3D models as a stack of 2D layers Stereolithography
Geometric Considerations The choice of build direction affects quality and performance measures number of layers volume of supports contact-area of supports surface finish
Overview of Recent LM Research ( Geometric algorithms for o minimizing surface roughness o minimizing # of layers o protecting critical facets o minimizing support requirements and trapped area in 2D and trapped area in 2D Exact/approx. geometric algorithms for tool path planning (“polygon hatching”) Decomposition-based approach to LM Algorithms to approximate the optimal support requirements
Problem 1 Decomposition-Based Approach Decompose the model with a plane into a small number of pieces Build the pieces separately Glue the pieces back together
Polyhedral Decomposition Decompose a polyhedron P into K pieces with a plane H normal to a given direction d H -d P+P+P+P+ P-P-P-P- d Goal: Minimize volume of supports or contact area when the pieces are built in directions d and -d
Minimizing Contact-Area (CA) for Convex Polyhedra CA depends on height of H and orientation of facets e.g. back facet f (n f d < 0) e.g. back facet f (n f d < 0) CA f = area(f) nfnf d CA f = 0 nfnf -d CA f = ah 2 +bh+c nfnf d -d-d
Overall Algorithm sweep-based algorithm initialize (sort vertices, set CA term) initialize (sort vertices, set CA term) general step at vertex v (update CA term) general step at vertex v (update CA term) minimize new CA term minimize new CA term
Overall Algorithm (cont’d) General step details — update CA term sub: area(f) add: a 0 h 2 +b 0 h+c 0 sub: a 1 h 2 +b 1 h+c 1 sub: a 0 h 2 +b 0 h+c 0 add: a 1 h 2 +b 1 h+c 1 Run-time: O(n log n), space: O(n). Minimize Ah 2 + Bh + C
Experimental Results random points on a rotated “ice-cream” cone
Non-convex Polyhedra the structure of supports is more complex convexnon-convex
partition each front and each back facet into two classes of triangles: Black/Gray Triangles black tri. — always in contact with supports gray tri. — contact with supports depends on the position of H on the position of H
Computing Black/Gray Triangles Compute supports for undecomposed polyhedron using cylindrical decomposition
Overall Algorithm compute cylindrical decomposition apply convex algorithm on gray triangles Run-time: O(n 2 log n), space: O(n 2 )
Experimental Results (Volume)
Problem 2 Approximating the Optimal Support Requirements Identify heuristics for choosing candidate directions Identify heuristics for choosing candidate directions Design efficient algorithms to compute contact-area for chosen directions Design efficient algorithms to compute contact-area for chosen directions Develop a criterion to evaluate the quality of each heuristic, via easy-to-compute quantities Develop a criterion to evaluate the quality of each heuristic, via easy-to-compute quantities Given a polyhedral model, compute a build direction for which the support contact-area is close to the minimum (there is no model decomposition here). (there is no model decomposition here).
Preliminaries CA(d) — contact area for build direction d CA(d) = BFA(d) + FFA(d) + PFA(d) BFA(d) — back facet area for d BFA(d) — back facet area for d FFA(d) — front facet area for d FFA(d) — front facet area for d PFA(d) — parallel facet area for d PFA(d) — parallel facet area for d d d d
Evaluation Criterion d^ — build direction computed by heuristic d* — optimal build direction d’ — direction which minimizes BFA Obtain upper bound on CA(d^) CA(d*) R = CA(d*) BFA(d*)therefore CA(d^) BFA(d*) R BFA(d*) BFA(d’)therefore CA(d^) BFA(d’) R
Compute CA compute BFA, FFA and PFA for direction d compute FFA: heuristic d exact algorithm d
FFA Results
Minimize BFA Run-time: O(n 2 log n), space: O(n) space
Heuristics Min BFA — direction that minimizes the area of back facets Max PFA — direction that maximizes the area of parallel facets Max PFC — direction that maximizes the number of parallel facets PC — direction that corresponds to the principal components of the object Flat — direction that corresponds to a facet of the convex hull of the object
Experimental Results prism bot_caseoldbasexcarcassetop_case f0m27mjtod21 triad1ecc4pyramid
Experimental Results (cont’d) Columns shows upper bound on CA(d^) BFA(d’) R
Conclusions Efficient algorithms for decomposing polyhedral models Heuristics and evaluation criterion for approximating optimal build direction so as to minimize contact-area Applications to Layered Manufacturing Globally optimal decomposition direction Multi-way decomposition Approximating support volume Exact algorithms for support optimization Future Work
Acknowledgements STL models courtesy Stratasys, Inc. Research supported in part by NSF, NIST, Army HPC Center (U of Minn.), and DAAD (Germany) Papers at
Controlling Decomp. Size (K) Two-sweep algorithm up-sweep: #pieces for P - up-sweep: #pieces for P - dn-sweep: #pieces for P + dn-sweep: #pieces for P + Combine results of sweeps Use Union-Find data str. Partition the d-direction into intervals I j s.t. any plane in I j splits P into same number of pieces k j Optimize only within intervals where k j <= K