CNC Box (Finger) Joint Box

With suitable toolpaths, the preview seems fine:

1 Like

Except of course for the matter of how to open up the box — for hand-held boxes it’s fine to saw them in half to open them (if a bit nerve-wracking), for CNC, it’s easier to just design it into the file.

Rather than just a horizontal opening we’ll add some visual interest by making the lid open at an angle — since it would be jarring to have a horizontal cut along the front edge we’ll want to specify an angle where we can cut out a matching slope along the front edge (since we can’t flip the back over we’ll accept a straight edge there).

Next we have to draw up the tool and how deeply it will need to cut to make the desired angle and enter it.

Helps if we rotate at the correct angle. Seems the endmill is defined in terms of taper and not nominal angle:

Next, we re-rotate things for the sides and box.

Thusly:

In order to make a through cut so as to get the 3.6 degree angle we would need to cut an 0.98195mm wide design:

using a 10.6 degree V endmill:

Except of course the angle is only right for the cut from the inside at either the top or the bottom depending on if the piece is at the front or back so that the wrong pieces have to be cut as a second setup from the other side or left proud and filed off to the correct angle.

Working on directly getting G-Code out.

EDIT: wired up the gcode output part selection and fixed the top/bottom and improved the G-Code generation:

Design into 3D_ Fingerjoint.zip (2.3 KB)

which puts lines such as:

ECHO: "G0 X0 Y0 Z8"
ECHO: "G1 Z-3.175 F150"
ECHO: "G1 X0 Y4.20625 F600"
ECHO: "G0 Z8"
ECHO: "G0 X6.89856 Y0 Z8"
ECHO: "G1 Z-3.175 F150"
ECHO: "G1 X6.89856 Y4.20625 F600"
ECHO: "G0 Z8"

into the console which can be extracted with a command line option — now just need to get someone to afford a menu command to write out only a filtered version of the echoed text and customize the file extension and it’s good to go.

Following as this is very very interesting! Just downloaded OpenSCad to ty it also. :slight_smile:

Thanks!

FWIW, I’d suggest starting with BlockSCAD:

https://www.blockscad3d.com/

I tried to document this sort of workflow pretty thoroughly at:

and did put up a test cut in a different thread:

Hopefully I’ll get another top/bottom cut this evening and then put one together.

1 Like

Wrote up a detailed examination of this at:

https://willadams.gitbook.io/design-into-3d/fingerjoints

Here are two Carbide Create files:

carbidecreate fingerjoint vertical parts.c2d (65.1 KB)

carbidecreate fingerjoint vertical cuts.c2d (39.8 KB)

They want a #102 or other 1/8" endmill (I’ve been using a downcut) — actual setup and cutting photos presently.

1 Like

While one could carefully measure the fingerjoint width and then adjust the mechanism, it’s easier to just cut a small fixture to hold the boards in their relative positions:

which is ready to cut once unioned:

1 Like

It’s always a bit nerve-wracking cutting boxes apart, but the groove helps a lot, and isn’t too much wider than the saw kerf:

1 Like

and post processing and hardware installation went well:

4 Likes

Here are the files for this box:

top and bottom.c2d (10.2 KB)
carbidecreate fingerjoint vertical cuts_3488.c2d (169.7 KB)
carbidecreate fingerjoint vertical parts.c2d (89.5 KB)

3 Likes

Revisiting this, I believe it can be simplified by using a centered toolpath to cut the stock ganged up at the front of the machine.

Just insert a spacer which has the same (or slightly less) thickness than the stock (and greater than the diameter of the tool used and set up the job to be equal in width to the height of the box and depth equal to stock thickness * 5:

Then divide the box height by the diameter of the tool to be used:

74.7 / 3.175 == 23.5275591

Round down to some reasonable odd number, so 23, then divide that into the box height to get the height of the fingers:

74.7 / 23 == 3.24782609

Create a rectangle which has that width and a height equal to twice the stock thickness plus tool diameter:

Duplicate it and position the duplicate at the top, box joint width in:

Select the twain and use Linear Array to replicate them:

Delete the redundant one:

select:

and assign a toolpath to cut to the stock thickness plus glueline:

(optional, increase the two end pocket widths to ensure a clean cut)

Then it’s simply a matter of cutting the parts, including any interior features, stacking them up with one piece in the middle as a spacer, and sacrificial boards on either side and then cutting them out.

1 Like

For the parts themselves, it is a simple matter to work up the dimensions (either interior or exterior — we’ll use interior):

and then add the stock thickness representing the box as viewed from the top around it:

Draw up the parts:

Add in geometry for the lid/bottom:

Add parts for spacers:

Add tabs:

and surrounding geometry to cut as a pocket down to tab height:

(using two pieces of stock so as to use up some scrap)

and then assign toolpaths to arrive at:

2 Likes