Skip to content

Dowelled frame corner

joints.dowelled_frame_corner

A rail butted against the edge of a stile, joined by two dowels across its width, 20 mm into each (a dowelled butt joint).

Dowelled frame corner, assembled

Dowelled frame corner, exploded

Parameters

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

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

from woodwright.examples import joints

design = joints.dowelled_frame_corner(stile_length=750)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Dowel

dowel

Rail

rail

Stile

stile

Cut list

stile  600 x 60 x 20 mm  oak
       - 2 x dowel hole ø8, 21 deep, in back_edge, 290 and 310 from left_end; centered
rail   300 x 60 x 20 mm  oak
       - 2 x dowel hole ø8, 21 deep, in left_end, 20 and 40 from front_edge; centered
dowel  ø8 x 40 mm  oak, 2 pieces: dowel_1, dowel_2

Code

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

def dowelled_frame_corner(
    stile_length: float = 600, rail_length: float = 300, width: float = 60, stock: Stock = OAK
) -> Assembly:
    """A rail butted against the edge of a stile, joined by two dowels
    across its width, 20 mm into each (a dowelled butt joint)."""
    asm = Assembly("dowelled_frame_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))
    asm.join(Dowels(stile.back_edge, rail.left_end, _dowels(asm, "dowel", 2, 40)))
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.