Stepstool¶
projects.stepstool
A step stool: the seat of stepstool_seat on four round legs, which go
through the battens and the seat, wedged; straight legs (splayed ones
come later).
The legs stand under the middle of the battens, their axes leg_inset
in from the front and the back. Their shoulders bear on the battens;
the tenons, tenon wide, go through a hole bored through each batten
and on through the seat, flush with its top, wedged across the seat's
grain. The tenons cross the battens' grain, so that the battens hold the
seat's boards. A round stretcher under each batten, its axis
stretcher_height above the floor, joins the front and the back leg.
Parameters¶
| Parameter | Default |
|---|---|
height |
250 |
length |
400 |
depth |
280 |
batten_width |
90 |
batten_inset |
30 |
leg_inset |
50 |
tenon |
25 |
stretcher_height |
90 |
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¶
seat 400 x 140 x 20 mm oak, 2 pieces: seat_1, seat_2
- 2 x dovetail socket 86.75 mm at the face, 6.5 deep, 1:4, in bottom_face
- 2 x through hole ø25, in bottom_face, 75 and 325 from left_end; 50 from front_edge
batten 280 x 90 x 26.5 mm oak, 2 pieces: batten_left, batten_right
- dovetail tongue 86.75 mm wide at the shoulder, 6.5 deep, 1:4, on top_face
- through hole ø25, in bottom_face, 50 from left_end, centered, for the tenon on leg_front_left.right_end
- through hole ø25, in bottom_face, 230 from left_end, centered, for the tenon on leg_back_left.right_end
leg ø40 x 250 mm oak, 4 pieces: leg_front_left, leg_front_right, leg_back_right, leg_back_left
- chamfer 2 mm around left_end
- round tenon ø25, 40 long, a saw kerf 2 mm, 15 deep, for a wedge, on right_end
- hole ø16, 27 deep, in back_edge, 90 from left_end, centered
wedge 15 x 5 x 24 mm oak, 4 pieces: wedge_front_left, wedge_front_right, wedge_back_right, wedge_back_left
- taper 1.5 mm on front_edge towards right_end
- taper 1.5 mm on back_edge towards right_end
stretcher ø25 x 190 mm oak, 2 pieces: stretcher_right, stretcher_left
- round tenon ø16, 25 long, on left_end
- round tenon ø16, 25 long, on right_end
Code¶
From woodwright/examples/projects.py, which imports the names it uses (see From an example to your own design):
def stepstool(
height: float = 250,
length: float = 400,
depth: float = 280,
batten_width: float = 90,
batten_inset: float = 30,
leg_inset: float = 50,
tenon: float = 25,
stretcher_height: float = 90,
stock: Stock = OAK,
) -> Assembly:
"""A step stool: the seat of `stepstool_seat` on four round legs, which go
through the battens and the seat, wedged; straight legs (splayed ones
come later).
The legs stand under the middle of the battens, their axes `leg_inset`
in from the front and the back. Their shoulders bear on the battens;
the tenons, `tenon` wide, go through a hole bored through each batten
and on through the seat, flush with its top, wedged across the seat's
grain. The tenons cross the battens' grain, so that the battens hold the
seat's boards. A round stretcher under each batten, its axis
`stretcher_height` above the floor, joins the front and the back leg.
"""
floor = orient(at=(0, 0, height - stock.thickness), top_face=UP, back_edge=BACK)
asm = Assembly("stepstool", root_location=floor)
seat, battens = _stepstool_seat(
asm, length, depth, 2, batten_width, batten_inset, slope=4, stock=stock
)
batten = battens[0].thickness
x = batten_inset + batten_width / 2
legs = _wedged_legs(
asm,
seat,
height - stock.thickness - batten,
(x, leg_inset),
tenon,
kerf=2,
flare=1.5,
wedge_length=15,
gap=batten,
)
# The front left and the back left leg go through the left batten.
for leg, batten_part in zip(
legs, [battens[0], battens[1], battens[1], battens[0]], strict=True
):
asm.join(Bore(batten_part, leg.right_end, diameter=tenon))
spans = [("stretcher_right", 1, stretcher_height), ("stretcher_left", 3, stretcher_height)]
_rod_stretchers(asm, legs, spans, (length - 2 * x, depth - 2 * leg_inset), tenon=16)
return asm
Exported with woodwright 0.9.0 on 2026-10-25.