Skip to content

Protruding through mortise tenon

joints.protruding_through_mortise_tenon

A through tenon standing protrusion proud of the stile, its end square.

Protruding through mortise tenon, assembled

Protruding through mortise tenon, exploded

Parameters

Parameter Default
stile_length 600
rail_length 300
width 60
protrusion 10
stock 20 mm board, oak

Change them in a design file (see Change an example):

from woodwright.examples import joints

design = joints.protruding_through_mortise_tenon(stile_length=750)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Rail

rail

Stile

stile

Cut list

stile  600 x 60 x 20 mm  oak
       - through mortise 50 x 8 mm in back_edge
rail   370 x 60 x 20 mm  oak
       - tenon 50 x 8 mm, 70 long, on left_end

Code

From woodwright/examples/joints.py, which imports the names it uses (see From an example to your own design):

def protruding_through_mortise_tenon(
    stile_length: float = 600,
    rail_length: float = 300,
    width: float = 60,
    protrusion: float = 10,
    stock: Stock = OAK,
) -> Assembly:
    """A through tenon standing `protrusion` proud of the stile, its end square."""
    asm = Assembly("protruding_through_mortise_tenon", 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))
    asm.join(
        MortiseTenon(tenon=rail.left_end, mortise=stile.back_edge, tenon_length=width + protrusion)
    )
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.