Joinery Box Project

One of the nice things about having a CNC machine is that it makes it super easy to make a lot of different types of joinery. This project shows how to make and mill out a simple box out of plywood. If you want to get some inspiration on some other designs for joining wood and other materials together, I would recommend taking a look at the Make Magazine’s CNC Panel Joinery Handbook.

You can find the models and gcode here (designed jointly by me Andy and Bojun Li): (upload the gcode and STL files to Thingiverse)

This article will cover some of the basic concepts around how this particular box was designed and how this very basic joint was designed. We’re using Onshape here, but you should be able to use whichever 3D CAD software you prefer. Just a quick note, the dimensions used in the diagrams below may not correspond with the actual dimensions of the box. The dimensions were just created as examples.

Male joint


There’s a couple of key dimensions here when creating the male part of the joint. First thing to look at is the 0.5″ dimension. This corresponds to the thickness of the material. Since the next piece of material will be 90 degrees to the joint material, having the width of the joint equal to the material thickness will ensure that the completed joint is flush on both sides of the box.

Next is the 0.125″ diameter dimension. This corresponds to the diameter of the end mill that you are using. CNC machines are unable to cut sharp inner radii, so we’re cutting in a bit further so that we can make sure that the two parts come together without interfering. Just a quick tip: sometimes your CAM software might not recognize the feature if your end mill diameter and your dimension are equal. If that happens, I’d recommend increasing the dimension a little bit until the CAM software does recognize it.

Lastly is the joint width (0.75″). You can change this to whatever you want.

Female joint

A lot of the dimensions here are going to correspond to the ones that we created above for the male joint.

First off, we have the 0.5″ dimension, which corresponds to the thickness of the material.

The 0.125″ diameter dimension corresponds with the end mill diameter as well, but this time, the sharp corner we are taking care of is in the inside of the joint. As I mentioned above, you can make this diameter just a tad bigger if your CAM software does not recognize it.

Lastly is the 0.75″ dimension. This should be the same as the width set for your male joint. You may find that if the joint is too tight or hard to put together, you can add a bit more space in this area to allow for a better fit (a few thousandths of an inch should do the trick).

Coming together

You should be able to line up all the joints on each side of your box so that you can fit it together once you mill it out. You can use 3D CAD software to “assemble” the box as well, to double check.


We’re using CAMLab to generate the gcode.

Here are some recommended settings:

  • Tool: 1/8″ flat end mill
  • Step down: 2mm-3mm
  • Feed rate: 800mm/min to 1000mm/min
  • Plunge rate: 250mm/min



I found that through doing this project, that figuring out all the joints and where to place them can be a bit tricky, but once you’ve made a few joints, making boxes on a CNC machine is super duper easy. I hope that this post can help get you on the right track on designing your own boxes. You can also get started by using our Onshape files and modifying them to fit with the dimensions you want.

Anyways, happy making!