# Finger or puzzle joints

81 views
Skip to first unread message

### Andrew Cutler

unread,
Sep 22, 2020, 5:53:25 PM9/22/20
to CadQuery
Is it possible to create finger or puzzle joints using CadQuery?

I need to design some plywood furniture that will be laser cut or CNC routed and these types of joints are required.

I searched GitHub but did not find any examples or libraries that provide for complex joints.

Any advice would be appreciated.

TIA

### Jeremy Wright

unread,
Sep 22, 2020, 9:34:42 PM9/22/20
to CadQuery

If you have a static joint profile, you can use importDXF and then cut that from your board/material. https://cadquery.readthedocs.io/en/latest/apireference.html?highlight=dxf#file-management-and-export

If you need something more parametric, there are several ways, but maybe the following (clumsy attempt) will help get you started. If you can define the point list in the following code mathematically and collect the points in the list using a loop, you might have a pretty flexible and powerful joint cut generator. CadQuery also has 2D primitives like lines and arcs, but they can be cumbersome to work with.https://github.com/CadQuery/cadquery/blob/master/examples/Ex005_Extruded_Lines_and_Arcs.py

import cadquery as cq

board_width = 100
board_length = 500
width = 40
depth = 30

startX = -board_width / 2.0
startY = board_length / 2.0

pts = [
(startX, startY),
(startX + width, startY),
(startX + (width - 10), startY - depth),
(startX + width * 2, startY - depth),
(startX + (width * 2) - 10, startY),
(startX + width * 3 - 10, startY),
(startX + width * 3 - 10, startY + 10),
(startX, startY + 10)
]

board = cq.Workplane("XY").rect(board_width, board_length).extrude(10)

board = board.faces(">Z").polyline(pts).close().cutThruAll()

show_object(board)

Probably the best thing to do is try some things out and keep asking questions here.

### Wink Saville

unread,
Sep 23, 2020, 7:13:50 PM9/23/20
to CadQuery
I have an app, https://github.com/winksaville/cq-box-with-dovetail-lid, that creates a box with a dovetail lid,
maybe something their might be useful.

### Dave Cowden

unread,
Sep 23, 2020, 7:20:35 PM9/23/20
to Wink Saville, CadQuery
Really cool project!

--
cadquery home: https://github.com/CadQuery/cadquery
post issues at https://github.com/CadQuery/cadquery/issues
run it at home at : https://github.com/CadQuery/CQ-editor
---
You received this message because you are subscribed to the Google Groups "CadQuery" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cadquery+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cadquery/58de8ffd-f975-4090-9c4a-4cb6bc2df418n%40googlegroups.com.

### Adam Urbanczyk

unread,
Sep 24, 2020, 1:37:17 PM9/24/20
to CadQuery
Minor remark: only exportDXF is suitable for CNC work.

General approach I'd advise:

(1) Make the bulk objects
(2) Push a list of locations (position + orientation) of the fingers or slots
(3) use .eachpoint with a suitable callback that generates  the trapezoidal profile
(4) extrude or cutThruAll
(5) section
(6) exportDXF

HTH,
Adam

### Andrew Cutler

unread,
Sep 24, 2020, 11:07:28 PM9/24/20
to CadQuery
Thanks all for the help and examples. I'll have a crack this weekend and let you know how I get on.

### WillAdams

unread,
Jan 28, 2021, 11:08:35 AMJan 28
to CadQuery
On Thursday, September 24, 2020 at 1:37:17 PM UTC-4 Adam Urbanczyk wrote:
Minor remark: only exportDXF is suitable for CNC work.

I've found DXFs when exporting often don't allow representing geometry as is needed for some designs --- is it possible to go to a 3D DXF?

Even then, I've also found that I've worked up a joinery design which existing CAM tools don't support cutting with the tooling which seems most appropriate to my mind:

William

### Adam Urbanczyk

unread,
Jan 29, 2021, 2:47:59 AMJan 29
to CadQuery
In CQ you can export DXF of a 2D section and for such an object all geometries are supported AFAIK.  If you need 3D then STEP is the option. Regarding CAM I have no experience, but look at FreeCAD (Path workbench).

### WillAdams

unread,
Jan 29, 2021, 6:50:46 AMJan 29
to CadQuery
On Friday, January 29, 2021 at 2:47:59 AM UTC-5 Adam Urbanczyk wrote:
In CQ you can export DXF of a 2D section and for such an object all geometries are supported AFAIK.  If you need 3D then STEP is the option. Regarding CAM I have no experience, but look at FreeCAD (Path workbench).

Unfortunately, FreeCAD doesn't (currently? w/o scripting?) support the endmill shapes which I wish to use for joinery, in the way that I wish to use them:

https://forum.freecadweb.org/viewtopic.php?t=23917

In particular cove radius endmills aren't supported (Tool Path Language doesn't support them either) --- had to come up w/ some moderately interesting code to model them in OpenSCAD, and it doesn't seem to be possible to get FreeCAD to use a V endmill to cut a 3D shape which matches the angle of the V accurately enough with an efficient enough toolpath w/o scripting.

William

### Adam Urbanczyk

unread,
Jan 29, 2021, 12:44:43 PMJan 29
to CadQuery
Can't help with that here I'm afraid. You could try to open an issue in FreeCAD/Path .
Reply all
Reply to author
Forward
0 new messages