Dovetail half lap¶
joints.dovetail_half_lap
A T-shaped dovetailed half lap: the lap on the rail cut to a tail, wider at its end than at the shoulder, in a socket of its shape across the stile.
Unlike a plain half lap it holds even if the rail is pulled along its length, e.g. a cross rail pulled by a sagging top. The tail shows on the face towards the viewer.
Parameters¶
| Parameter | Default |
|---|---|
stile_length |
300 |
rail_length |
200 |
width |
40 |
stock |
20 mm board, oak |
Change them in a design file (see Change an example):
Drawings¶
The plans in one PDF: plans.pdf.
Cut list¶
stile 300 x 40 x 20 mm oak
- dovetail socket 28.6 to 40 mm, 10 deep, 1:7, in bottom_face
rail 240 x 40 x 20 mm oak
- dovetail lap 10 mm thick, 40 long, 28.6 wide at the shoulder, 1:7, on left_end
Code¶
From woodwright/examples/joints.py, which imports the names it uses (see From an example to your own design):
def dovetail_half_lap(
stile_length: float = 300, rail_length: float = 200, width: float = 40, stock: Stock = OAK
) -> Assembly:
"""A T-shaped dovetailed half lap: the lap on the rail cut to a tail, wider at
its end than at the shoulder, in a socket of its shape across the stile.
Unlike a plain half lap it holds even if the rail is pulled along its
length, e.g. a cross rail pulled by a sagging top. The tail shows on the
face towards the viewer.
"""
asm = Assembly("dovetail_half_lap", root_location=STANDING)
stile = asm.add(Board("stile", stock, length=stile_length, width=width))
rail = asm.add(Board("rail", stock, length=rail_length, width=width))
asm.join(DovetailHalfLap(lap=rail.left_end, socket=stile.back_edge))
return asm
Exported with woodwright 0.9.0 on 2026-10-25.