Mitred shoulder corner¶
joints.mitred_shoulder_corner
An L-shaped frame corner of square-ish stock, mitred only at the inner edge.
Like a mitre corner whose mitre stops a third into the stile; the rest is butted, with a through tenon behind the notch. The tenon reaches half-way under the mitre, but keeps a full shoulder towards the end of the stile, so that enough material is left there.
Parameters¶
| Parameter | Default |
|---|---|
stile_length |
300 |
rail_length |
200 |
width |
45 |
stock |
30 mm board, oak |
Change them in a design file (see Change an example):
Drawings¶
The plans in one PDF: plans.pdf.
Cut list¶
stile 300 x 45 x 30 mm oak
- through mortise 22.5 x 10 mm in back_edge
- notch 45 long, 15 deep, mitred at one end, in back_edge
rail 245 x 45 x 30 mm oak
- tenon 22.5 x 10 mm, 30 long, reaching 15 beyond the shoulder, mitred at back_edge, on left_end
Code¶
From woodwright/examples/joints.py, which imports the names it uses (see From an example to your own design):
def mitred_shoulder_corner(
stile_length: float = 300,
rail_length: float = 200,
width: float = 45,
stock: Stock = THICK_OAK,
) -> Assembly:
"""An L-shaped frame corner of square-ish stock, mitred only at the inner edge.
Like a mitre corner whose mitre stops a third into the stile; the rest
is butted, with a through tenon behind the notch. The tenon reaches
half-way under the mitre, but keeps a full shoulder towards the end of
the stile, so that enough material is left there.
"""
asm = Assembly("mitred_shoulder_corner", root_location=STANDING)
stile = asm.add(Board("stile", stock, length=stile_length, width=width))
rail = asm.add(Board("rail", stock, length=rail_length, width=width))
depth = width / 3
asm.join(
MitredShoulderTenon(
tenon=rail.left_end,
mortise=stile.back_edge,
position=flush_with(stile.right_end),
mitre_depth=depth,
mitred=(rail.back_edge,), # the inner edge
tenon_length=width - depth, # through
)
)
return asm
Exported with woodwright 0.9.0 on 2026-10-25.