Dovetail drawer¶
projects.dovetail_drawer
A drawer box with through dovetails at all four corners (no bottom); outside sizes.
The front and the back have pins at both ends, the sides tails at both ends, so the front can't be pulled off. All boards have their reference faces outside and reference edges at the bottom; the back and the right side are mirror images of the front and the left side.
Parameters¶
| Parameter | Default |
|---|---|
width |
400 |
depth |
500 |
height |
150 |
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¶
front_back 400 x 150 x 20 mm oak, 2 pieces: front, back
- 2 x sockets for 3 dovetails
left_right 500 x 150 x 20 mm oak, 2 pieces: left, right
- 2 x 3 dovetails, slope 1:7
Code¶
From woodwright/examples/projects.py, which imports the names it uses (see From an example to your own design):
def dovetail_drawer(
width: float = 400,
depth: float = 500,
height: float = 150,
stock: Stock = OAK,
) -> Assembly:
"""A drawer box with through dovetails at all four corners (no bottom); outside sizes.
The front and the back have pins at both ends, the sides tails at both
ends, so the front can't be pulled off. All boards have their reference
faces outside and reference edges at the bottom; the back and the right
side are mirror images of the front and the left side.
"""
t = stock.thickness
asm = Assembly("dovetail_drawer", root_location=BOX_FRONT)
front = asm.add(Board("front", stock, length=width - 2 * t, width=height))
back = asm.add(Board("back", stock, length=width - 2 * t, width=height, mirror=True))
left = asm.add(Board("left", stock, length=depth - 2 * t, width=height))
right = asm.add(Board("right", stock, length=depth - 2 * t, width=height, mirror=True))
# The sides' right ends are at the front.
for side, front_end, back_end in [
(left, front.left_end, back.left_end),
(right, front.right_end, back.right_end),
]:
asm.join(ThroughDovetail(tails=side.right_end, pins=front_end, tail_count=3))
asm.join(ThroughDovetail(tails=side.left_end, pins=back_end, tail_count=3))
return asm
Exported with woodwright 0.9.0 on 2026-10-25.