If you’ve used a desktop 3D printer, you’re likely familiar with the concept of layer heights. Put simply: thicker layers will print faster, and thinner layers will produce better detail. Selecting your layer height is making a choice between detail and speed, which usually works well enough. For example, prints which are structural and don’t have much surface detail can be done in higher layer heights to maximize speed with no real downside. Conversely, if you’ve got a model with a lot of detail you’ll have to just deal with the increased print time of thinner layers.
At least, that’s how it’s been up till now. Modern slicer software is starting to test the waters of adaptive layer heights, which change the layer height during the print. So the software will raise or lower the layer height depending on the level of detail required for the current area being printed. [Dylan Radcliffe] wanted to experiment with this feature on his Monoprice Select Mini, but it took some tweaking and the dreaded mathematics to get Cura’s adaptive layer height working on the entry-level printer. He’s documented his settings for anyone who wants to check out this next-generation 3D printing technology without forking out the cash for a top of the line machine.
While Cura is a popular slicer, the fact of the matter is that it’s developed by Ultimaker primarily for their own line of high-end printers. It will control machines from other manufacturers, but it makes no promises that all the features in the software will actually work as expected on lesser printers. In the case of the Monoprice Mini, the issue is the rather unusual Z hardware. The printer uses a 7.5° 48-step motor coupled to 0.7 mm thread pitch M4 rod. This is a pretty suspect arrangement that was no doubt selected to keep costs down, and results in an unusual 0.04375 mm step increment. For the best possible print quality, layer heights should be a multiple of this number. That’s where the math comes in.
After enabling adaptive layers in Cura’s experimental settings, you need to define the value which Cura will add or subtract to the base layer height. In theory you could enter 0.04375 mm here, but while that’s the minimum on paper, the machine itself is unlikely to be able to pull off such a small variation. [Dylan] recommends doubling that to 0.0875 for the “variation step size” parameter, and setting the base layer height to 0.175 mm (4 x 0.04375 mm).
[Dylan] reports these settings reduced the print time on his topographical map pieces from 12 hours to 7 hours, while still maintaining high detail on the top surface. Of course print time reduction is going to be highly dependent on the model being printed, so your mileage may vary.
If Cura isn’t your style, our very own [Brian Benchoff] gave us a tour of “variable layer height”, the Slic3r version of this technique. Perfect for that Prusa i3 MK3 you finally spent the cash on.
This is awesome. It should, in principle, work for any printer as they just follow GCODE produced by the slicer and there is nothing magical about it :)
Simplify3D has had this feature for ages, admittedly you need to set up the layer heights but it works really well. It is also a really handy feature to recover from a failed print. Even better you can adjust the infill and wall thickness for each layer so as to increase the strength of the part. It would be nice to some day be able to adjust the infill of a layer based on zones so if you had say an arm that was quite thin you could give it a really fine infill and the body part of the layer could have a larger infill.
And at some stage it wold be nice to have the ability to add/print a support at an angle or between two surfaces but then that having Meshmixer allows you to create tree supports with ease and save on a crap ton of material.
Are there any cons to leaving this enabled all the time?
I’m a bit confused it took so many years to come up with something so obvious, but on the other hand I have never worked with a 3D printer beyond handing over STL files to someone who owns one.
It sounds more useful to do just the outer edge in 2 or 3 thin passes, while doing all infill with the normal tick layer height, instead of varying the thickness of the whole layer.
Typically you run your outer facing walls at a much slower speed to preserve quality. So you wouldn’t see the speed improvement like you would with adaptive layer heights.
Kisslicer has an option to do this. It’s called stacked layers. Although, I do believe it is a PRO feature.
I just set my layer height to .20 and adaptive layers to 0.16, so Cura slices to between 0.04 & 0.36; the outside limits. I adjust the others depending on if I want smooth or sudden layer height changes. I’ve outright stopped using set layer heights, as it doesn’t offer any real advantage. If I specifically want more detail or more speed, I adjust the layer height accordingly while lessening the spread. (e.g. 0.26 & 0.10 = 0.16-0.36)
If the layer height while printing was off by 0.05 mm .. would you be able to notice it? …
Why do people use magic layer numbers…
If the Z stepper motor was off by 4 steps… the z axis error would be 0.05 mm…
error_mm = (((4 steps * 7 degrees) / 360 degrees) * 0.7 mm)