Splined shelf corner¶
joints.splined_shelf_corner
The top corner of a shelf, mitred across the edges, with three short oak splines in a row along the corner, in stopped grooves (routed) with equal gaps between them, so the joint doesn't show at the front or the back. Lengths to the outside.
Parameters¶
| Parameter | Default |
|---|---|
side_height |
400 |
top_length |
500 |
depth |
250 |
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¶
side 400 x 250 x 20 mm oak
- mitre 45 deg on right_end, bottom_face inside
- spline groove 4 mm, 9 deep, square to the mitre with top, along the corner, stopped, 25 to 75 from front_edge
- spline groove 4 mm, 9 deep, square to the mitre with top, along the corner, stopped, 100 to 150 from front_edge
- spline groove 4 mm, 9 deep, square to the mitre with top, along the corner, stopped, 175 to 225 from front_edge
top 500 x 250 x 20 mm oak
- mitre 45 deg on left_end, bottom_face inside
- spline groove 4 mm, 9 deep, square to the mitre with side, along the corner, stopped, 25 to 75 from front_edge
- spline groove 4 mm, 9 deep, square to the mitre with side, along the corner, stopped, 100 to 150 from front_edge
- spline groove 4 mm, 9 deep, square to the mitre with side, along the corner, stopped, 175 to 225 from front_edge
spline 50 x 16 x 4 mm oak, 3 pieces: spline_1, spline_2, spline_3
Code¶
From woodwright/examples/joints.py, which imports the names it uses (see From an example to your own design):
def splined_shelf_corner(
side_height: float = 400, top_length: float = 500, depth: float = 250, stock: Stock = OAK
) -> Assembly:
"""The top corner of a shelf, mitred across the edges, with three short
oak splines in a row along the corner, in stopped grooves (routed) with
equal gaps between them, so the joint doesn't show at the front or the
back. Lengths to the outside."""
asm = Assembly("splined_shelf_corner", root_location=CASE_SIDE)
side = asm.add(Board("side", stock, length=side_height, width=depth))
top = asm.add(Board("top", stock, length=top_length, width=depth))
splines = tuple(
asm.add(Board(f"spline_{i + 1}", THIN_SPLINE_OAK, length=50, width=16)) for i in range(3)
)
asm.join(
SplinedMitre(
side.right_end, top.left_end, side.bottom_face, top.bottom_face, splines=splines
)
)
return asm
Exported with woodwright 0.9.0 on 2026-10-25.