Skip to content

Hollow leg

joints.hollow_leg

A square hollow leg: four boards glued along their edges, each edge mitred at 45 degrees along the grain, so they meet on the diagonals of the corners and no edge grain shows; outside sizes.

Lighter than a solid leg and showing face grain on all four sides, with a square hole through its length (here 30 mm for 15 mm boards). The reference faces are outside; the boards stand with their left ends at the bottom.

Hollow leg, assembled

Hollow leg, exploded

Parameters

Parameter Default
length 700
width 60
stock 15 mm board, oak

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

from woodwright.examples import joints

design = joints.hollow_leg(length=875)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Front

front

Cut list

front  700 x 60 x 15 mm  oak, 4 pieces: front, left, back, right
       - mitre 45 deg on back_edge, bottom_face inside
       - mitre 45 deg on front_edge, bottom_face inside

Code

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

def hollow_leg(length: float = 700, width: float = 60, stock: Stock = HOLLOW_LEG_OAK) -> Assembly:
    """A square hollow leg: four boards glued along their edges, each edge
    mitred at 45 degrees along the grain, so they meet on the diagonals of
    the corners and no edge grain shows; outside sizes.

    Lighter than a solid leg and showing face grain on all four sides, with
    a square hole through its length (here 30 mm for 15 mm boards). The
    reference faces are outside; the boards stand with their left ends at
    the bottom.
    """
    asm = Assembly("hollow_leg", root_location=orient(right_end=UP, ref_face=FRONT))
    names = ("front", "left", "back", "right")
    boards = [asm.add(Board(name, stock, length=length, width=width)) for name in names]
    # Going round, each board's back edge meets the next one's front edge.
    for a, b in zip(boards, boards[1:] + boards[:1], strict=True):
        asm.join(MitreCorner(a.back_edge, b.front_edge, a.bottom_face, b.bottom_face))
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.