Skip to content

Picture frame

projects.picture_frame

A frame mitred at all four corners; outside sizes.

Picture frame, assembled

Picture frame, exploded

Parameters

Parameter Default
width 400
height 300
member_width 40
stock 20 mm board, oak

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

from woodwright.examples import projects

design = projects.picture_frame(width=500)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Left right

left right

Top bottom

top bottom

Cut list

left_right  300 x 40 x 20 mm  oak, 2 pieces: left, right
            - mitre 45 deg on right_end, back_edge inside
            - mitre 45 deg on left_end, back_edge inside
top_bottom  400 x 40 x 20 mm  oak, 2 pieces: top, bottom
            - mitre 45 deg on left_end, back_edge inside
            - mitre 45 deg on right_end, back_edge inside

Code

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

def picture_frame(
    width: float = 400,
    height: float = 300,
    member_width: float = 40,
    stock: Stock = OAK,
) -> Assembly:
    """A frame mitred at all four corners; outside sizes."""
    asm = Assembly("picture_frame", root_location=STANDING)
    left = asm.add(Board("left", stock, length=height, width=member_width))
    top = asm.add(Board("top", stock, length=width, width=member_width))
    right = asm.add(Board("right", stock, length=height, width=member_width))
    bottom = asm.add(Board("bottom", stock, length=width, width=member_width))
    members = [left, top, right, bottom]
    for a, b in zip(members, members[1:] + members[:1], strict=True):
        asm.join(MitreCorner(a.right_end, b.left_end, a.back_edge, b.back_edge))
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.