Skip to content

Let in dovetail rail

joints.let_in_dovetail_rail

A rail lapped across the top of a square leg as let_in_rail, its lap cut to a half dovetail: flat at the bottom, sloped 1:6 at the top, so the rail can't be pulled out of the leg along its length. The rail is deeper than it is thick (2:3), flush with the top of the leg; the notch in the leg is open at the top.

Let in dovetail rail, assembled

Let in dovetail rail, exploded

Parameters

Parameter Default
leg_length 400
rail_length 300
stock 70 mm board, oak

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

from woodwright.examples import joints

design = joints.let_in_dovetail_rail(leg_length=500)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Leg

leg

Rail

rail

Cut list

leg   400 x 70 x 70 mm  oak
      - dovetail socket 93.3 to 105 mm, 17.5 deep, 1:6, in bottom_face
rail  370 x 105 x 70 mm  oak
      - half-dovetail lap 35 mm thick, 70 long, 93.3 wide at the shoulder, 1:6, on left_end

Code

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

def let_in_dovetail_rail(
    leg_length: float = 400, rail_length: float = 300, stock: Stock = POST_STOCK
) -> Assembly:
    """A rail lapped across the top of a square leg as `let_in_rail`, its lap
    cut to a half dovetail: flat at the bottom, sloped 1:6 at the top, so
    the rail can't be pulled out of the leg along its length. The rail is
    deeper than it is thick (2:3), flush with the top of the leg; the notch
    in the leg is open at the top.
    """
    asm = Assembly("let_in_dovetail_rail", root_location=STANDING)
    leg = asm.add(Board("leg", stock, length=leg_length, width=stock.thickness))
    rail = asm.add(Board("rail", stock, length=rail_length, width=stock.thickness * 1.5))
    asm.join(
        DovetailHalfLap(
            lap=rail.left_end,
            socket=leg.back_edge,
            position=flush_with(leg.right_end),
            flush=(leg.bottom_face, rail.top_face),
            over=True,
            proud=stock.thickness / 4,
            slope=6,
            sloped=(rail.back_edge,),
        )
    )
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.