Skip to content

Interlocking rabbet corner

joints.interlocking_rabbet_corner

A carcase corner with two interlocking rabbets: a lip of the top in a rabbet of the side.

The side's outer lip covers the top's end grain. The top's length is between the sides, the side's height is overall.

Interlocking rabbet corner, assembled

Interlocking rabbet corner, exploded

Parameters

Parameter Default
side_height 400
top_length 500
depth 200
stock 20 mm board, oak

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

from woodwright.examples import joints

design = joints.interlocking_rabbet_corner(side_height=500)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Side

side

Top

top

Cut list

side  400 x 200 x 20 mm  oak
      - end rabbet 10 mm, 10 deep, in bottom_face at right_end
top   490 x 200 x 20 mm  oak
      - lap 10 mm thick, 10 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 interlocking_rabbet_corner(
    side_height: float = 400, top_length: float = 500, depth: float = 200, stock: Stock = OAK
) -> Assembly:
    """A carcase corner with two interlocking rabbets: a lip of the top in a rabbet of the side.

    The side's outer lip covers the top's end grain. The top's length is
    between the sides, the side's height is overall.
    """
    asm = Assembly("interlocking_rabbet_corner", root_location=CASE_SIDE)
    side = asm.add(Board("side", stock, length=side_height, width=depth))
    top = asm.add(Board("top", stock, length=top_length - stock.thickness, width=depth))
    asm.join(
        RabbetJoint(
            rabbet=side.bottom_face,
            end=top.left_end,
            at=side.right_end,
            lap=stock.thickness / 2,
        )
    )
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.