Introduction: 3D-printed Stackable Face Shields

This tutorial will go over how I designed the model and made specific changes to the slicing settings to successfully stack the shield frames. The model files, sliced project files, and gcode for this project can be downloaded on Thingiverse.

Step 1: 3D Modeling a Stackable Design

After looking at many possible designs for stacking, I decided to create a new model from scratch. I wanted the shield frames to have the necessary top covering that many other designs lacked while also having the ability to stack multiple frames in a single print. I also wanted to create a frame design that used less material than the popular Prusa RC3 face shield design that I was previously producing.

Some things that I considered to accomplish this task were:

  • The thickness of the bands should not be too large to make separating the frames difficult.
  • The size and shape of the top covering should allow the frames to neatly stack without contact.
  • The design should also eliminate or at least minimize the amount of extra support material needed when printing. For example, the hooks on the back of the bands that serve to hold the rubber band, are designed so that the top of each hook is in contact with the bottom of the next frame's hook. This completely eliminates the need for support material when stacking.

Here is the published 3D model that can be downloaded:

The model itself along with the other files can be downloaded on Thingiverse.

The fusion 360 file (.f3d) has parameters that can be modified for the stack_offset (the distance between the frames) and the levels_stacked (number of stacked frame levels). This file can then be exported as an STL and used in PrusaSlicer or any other slicer program to generate the print gcode.

This stackable design does require specific temperature and speed settings for proper layer adhesion between frames (as seen in the photo in Step 2), but I provided some version of the model files ready for printing on Thingiverse.

Step 2: 3D Model Slicing

The model slicer that I am using is PrusaSlicer, which is designed for Prusa's line of 3D printers but works well with most 3D printers out there. I had to make some manual adjustments to the print settings using the "Expert" mode settings in PrusaSlicer to get the desired result:

  • To reduce the printing time, I increased the layer height to 0.28 mm and increased all of the speed settings, which resulted in print times of about 1 hour per frame.
  • I also needed to slow down the first few layers of the stacked frames (the blue layers) in order to allow the "floating" layers above the gaps enough time to adhere properly without creating stringing issues (as seen in the side-by-side photo).

Check out the diagrams and photos for more information on slicing settings.

Step 3: Temperature Layer Settings

When significantly increasing the speed of prints, the extruder temperature should also be increased to ensure that the optimal volumetric flow (the rate of filament flow) is high enough to compensate for the increased speed. The extruder temperature need to be even higher to enable the "floating" layers of the stacked frames to adhere properly without stringing.

To change the temperature during the print for specific layers in PrusaSlicer, we need to add g-code modifiers to the settings. You can find the specific layers after slicing using the slider on the right panel. This is the basic format of the g-code modifiers:

{if layer_z == 10.33}M104 S260{endif};
{if layer_z == 12.29}M104 S240{endif}; {if layer_z == 20.97}M104 S260{endif}; {if layer_z == 22.93}M104 S240{endif}; {if layer_z == 31.33}M104 S260{endif}; {if layer_z == 33.29}M104 S240{endif}; {if layer_z == 41.97}M104 S260{endif}; {if layer_z == 43.93}M104 S240{endif}; {if layer_z == 52.61}M104 S260{endif}; {if layer_z == 54.57}M104 S240{endif};

Check out the screenshot diagrams for more information on the temperature settings.