The majority of slicer programs have a default infill setting somewhere between 18% and 20%. For many designs and objects, this default density is perfectly acceptable. However, when it comes to infill percentage, there is no hard and fast rule that fits all scenarios.

An 18% to 20% infill percentage may work fine for a prototype object where strength takes a backseat to form or shape. However, that same infill percentage will be completely inadequate for an object that has been designed to hold weight, like a bracket.

In general, the strength of an FDM object is directly tied to the infill percentage used during printing. For example, a part utilising 50% infill is approximately 25% stronger than a part that utilises 25% infill.

However, the amount of strength gained by increasing infill percentage does not increase linearly. For example, increasing infill percentage from 50% to 75% only results in an additional strength increase of 10%.

Bottom line in my experience, shells are stronger than infill. The most common problem is that at some point, many mechanical objects have small holes often near an edge or a thinner section between 2 outer walls. As you increase shell count, then too many results in a gap, and because that gap was assigned to shell area, the infill plugin that runs after shells does not fill in the gap (that area is off limits and assumed filled by the shell). This results in a weak point in the model, vs the strength you assumed shells added.

So, again, for best strength, increase shells VS using anything higher than say 30-40% infill, but always check your preview and reduce the number of shells when you get gaps and failures from too many shells. Very old topic, and yet still valid 100% in 2018 https://www.makerbot.com/stories/engine ... ge-shells/Even though a different slicer, every single slicer I've used to date still follows the same problem, if a space is assigned to shells, it attempts to fill with shells. When that fails and there is a gap, infill does not go back in and create gcode to fill in this space- because it was assigned to be shells.