Skip to content

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.

Mitred shoulder corner, assembled

Mitred shoulder corner, exploded

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):

from woodwright.examples import joints

design = joints.mitred_shoulder_corner(stile_length=375)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Rail

rail

Stile

stile

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.