I recently saw this on Amazon and figured I could print that. I’ve also been wondering about embedding an object into the middle of a 3D print, so I figured this would be a good project. So I bought these blades, and measured them, and started working in Fusion 360. In hindsight, I think that some jigsaw blades would have been easier when modeling since there aren’t any weird angles to deal with. Either way, it wasn’t too difficult.

Here’s a link to the Thingiverse with the STL.

After I got the model, I loaded into Cura, and set course to figure out how to get the print to pause. And the way to do is to use the post-processing scripts. Here are the steps I took for Cura:

  1. Slice the model, and then go to the Preview view. Move the slider on the right up and down, and find the layer that would print right after the saw blade would be laid down. Note down this layer for both blades. For me, this was layer 41 and 53, but I’m using a .24 layer height (.32 initial layer height, which I think cause an issue for me that I will talk about later).
  2. Click Extensions > Post-Processing > Modify GCode > Pause at height. Change Pause At to ‘Layer Number’.
  3. This extension is supposed to add a pause at the beginning of the layer you specify. However, for me the layers in the GCode didn’t completely match up for me. When I put layer 41 in there, it didn’t stop until the beginning of layer 42 in the Preview. But looking at the GCode, the comment said it was right before layer 41. I suspect that this is because of my first layer height being different. Either way, I recommend having it pause a layer or 2 before that layer, and just watch it for a few minutes and embed the blades in there either while it’s printing or by manually pausing. I think a GCode viewer that shows the preview along with the associated GCode at the same time would be fairly useful here.
  4. Do steps 2 and 3 for the next pause.
  5. Because I’m using Klipper, I added a PAUSE command in the G-Code before pause field. This tells the firmware to Pause. I’m note 100% sure I needed this, but it won’t hurt if you are running Klipper. If you are running Klipper, there are some things I had to do to make sure everything worked right. I think that you don’t need anything else for Marlin.

And that’s it. This is most commonly used to put magnets into prints, but as you can see, sharp objects work as well.


I added the following code to my Klipper config to ensure that it doesn’t timeout. Without this, Octoprint(Or whatever you are using) will pause, but the printer itself will eventually timeout waiting for a command. This makes sure that timeout doesn’t happen.


  {% if printer.pause_resume.is_paused %}
  M117 IDLE
  {% else %}
 {% endif %}
timeout: 100000

I also added a PAUSE and RESUME commands respectively to the Octoprint GCode scripts for “after a print job is paused” and “before a print job is resume”. Again, not sure these commands are needed or not, but they don’t hurt.

Final 3D Print


Leave a Reply