to 3d print an object you have to slice itinto a stack of 2d layers. if your slices are thick, it prints fast,but the individual layers are obvious. if you slice thin layers, the part looks nicer,but it takes longer to print. what if you could have the best both in thesame print? hi steve here from autodesk.
3d printing software open source, we wrote an algorithm that automatically slicesstl files at variable layer heights to optimize for both print speed and print resolution. we like to call it varislice. for a shape with a certain slope—say 45â°â€”anda printer with a certain xy resolution—
for the ember that’s 50 microns—thereis an optimum layer thickness. if your layers are too thick you aren’tgetting the best xy resolution that you can. if your layers are too thin, you’re printingextra layers that are not helping. so that’s how we would determine the optimumlayer thickness for a cone, a pyramid or triangular prism. but what about a shape with sections thateach have a different slope? this dome has 4 different slopes. if we slice it at 100 microns, the more verticalsection is sliced at the optimum resolution. but the shallower slopes are not well approximated.
at 50 microns slices, this middle sectionis sliced optimally, but the bottom has more slices than necessary, and the upper regionsdon’t have enough. the dome sliced at 25 microns has the sameproblem. and 10 micron slices are great at the top,but are overkill for the lower sections. so to optimize, we take a range from eachand combine them into a print with four different layer thickness in it. looking down from the top, you can see thatthe edges of each layer moves in 50 microns from the layer beneath it. what if the shape has a continuously changingslope?
like a dome or a disk? same basic principle. thicker slices are ok at the bottom, thinnerslices are great at the top. because the slope is not discrete we wantour layers to have a gradual change in thickness. here we’ve got layers ranging from 100 to10 microns in steps of 5 microns. so, it goes 100, 95, 90, all the way till20, 15 and 10 microns. here’s a disk printed with variable layers. here it is compared to a disk printed at constant100 micron slices. at the base, both prints are the same, butat the top, the variable slicing looks much
better. now let’s compare it to constant 10 micronslices. at the top they both look the same. at the base, the 10 âµm slices are definitelysmoother, but that section also takes 10 times as long. here’s a simple dumbbell shape and how itlooks sliced with variable layers. the vertical regions have 100 micron layers,the straight slopes are at 25 microns. the curved regions have a smooth gradientin layer thicknesses. here’s that shape printed with variablelayers, constant 100 micron layers, and constant
10 micron slices. and here’s the variable layer print closeup. compare that to 100 micron layers—there’sa big difference. now compare it to 10 micron slices. the variable layer slices look almost as good—andit prints much faster. here’s a more real-world example. this bolt has a head and un-threaded shaftthat don’t require high tolerance so 100 micron layers work great. for the threads, we want higher resolution,so 25 micron layers are good here.
this spur gear with a collar is mostly anextrusion—so it’s a good candidate for thicker layers, but there are subtle filletsand chamfers. also, it uses thinner layers to keep fidelityin the threaded hole for a set screw. variable layer slicing will result in mostlythicker layers with thinner layers to capture the finer details. so how much time does variable layer slicingsave compared to constant layer thicknesses? it completely depends on your geometry! on one extreme if your object has a long shaftcapped with a dome you’ll approach a factor of 10 times time saved—or the ratio of yourthickest layer to thinnest layer.
on the other extreme, a short and wide pyramid,wouldn’t save you any time at all. various shapes will be somewhere in between. a dome printed with variable layers rangingfrom only 25 to 10 microns closely approaches the best it can do: about two and a half timesfaster. so how does varislice actually work? here’s an stl, which is a collection oftriangles in 3d space. we start at the bottom of the 3d model, andwe have a window of interest along the z-axis. the bottom of the window is our current z-level. the top of the window is the z-level plusthe thickest layer thickness—for us it’s
100 microns. we select all of the triangles that overlapfully or partially with the window. in this case we’ve got 8 triangles, 4 have90 degree slopes and 4 have 63.4 degree slopes. we look at just the smallest slope. and we ask “is a 100 micron layer goodenough?†which is the same thing as setting up thisright triangle and solving for the stepover. then asking is the stepover less than or equalto our xy resolution? â which it is—so we say, “yes, 100 microns is good enough. let’s build the first layerâ€.
we record the first layer thickness as 100microns, and move our current z-level up and the window with it. and the we repeat this step. now there are 22 triangles in this window. 10 of them have 90 degree slopes, 4 are 45degrees, four are 26.6 degrees and 4 are 11.3 degrees. so we look at the smallest slope, do the math,but nope! 100 microns will not cut it. now we can quickly figure out that 10 micronslayers are needed for 11.3 degree slopes.
but instead of jumping right to it, let’stake an iterative approach. we’ll step our window down from 100 to 95microns. same result, not good enough. so step down to 90, still no good, 85 nope,80 nope. but look what happens when the window is 75microns tall. the topmost triangles are no longer insidethe window and now the smallest slope is 26.6 degrees, so that’s what we’ll test. it’s still not good enough, so we keep steppingdown the window height. we get to 50 microns and the smallest slopeis 45 degrees which finally satisfies our
condition. so we build up the second layer, move up andrepeat. so again we start back at 100 microns anditeratively step down until we get a thickness that works, here 25 microns, so we build it,move up. repeat. start from 100 all the way down to 10. build that layer and move up. look, we started from the bottom and now we’rehere. at the very top there are zero triangles inour window.
this tells us that we must be at the end ofthe model. we’re done! that’s the basics of how varislice works. now variable layer slicing has been done before. this 2014 white paper describes an adaptiveslicing scheme, which they cleverly coined “adapsliceâ€. and this master’s thesis from 1996, describesa method of creating thick internal layers for increasing the print speed and thin externallayers for maintaining surface fidelity. also it’s important not to confuse it withfarming equipment.
“vari-slice for use in eitherworked or no till conditions, is ideal anywhere a tight germination of grass seed is needed.†so if you want to use varislice, here’swhat you gotta do. first, create a model in fusion 360—whichis free for students. import the stl into meshmixer, which is free,slice it in print studio, which is also free. next use the processing script we wrote, whichis open and free, then send it to an ember printer, which is open. if you don’t have an ember printer, that’sok! the processing script outputs a csv tablewhich you can adapt for your own 3d printer.
check out the details in the instructablelinked in the description.
so, thanks for watching and subscribe to seeour latest research in making software for additive manufacturing. have a wonderful day. [cool sound effects]