PuzzleCut OpenSCAD Library

by nothinglabs, published

PuzzleCut OpenSCAD Library by nothinglabs Nov 26, 2012
0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

29762Views 5941Downloads


Simple OpenSCAD library that cuts objects into interlocking pieces.


IMPORTANT NOTE: Puzzlecut only works correctly when RENDERING (by pressing F6)! Previewing your object (by pressing F5) will not produce usable results!

This OpenSCAD library lets you easily cut objects into interlocking pieces for 3d printing or laser cutting.

Useful for printing objects larger than your printer can handle - or breaking a big job into smaller pieces - so failing doesn't suck as bad.

Place puzzle cuts anywhere you like along the X and/or Y axis.

If you want to change the location of the main cut lines - translate / rotate your object beforehand.

The size of the puzzle cuts can easily be adjusted. You can also adjust "kerf" for a tighter or looser fit.

See included puzzlecutdemo2 file for example of how to import an existing .STL.

Get OpenSCAD here: http://www.openscad.org

Demo object: "Bucket O' Octopodes (thicker legs)" - http://www.thingiverse.com/thing:8896

Tutorial video by andrewupandabout: http://youtu.be/RbTqeFuRrLQ

TIP: A kerf of -0.3 is a good starting point if your looking for snug fitting 3d printed parts (thanks toof!).

NOTE: Complex objects may result in "normalized tree" errors / rendering problems. These can be worked around by doing a full render (just hit F6).


PuzzleCut now supports multiple cut lines per axis! See multicutdemo.scad for an example. This update also changes the cut location variable names (see demo files).

Updated puzzlecutdemo2.scad with some larger cuts and reasonable default kerf. Should now make a good test print without any changes.

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

This was made in 2012?!?!?!? Absolutely amazing.

This looks like an awesome lib. I'm new at OpenSCAD; can anyone point to how I would print a single piece cut with PuzzleCut?
I've cut a big piece into 4 parts with PuzzleCut and rendered and exported the whole lot into STL so I can print them one by one in a small 3d printer, but I couldn't find a way to select only one of the four pieces in Cura, OpenSCAD, FreeCAD, or Repetier host. Any hints would be really appreciated!

If you're using Simplify 3d for the record, it's mesh -> Seperate connected surfaces.

I've managed to select individual pieces in 3d builder, a program bundled with Win 10. Load -> Ungroup -> delete all pieces except one and save ; repeat ultil you get individual files for all the pieces.

Comments deleted.

I really really wanted it to work, but it didn't. The files in the video do not match the ones downloaded. I never fully figured out how to get it to import the file. I do openscad programs alot, but in fairness I was trying to cut a wheel in to fourths, I will try again later to see if I can get it to produce a file, perhaps I simply missed something.

I finally got around to troubleshooting this a bit. It seems like at some point changes to OpenSCAD caused the script stop working in "Preview" mode (F5) - but good news is things work fine when rendering your object (pressing F6).

I am trying to use this great script to cut a model but I get the following error message when using F6 to render no matter what I do:
ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation! Expr: e->incident_sface() != SFace_const_handle() File: /opt/mxe/usr/x86_64-w64-mingw32.static/include/CGAL/Nef_S2/SM_const_decorator.h Line: 326

The model and OpenSCAD file I am trying to cut are here:

I have verified that the model will render with F6 in OpenSCAD while not using PuzzleCut without issues and It has been cleaned with netfabb and meshlab.

Can someone tell me what I am doing wrong?

Hey there -

Puzzkecut works by creating multiple copies of the underlying 3d object. As a result - it can push openscad "beyond its limits" when dealing with complicated objects / large number of cuts.

In short - there's no good solution - but simplifying your object or trying fewer cuts might help.

Good luck!

why do i have an unknown object from my stl file? the octopus has a long rod-like thing through the center.

Comments deleted.
Jul 13, 2015 - Modified Jul 13, 2015

Very nice script. I have figured out how to use this but whenever I cut my object it becomes hollow along the cuts.
I used it to cut this object (imported from STL to OpenSCAD):

I can fix the holes in Blender(I think) but I really don't understand why it generates the holes. I am on OpenSCAD 2015.03.
You can see here more details:


VESA Case für Raspberry Pi B+, 2 and Odroid C1 with VESA mount 75/100

Hi, How do I change the angle at which it cuts the model?

try rotating your model!


Thanks Rich, i have another question, what do I have to do if I render the object and the object isn't cut, I tried rotating the object but it just cuts off the edge of the object.

I would try translating your model. Googling openscad will give you more info.

It was a while ago when I wrote the code - I would just try tweaking stamp size to see what happens.

And whats a stamp size?

Once again, Rich to the rescue!
Took me a couple of minutes to figure out how to use it, but this lib is just fantastic.

Same, but substitute a couple minutes for a couple hours... the "multicutdemo.scad" file is very illustrative of the power of this lib. Great job!

Hey this is a fantastic implementation of this idea.

I had a q: do you know if it's possible to have OpenSCAD determine your model's size and then use that to sort of determine where to make the X and Y positions for the cuts?

great work, and thanks for sharing!

glad you like the project!

Based on what I know about OpenSCAD - I think doing that kind of analysis is unlikely to be practical. (but don't let me stop you from trying...)


The example files worked fine, but when I try to do it on a more detailed model, it ends up looking strange. Half of a section will turn out looking ok, but parts of the section that's supposed to be gone will show up. The model I'm working with is:
I resized it and rotated it to have the same orientation as the octopus, any idea what I'm doing wrong? Thanks!

Skyrim - Dragon Priest Mask

sometimes I'll hit problems with puzzlecut where openscad kind of freaks out due to the amount of model data.
issues seems to be that puzzlecut creates a new copy of the model for each cut - so openscad might be able to handle 1x of the model - but not 6x. nice work on pincut!

Is there a specific openscad version required for the puzzlecut scripts? I don't know why my cut gear crashes when exporting to STL but it can process F5 and F6 correctly.. Where may I have gone wrong? Thanks -Sorry in advance if ever this is a noob question.. Thanks!! :)

just checked with the latest openscad - all works fine. I would start by trying one of the sample scripts.

One thing - puzzlecut effectively re-renders the entire object each time for each cut. So - it's possible OpenScad is having trouble dealing with that much data... if you can simplify your STL that might help.

have fun!


This works great the only problem I am having is that it does not generate enough notches to hold the pieces together. For some of my stl's it is only making one. Is there any way to correct this?

You should be able to add as many cuts as needed by modifying the xcutlocation / ycutlocation arrays.

If you're not seeing the cuts - they are likely outside your STL - I'd keep playing with the values to see if you can get them to appear.

You also may need to use the translate command to reposition your model. If things aren't working - you might want to start by playing with the example a bit.

Hope this helps!


ok so i am new how do i center my stl file to cut it equal?

This is genius! Excellent for simply cutting up large models into printable chunks. Thanks.

A kerf value of -0.3 is an excellent place to start for 3d printed objects It makes a stiff joint that could be glued for a permanent join.

Would you be willing to share the octopus puzzle model?
I have a CNC machine and want to try to mill it up from solid mango or Ipe :D I've never heard of openscad before and am not sure how to use it correctly....

Try http://www.thingiverse.com/thing:8896http://www.thingiverse.com/thi...  (turns out I had wrong link in description)

Bucket O' Octopodes (thicker legs)