geometric algorithms for layered manufacturing: part ii
Post on 09-Jan-2016
33 Views
Preview:
DESCRIPTION
TRANSCRIPT
Geometric Algorithms for Layered Manufacturing: Part II
Ravi JanardanRavi Janardan
Department of Computer Science & Engg.Department of Computer Science & Engg.University of Minnesota, Twin CitiesUniversity of Minnesota, Twin Cities
Model Acquisition•CAD Software•CT Scans•Laser Scanning•3D Photography
Computer-AidedProcess Planning•File repair•Model orientation•Slicing•Support creation
Model Building via
Layered Manufacturing
LAN orInternet
LAN orInternet
Postprocessing•Remove supports•Improve finish•Inspect model
““3D printing” technology that creates physical 3D printing” technology that creates physical prototypes of 3D solids from their digital modelsprototypes of 3D solids from their digital models
Used in the automotive, aerospace, medical Used in the automotive, aerospace, medical industries, etc., to speed up the design cycleindustries, etc., to speed up the design cycle
Rapid Physical Prototyping
Layered Manufacturing
Builds 3D models as a stack of 2D layersBuilds 3D models as a stack of 2D layers
StereolithographyStereolithography
Geometric Considerations The choice of build direction affects quality and The choice of build direction affects quality and
performance measuresperformance measures
number of layers volume of supports
contact-area of supports surface finish
Overview of Recent LM Research(http://www.cs.umn.edu/~janardan/layered)
Geometric algorithms for Geometric algorithms for o minimizing surface roughnessminimizing surface roughnesso minimizing # of layersminimizing # of layerso protecting critical facetsprotecting critical facetso minimizing support requirements minimizing support requirements
and trapped area in 2Dand trapped area in 2DExact/approx. geometric algorithms for tool path Exact/approx. geometric algorithms for tool path
planning (“polygon hatching”)planning (“polygon hatching”)
Decomposition-based approach to LMDecomposition-based approach to LM
Algorithms to approximate the optimal support Algorithms to approximate the optimal support requirementsrequirements
Sampling of Related Work
““Feasibility of design in stereolithography”, Asberg et alFeasibility of design in stereolithography”, Asberg et al ““Approximation algorithms for LM”, Agarwal, DesikanApproximation algorithms for LM”, Agarwal, Desikan ““Data front-end for LM”, Barequet, KaplanData front-end for LM”, Barequet, Kaplan Related work in injection-mold designRelated work in injection-mold design
““Plane-sweep slicer for LM”, McMains, SéquinPlane-sweep slicer for LM”, McMains, Séquin ““Preferred direction of build for RP processes”, Frank, FadelPreferred direction of build for RP processes”, Frank, Fadel ““Quantification of errors in RP”, Bablani, BagchiQuantification of errors in RP”, Bablani, Bagchi ““Determination of support structures in LM”, Allen, DuttaDetermination of support structures in LM”, Allen, Dutta ““Accurate slicing for LM”, Kulkarni, DuttaAccurate slicing for LM”, Kulkarni, Dutta ““Slicing procedures for LM techniques”, Dolenc, MäkeläSlicing procedures for LM techniques”, Dolenc, Mäkelä ““Double-sided LM”, McMainsDouble-sided LM”, McMains ““Voxel-based method for LM”, Chandru Voxel-based method for LM”, Chandru et al.et al. Etc...Etc...
Decomposition-Based Approach Decompose the model with a plane into a small Decompose the model with a plane into a small
number of piecesnumber of pieces
Build the pieces separatelyBuild the pieces separately
Glue the pieces back togetherGlue the pieces back together
Polyhedral Decomposition
Decompose a polyhedron Decompose a polyhedron PP into into k k pieces with a pieces with a plane plane HH normal to a normal to a givengiven direction direction dd
H
-d-d
PP++
PP--
dd
Goal: Minimize Goal: Minimize volume of supportsvolume of supports or or contact areacontact area when the pieces are built in directions when the pieces are built in directions d d and and -d-d
Minimizing Contact-Area (CA) for Convex Polyhedra
CA CA depends on height of depends on height of H H and orientation of facetsand orientation of facets• e.g. e.g. backback facet facet f f ((nnf f • • dd < < 0)0)
CACAff = area(f) = area(f)
nf
d
CACAff = 0 = 0
nf
-d
CACAff = ah = ah22+bh+c+bh+c
nf
d
-d
Overall Algorithm
sweep-based algorithmsweep-based algorithm
• initialize (sort vertices, set initialize (sort vertices, set CACA term) term)
• general step at vertex general step at vertex v v (update (update CACA term) term)
• minimize new minimize new CACA term term
Overall Algorithm (cont’d)
General step details — update General step details — update CACA term term
sub: sub: area(f)area(f)
add: add: aa00hh22+b+b00h+ch+c00
sub:sub: a a11hh22+b+b11h+ch+c11sub: sub: aa00hh22+b+b00h+ch+c00
add:add: a a11hh22+b+b11h+ch+c11
Run-time: Run-time: O(n log n)O(n log n), space:, space: O(n) O(n)..
Minimize Minimize AhAh22 + Bh + C + Bh + C
Experimental Results
random points on a sphere of radius 100random points on a sphere of radius 100
#verts decomp.contact-area
non-decomp.contact-area
hmin run-time(secs)
20,000 579 62,708 -.14 .640,000 424 62,833 .04 1.2
60,000 339 62,804 -.04 2.080,000 287 62,803 -.05 2.7
100,000 275 62,840 .02 3.5
Experimental Results
random points on a rotated random points on a rotated “ice- “ice-cream” conecream” cone
#verts angle decomp.contact-area
non-decomp.contact-area
hmin run-time(secs.)
20,001 37 11,705 57,112 2.3 .640,001 75 3,974 52,006 .7 1.360,001 112 5,316 55,068 -.5 2.080,001 150 10,109 51,826 -1.5 2.8
100,001 187 3,448 59,820 -3.6 3.6
Non-convex Polyhedra
the structure of supports is more complexthe structure of supports is more complex
convexconvex non-convexnon-convex
partition each facet into two classes of triangles:partition each facet into two classes of triangles:
Volume Minimization
blackblack tri. — always in contact with supports tri. — always in contact with supports
graygray tri. — contact with supports depends tri. — contact with supports depends on the position of Hon the position of H
Computing Black/Gray Triangles
Use Use cylindrical decompositioncylindrical decomposition
Overall Algorithm
compute cylindrical decompositioncompute cylindrical decomposition
apply convex support-volume algorithm on gray apply convex support-volume algorithm on gray trianglestriangles
Run-time: O(nRun-time: O(n22 log n), space: O(n log n), space: O(n22))
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
Controlling Decomp. Size (K )
Two-sweep algorithmTwo-sweep algorithm• up-sweep: #pieces for up-sweep: #pieces for PP--
• dn-sweep: #pieces for dn-sweep: #pieces for PP++
Combine results of sweepsCombine results of sweeps
Use Union-Find data str.Use Union-Find data str.
Partition the d-direction into intervals Partition the d-direction into intervals IIjj s.t. any s.t. any plane in plane in IIjj splits P into same number of pieces splits P into same number of pieces kkjj
Optimize only within intervals whereOptimize only within intervals where k kjj [[ KK
Approximating the Optimal Support Requirements
Given a polyhedral model, compute a build direction for Given a polyhedral model, compute a build direction for which the which the support contact-areasupport contact-area is close to the minimum is close to the minimum
(there is no model decomposition here).(there is no model decomposition here).
• Identify heuristics for choosing candidate directionsIdentify heuristics for choosing candidate directions• Design efficient algorithms to compute contact-area Design efficient algorithms to compute contact-area
for chosen directionsfor chosen directions• Develop a criterion to evaluate the quality of each Develop a criterion to evaluate the quality of each
heuristic, via easy-to-compute quantitiesheuristic, via easy-to-compute quantities
Preliminaries
CA(CA(dd) ) —— contact area for build direction contact area for build direction dd
CA(CA(dd) = BFA() = BFA(dd) + FFA() + FFA(dd) + PFA() + PFA(dd))
• BFA(BFA(dd) ) —— back facet area for back facet area for dd
• FFA(FFA(dd) ) —— front facet area for front facet area for dd
• PFA(PFA(dd) ) —— parallel facet area for parallel facet area for dd
dd
dd
dd
Evaluation Criterion
dd^ ^ —— build direction computed by heuristic build direction computed by heuristic
dd* * —— optimal build direction optimal build direction
dd’ ’ — — direction which minimizes BFAdirection which minimizes BFA
Obtain upper bound onObtain upper bound onCA(CA(dd^)^)
CA(CA(dd*)*)R =R =
CA(CA(dd*) *) BFA( BFA(dd*)*) thereforethereforeCA(CA(dd^)^)
BFA(BFA(dd*)*)R R
BFA(BFA(dd*) *) BFA( BFA(dd’)’)thereforetherefore
CA(CA(dd^)^)
BFA(BFA(dd’)’)R R
Compute CA
compute BFA, FFA and PFA for direction compute BFA, FFA and PFA for direction dd
compute FFA:compute FFA:
heuristicheuristic
d
exact algorithmexact algorithm
d
FFA Results
model algo FFA secs d = 10 13646.9 82 = 1% 13678.1 1
bot_case (2,000 )
exact 13642.3 4693 d = 10 58.44 66 = 1% 57.06 1
carcasse (2,000)
exact 60.20 3505
d = 10 1.68 60 = 1% 1.65 1
mj (2,000)
exact 1.68 3540
d = 10 1.87 23 = 1% 1.93 1
tod21 (1,128)
exact 1.85 427 d = 10 0.33 68 = 1% 0.32 1
triad (2,000)
exact 0.33 3888
Minimize BFA
Run-time: O(nRun-time: O(n22 log n), space: O(n) space log n), space: O(n) space
Heuristics
Min BFAMin BFA —— direction that minimizes the area of direction that minimizes the area of back facetsback facets
Max PFAMax PFA —— direction that maximizes the area of direction that maximizes the area of parallel facetsparallel facets
Max PFCMax PFC —— direction that maximizes the number direction that maximizes the number of parallel facetsof parallel facets
PCPC —— direction that corresponds to the principal direction that corresponds to the principal components of the objectcomponents of the object
Flat Flat —— direction that corresponds to a facet of the direction that corresponds to a facet of the convex hull of the objectconvex hull of the object
Experimental Results
prismprism
bot_casebot_caseoldbasexoldbasexcarcassecarcassetop_casetop_case
38574383857438f0m27f0m27 mjmjtod21tod21
triad1triad1ecc4ecc4pyramidpyramid
Experimental Results (cont’d)
model 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
Columns shows upper bound onColumns shows upper bound onCA(CA(dd^)^)
BFA(BFA(dd’)’)R R
Conclusions Efficient algorithms for decomposing polyhedral modelsEfficient algorithms for decomposing polyhedral models
Heuristics and evaluation criterion for approximating Heuristics and evaluation criterion for approximating optimal build direction so as to minimize contact-areaoptimal build direction so as to minimize contact-area
Applications to Layered ManufacturingApplications to Layered Manufacturing
Globally optimal decomposition directionGlobally optimal decomposition direction
Multi-way decompositionMulti-way decomposition
Approximating support volumeApproximating support volume
Exact algorithms for support optimizationExact algorithms for support optimization
Future Work
Acknowledgements
Research Collaborators:Research Collaborators: P. Castillo, P. Gupta, M. Hon, P. Castillo, P. Gupta, M. Hon, I. Ilinkin, E. Johnson, J. Majhi, R. Sriram, M. Smid, and J. I. Ilinkin, E. Johnson, J. Majhi, R. Sriram, M. Smid, and J. SchwerdtSchwerdt
STL models courtesy Stratasys, Inc.STL models courtesy Stratasys, Inc.
Research supported in part by NSF, NIST, Army HPC Research supported in part by NSF, NIST, Army HPC Center (U of Minn.), and DAAD (Germany)Center (U of Minn.), and DAAD (Germany)
Papers at Papers at http://www.cs.umn.edu/~janardan/layeredhttp://www.cs.umn.edu/~janardan/layered
top related