During the COVID-19 lockdown, I printed respirators and face shields for healthcare workers in need (which you can learn more about here: 3D Printing PPE to Battle COVID-19). I worked to increase the production of 3D printed respirators by writing a program to make my 3D printer automatically remove the mask when finished, then start the next one, and repeat.

How it works

The program takes an object's g-code and duplicates it a certain number of times (determined by the user). In between each iteration of the object, the program adds a section of g-code which directs the printer to certain positions to knock the object off the build plate. It then writes the new g-code to a new .gcode file.

I initially wrote the program in Python, because it was unfamiliar at the time, but then I later converted it to Java and organized the code better. Here is the GitHub.


With this setup, I can leave my printer to continuously produce masks and face shields without any need for human intervention (until the filament runs out). This means significantly more of them can be made


The idea of automating 3D printing like this is quite useful and unique, and blurs the line between rapid prototyping and the mass production of parts, as it can be done with the same machine and no hardware modifications.

I could imagine a startup using this technique to manufacture a lot of parts before having the funding for a longer-term solution.


For some other prints, it worked to have the gantry simply push the print off, but this respirator was stuck too well to the build plate for that to be possible. Instead, I developed a way for the printer to interlock the gantry with the nose piece and then effectively pry it off the build plate.

This concept was inspired by Make Anything's YouTube video, but that method required copying and pasting the g-code by hand, while this program automates that process.

printer removing a lithophane

printer removing a lithophane


<aside> <img src="/icons/home_blue.svg" alt="/icons/home_blue.svg" width="40px" /> Home


<aside> <img src="/icons/document_green.svg" alt="/icons/document_green.svg" width="40px" /> Resume


© Jesse Gilbert 2024

Powered by Fruition