Butt box¶
projects.butt_box
An open box: four walls butt-jointed at the corners on a bottom; outside sizes.
Parameters¶
| Parameter | Default |
|---|---|
length |
300 |
depth |
200 |
height |
100 |
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 90 x 10 mm oak, 2 pieces: front, back
left_right 180 x 90 x 10 mm oak, 2 pieces: left, right
bottom 300 x 200 x 10 mm oak
Code¶
From woodwright/examples/projects.py, which imports the names it uses (see From an example to your own design):
def butt_box(
length: float = 300,
depth: float = 200,
height: float = 100,
stock: Stock = THIN_OAK,
) -> Assembly:
"""An open box: four walls butt-jointed at the corners on a bottom; outside sizes."""
t = stock.thickness
asm = Assembly("butt_box", root_location=BOX_FRONT)
wall_height = height - t
front = asm.add(Board("front", stock, length=length, width=wall_height))
# The back and the right side are mirror images of the front and the
# left side, all with their reference faces outside.
back = asm.add(Board("back", stock, length=length, width=wall_height, mirror=True))
left = asm.add(Board("left", stock, length=depth - 2 * t, width=wall_height))
right = asm.add(Board("right", stock, length=depth - 2 * t, width=wall_height, mirror=True))
bottom = asm.add(Board("bottom", stock, length=length, width=depth))
# The sides between the front and the back, their bottom (front) edges level.
for side, front_end, back_end in [
(left, front.left_end, back.left_end),
(right, front.right_end, back.right_end),
]:
asm.join(Butt(front.bottom_face, side.left_end, position=flush_with(front_end)))
asm.join(Butt(back.bottom_face, side.right_end, position=flush_with(back_end)))
# The walls stand on the bottom, flush with its sides. The back faces
# the other way than the front, so its reference face (outside) is flush
# with the bottom's back edge.
asm.join(Butt(front.front_edge, bottom.top_face, position=flush_with(front.left_end)))
asm.join(
Butt(
back.front_edge,
bottom.top_face,
position=flush_with(back.left_end),
flush=(back.ref_face, bottom.back_edge),
)
)
return asm
Exported with woodwright 0.9.0 on 2026-10-25.