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, E. Johnson, J. Majhi, R. Sriram, M. Smid, and J. Schwerdt Rapid Physical Prototyping “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 Model Acquisition •CAD Software •CT Scans •Laser Scanning •3D Photography Computer-Aided Process Planning •File repair •Model orientation •Slicing •Support creation LAN or Interne t Model Building via Layered Manufacturing Postprocessing •Remove supports •Improve finish •Inspect model 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 contact-area of supports volume of supports surface finish Overview of Recent LM Research (http://www.cs.umn.edu/~janardan/layered) Geometric algorithms for o minimizing surface roughness o minimizing # of layers o protecting critical facets o minimizing support requirements 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 d P+ -d P- H 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 (nf • d < 0) d d nf nf nf -d -d CAf = area(f) CAf = ah2+bh+c CAf = 0 Overall Algorithm sweep-based algorithm • initialize (sort vertices, set CA term) • general step at vertex v (update CA term) • minimize new CA term Overall Algorithm (cont’d) General step details — update CA term sub: area(f) add: a0h2+b0h+c0 sub: a0h2+b0h+c0 sub: a1h2+b1h+c1 add: a1h2+b1h+c1 Minimize Ah2 + Bh + C Run-time: O(n log n), space: O(n). Experimental Results random points on a rotated “ice-cream” cone #verts angle 20,001 40,001 60,001 80,001 100,001 37 75 112 150 187 decomp. non-decomp. hmin run-time contact-area contact-area (secs.) 11,705 57,112 2.3 .6 3,974 52,006 .7 1.3 5,316 55,068 -.5 2.0 10,109 51,826 -1.5 2.8 3,448 59,820 -3.6 3.6 Non-convex Polyhedra the structure of supports is more complex convex non-convex Black/Gray Triangles partition each front and each back facet into two classes of triangles: black tri. — always in contact with supports gray tri. — contact with supports depends 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(n2 log n), space: O(n2) Experimental Results (Volume) model decomp. non-decomp. hmin (secs) speedo (2,500) .9 5.1 1.9 15,730 engine2 (4,180) 174.9 251.6 1.3 41,156 0-2190 (3,492) .1 .7 0 16,661 mj (2,832) 1.7 8.1 2.1 13,911 r59043b (3,386) .8 3.0 .4 20,833 cc (112) 823,210 823,210 1.0 4.7 Problem 2 Approximating the Optimal Support Requirements 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). • Identify heuristics for choosing candidate 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 Preliminaries CA(d) — contact area for build direction d CA(d) = BFA(d) + FFA(d) + PFA(d) • BFA(d) — back facet area for d • FFA(d) — front facet area for d • PFA(d) — parallel facet area for d d d d Evaluation Criterion Obtain upper bound on R= CA(d^) CA(d*) d^ — build direction computed by heuristic d* — optimal build direction d’ — direction which minimizes BFA CA(d*) BFA(d*) BFA(d*) BFA(d’) therefore therefore R R CA(d^) BFA(d*) CA(d^) BFA(d’) Compute CA compute BFA, FFA and PFA for direction d compute FFA: d exact algorithm d heuristic FFA Results model bot_case (2,000 ) algo d = 10 = 1% FFA 13646.9 13678.1 secs 82 1 carcasse (2,000) exact d = 10 = 1% 13642.3 58.44 57.06 4693 66 1 exact 60.20 3505 d = 10 1.68 60 = 1% 1.65 1 exact d = 10 1.68 1.87 3540 23 = 1% 1.93 1 exact d = 10 1.85 0.33 427 68 = 1% 0.32 1 exact 0.33 3888 mj (2,000) tod21 (1,128) triad (2,000) Minimize BFA Run-time: O(n2 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 tod21 top_case pyramid f0m27 carcasse ecc4 triad1 mj oldbasex 3857438 bot_case Experimental Results (cont’d) Columns shows upper bound on model R CA(d^) BFA(d’) BFA PFA PFC PC Flat Random % prism 1.00 1.00 16.94 1.00 20.25 25.50 96 pyramid 1.00 1.00 24.00 1.00 24.00 28.53 85 ecc4 1.18 1.18 1.37 1.92 1.80 2.65 55 triad1 1.87 2.13 2.13 1.43 1.43 1.74 18 tod21 1.05 1.05 3.87 3.81 1.05 4.31 76 f0m27 2.40 2.33 2.33 2.39 3.26 2.69 13 mj 2.18 2.39 2.39 2.56 2.39 3.00 27 3857438 2.63 2.54 2.54 2.41 2.32 2.55 9 top_case 3.14 3.14 3.07 2.14 1.97 2.50 21 carcasse 3.77 3.47 4.19 4.38 3.47 4.89 29 oldbasex 3.33 1.72 12.40 8.16 12.40 10.37 83 bot_case 2.11 2.11 2.11 1.54 1.29 1.95 34 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 Future Work Globally optimal decomposition direction Multi-way decomposition Approximating support volume Exact algorithms for support optimization Acknowledgements STL models courtesy Stratasys, Inc. Research supported in part by NSF, NIST, Army HPC Center (U of Minn.), and DAAD (Germany) Papers at http://www.cs.umn.edu/~janardan/layered Controlling Decomp. Size (K ) Partition the d-direction into intervals Ij s.t. any plane in Ij splits P into same number of pieces kj Optimize only within intervals where kj <= K Two-sweep algorithm • up-sweep: #pieces for P• dn-sweep: #pieces for P+ Combine results of sweeps Use Union-Find data str.