Jun 3, 2015

Speed up 3DPrinting - Shell Thickness "Trick"

The multi-compartment box
as seen in Autodesk 123D
In creating a fairly simple 3D Model of a multi-compartment box, I discovered a super simple way to decrease my print time - in this specific case by 62%! This simple model that was taking 68 minutes to print took just 26 minutes, thanks to changing one not-so obvious setting in a way which really is just tricking the software into doing what I expected in the first place.
[update: if you want more info on this particular model - a Button Battery Box - see my newer post on that]

Background

The "SHELL THICKNESS" setting in slicing software is used to define how many side-by-side solid lines of plastic will be used to line the walls of your model. With thin wall models - like a small box - the wall of the model, the Shell,  defines how strong the box will be. So it is quite important. That setting also MUST be a multiplier of your printer's nozzle width. (according to in-app tips, help content and lore, which I now know is misleading).

The expectation:

the box in CURA Layer view -
notice the hollow walls.
If I create a 3D model with wall thickness that is equal to the width of my 3D Printer's nozzle - and set the "shell thickness" to that number - it should print with one "run" (one strand of extruded plastic, one motion in the path of my object shape). In my case, my nozzle width is 0.35mm - so a shape with a thickness of 0.35mm should only take one straight run - and that should be efficient. Now CURA, like most good slicing apps, let's me define my "SHELL THICKNESS" - and suggests (but doesn't force) that I make this a multiplier of my nozzle width - since my printer can't very well constrain the width to less than that.

The same should be true with thicker wall, which of course will be multipliers of my nozzle width. If I have a part which is exactly two times (2X) my nozzle width, it should take two "runs". Same with a 3X setting - as long as I make my Shell Thickness the correct value. So, I thought I would be smart about creating this model - and make my walls 1.05mm in width to get both efficient printing and strong walls. Three runs with my 0.35mm nozzle, and no inefficient "fill" (which has a tendency to be done with tiny back-n-forth x/y strokes) - right?
Wrong.

The Discovery

The printed box with cover
CURA apparently is not happy when the "Shell Thickness" setting is precisely the same value as the actual model thickness. It seems to interpret that as something that will require fill. But, CURA can be influenced to print more efficiently with slight changes to the "Shell Thickness" setting to break this rule. I hesitate to call this a CURA bug - but I do think this is a simple computer math issue that comes up often in things as simple as spreadsheets, which has to do with imperfect rounding (or unexpected at least).

CURA was doing something strange with my box model - with walls equal to 3X my nozzle width. It would either not make solid walls - or it would use my "FILL DENSITY" setting to inefficiently fill the tiny space between the outer and inner walls of the box. No matter what I did, the model would either not print solid walls (fill density of zero) or would take 68 minutes to finish due to the crazy movements of my print head to fill a space which hardly existed.

The Experiment

I created a simpler square box - just one compartment - 20mm square - with walls which were exactly the thickness of my nozzle width - 0.35mm.
The 20mm simple box showed a 33% estimated improvement in print time
I loaded that into CURA and set "Shell Thickness" to 0.35mm. What I got was NO WALLS (and an estimated print time of 1 minute, since it would have only printed the bottom without walls). CURA apparently did not think it could fit one run of 0.35mm of plastic out of my nozzle into a 0.35mm wall in my model! I experimented by changing the "Shell Thickness" to 0.34mm - and Voila! The walls appeared again.

I tried the same box experiment with a 1.05mm wall width and Shell Thickness setting, and CURA would happily print the walls, but it would not fill the middle space - unless I used fill density (any value actually). But again, when I changed the Shell Thickness setting down by one-hundredth of a millimeter (0.01mm) to 1.04mm, Viola - it printed the walls with 3 straight-line runs, as I wanted in the first place. As you can see from the two screen shots, even this simple model had a reduction in estimated print time of 33% (from 15 minutes to 10 minutes).

The Solution

I then took my existing 1.05mm wall, multi-compartment box and changed that setting to 1.04mm "Shell Thickness" (leaving "Fill Density" at ZERO) - and BAM! The walls showed as solid - 3 runs of plastic. MOST IMPORTANTLY, with this one tiny change - hundredth of a millimeter on one parameter - the time to print on my box model went from 68 minutes to 26 minutes - a 62% reduction in time!

Summary Data: 

Walls of box:  1.05mm
Shell Thickness setting:  1.05mm
ACTUAL Print time:  68 minutes

Walls of box:  1.05mm
Shell Thickness setting:  1.04mm
ACTUAL Print time:  26 minutes

3 comments:

  1. Nice! The description of concepts is solid and the experiment is a good idea. I look forward to sharing this.

    ReplyDelete
  2. I just went through the exact same thing, so confusing! I thought my 2mm walls would print smooth and solid with a .4mm nozzle, but there was tons of horrible zig-zagging (I hate listening to that, and it makes me feel like I'm straining the poor little motors).

    Did you ever figure out why this works the way it does? Or what the best nozzle to wall thickness ratio is?

    ReplyDelete
  3. I just went through the exact same thing, so confusing! I thought my 2mm walls would print smooth and solid with a .4mm nozzle, but there was tons of horrible zig-zagging (I hate listening to that, and it makes me feel like I'm straining the poor little motors).

    Did you ever figure out why this works the way it does? Or what the best nozzle to wall thickness ratio is?

    ReplyDelete