Skip to content

Pinned mortise tenon

joints.pinned_mortise_tenon

A mortise and tenon pinned by an 8 mm peg through the stile and the tenon, flush with both faces of the stile.

Pinned mortise tenon, assembled

Pinned mortise tenon, exploded

Parameters

Parameter Default
stile_length 600
rail_length 300
width 60
drawbore 0

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

from woodwright.examples import joints

design = joints.pinned_mortise_tenon(stile_length=750)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Peg

peg

Rail

rail

Stile

stile

Cut list

stile  600 x 60 x 30 mm  oak
       - mortise 50 x 10 mm, 42 deep, in back_edge
       - peg hole ø8, in top_face, 46.5 from front_edge, centered
rail   340 x 60 x 30 mm  oak
       - tenon 50 x 10 mm, 40 long, on left_end
       - peg hole ø8 through the tenon on left_end, 13.5 from the shoulder
peg    ø8 x 30 mm  oak

Code

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

def pinned_mortise_tenon(
    stile_length: float = 600, rail_length: float = 300, width: float = 60, drawbore: float = 0
) -> Assembly:
    """A mortise and tenon pinned by an 8 mm peg through the stile and the
    tenon, flush with both faces of the stile."""
    return _pegged("pinned_mortise_tenon", stile_length, rail_length, width, drawbore)

Exported with woodwright 0.9.0 on 2026-10-25.