Rabbeted box¶
projects.rabbeted_box
An open box: the sides' ends in rabbets at the ends of the front and the back, the bottom in rabbets along the inside of the walls' bottom edges, flush with them; outside sizes.
The sides and the bottom are as long (and wide) as the inside of the box; the rabbets add to them. The back and the right side are mirror images of the front and the left side, all with their reference faces outside.
Parameters¶
| Parameter | Default |
|---|---|
length |
300 |
depth |
200 |
height |
100 |
stock |
12 mm board, oak |
bottom_stock |
10 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 300 x 100 x 12 mm oak, 2 pieces: front, back
- end rabbet 12 mm, 6 deep, in bottom_face at left_end
- end rabbet 12 mm, 6 deep, in bottom_face at right_end
- rabbet 10 mm, 6 deep, in bottom_face at front_edge
left_right 188 x 100 x 12 mm oak, 2 pieces: left, right
- rabbet 10 mm, 6 deep, in bottom_face at front_edge
bottom 288 x 188 x 10 mm oak, mirror image
Code¶
From woodwright/examples/projects.py, which imports the names it uses (see From an example to your own design):
def rabbeted_box(
length: float = 300,
depth: float = 200,
height: float = 100,
stock: Stock = SIDE_OAK,
bottom_stock: Stock = THIN_OAK,
) -> Assembly:
"""An open box: the sides' ends in rabbets at the ends of the front and
the back, the bottom in rabbets along the inside of the walls' bottom
edges, flush with them; outside sizes.
The sides and the bottom are as long (and wide) as the inside of the
box; the rabbets add to them. The back and the right side are mirror
images of the front and the left side, all with their reference faces
outside.
"""
t = stock.thickness
asm = Assembly("rabbeted_box", root_location=BOX_FRONT)
front = asm.add(Board("front", stock, length=length, width=height))
back = asm.add(Board("back", stock, length=length, 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 bottom lies with its reference face down; mirrored, so that its
# left end is still at the left.
bottom = asm.add(
Board("bottom", bottom_stock, length=length - 2 * t, width=depth - 2 * t, mirror=True)
)
# The sides' right ends are at the front, so that their front edges are
# at the bottom, as the other walls' are.
for side, front_end, back_end in [
(left, front.left_end, back.left_end),
(right, front.right_end, back.right_end),
]:
asm.join(RabbetJoint(rabbet=front.bottom_face, end=side.right_end, at=front_end))
asm.join(RabbetJoint(rabbet=back.bottom_face, end=side.left_end, at=back_end))
for wall, edge in [
(front, bottom.front_edge),
(back, bottom.back_edge),
(left, bottom.left_end),
(right, bottom.right_end),
]:
# Along the front and the back, the rabbet runs into those at the corners.
through = wall in (front, back)
asm.join(
RabbetJoint(rabbet=wall.bottom_face, end=edge, at=wall.front_edge, through=through)
)
return asm
Exported with woodwright 0.9.0 on 2026-10-25.