geometric algorithms for layered manufacturing: part ii ravi janardan department of computer science...
Post on 19-Dec-2015
216 views
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
Research Collaborators:Research Collaborators: P. Castillo, P. Gupta, M. Hon, I. Ilinkin, P. Castillo, P. Gupta, M. Hon, I. Ilinkin,
E. Johnson, J. Majhi, R. Sriram, M. Smid, and J. SchwerdtE. Johnson, J. Majhi, R. Sriram, M. Smid, and J. Schwerdt
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
Problem 1
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 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 front and each back facet into two partition each front and each back facet into two classes of triangles:classes of triangles:
Black/Gray Triangles
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 Compute supports for undecomposed polyhedron Compute supports for undecomposed polyhedron
using using cylindrical decompositioncylindrical decomposition
Overall Algorithm
compute cylindrical decompositioncompute cylindrical decomposition
apply convex algorithm on gray trianglesapply convex algorithm on gray triangles
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
Problem 2
Approximating the Optimal Support Requirements
• 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
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).
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
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
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