New Project

Veneer & Laminate#

Laminate faces, book match, and slip match veneer

Names: veneer match

When to use#

A show face covered in a thin leaf of another species (veneer) or a sheet good (a laminate), bonded to a solid substrate. The host keeps its declared dimensions; each leaf is its own generated part with its own cut-list row. Not for solid banding or stringing inlays: another file in INDEX.md may cover those, and it extends this one.

Syntax#

veneer face=<face> material=<Name> [thickness=<mm>] [grain_angle=<deg>] [leaves=<n>] [match=book|slip|sunburst]
PropertyMeaningDefault
face=Part-local face word (pos_x neg_x pos_y neg_y pos_z neg_z) the leaves bond to.pos_z
material=The leaf's species, or a type=sheet material for a laminate. A bare word, never a CEL expression; must be declared in materials.required
thickness=Finished leaf thickness, mm. Real veneer is about 0.6 (paper-backed) to 3 (hand-sawn).0.6
grain_angle=Degrees off the host's length axis; recorded on the cut list. A book-matched mirrored half reads at the opposite angle.0.0
leaves=Leaves laid side by side, edge to edge, no gap.1, or 2 once match= is given
match=book (alternate leaves mirror about each seam; exact mirror, ADR-0019) or slip (repeat, unmirrored), or sunburst (leaves laid as a fan, RFC-0141; see banding-and-stringing).none (single leaf), slip when leaves > 1
  • A laminate is the same node: give material= a type=sheet material. There is no separate laminate node.
  • veneer cuts nothing on the host. Each leaf is a generated part (never written back to the source), bonded not joined: no join names it and it is expected to touch the host, so it never reports a clash or gap.
  • A leaf follows its host's finished outline (RFC-0123): a cut_path ... keep="inside" outline or a pierced cut_path cut-out written on a face parallel to the veneered one, and a trim or scribed tenon shoulder written square to it, shape the leaf as they shape the host, on every leaf of a book, slip or sunburst match. Not followed: a leaning (tilt=) cut on a parallel face, an outline written on a face square to the veneered one, and blind cuts; the leaf keeps the blank rectangle there. A trim that removes a whole leaf leaves that leaf not built: the features remove the entire stock.
  • The cut list shows each leaf as its own row (species, thickness, grain angle, match), a book-match's mirrored half as a distinct handed row, and the host row twice: the declared substrate size unchanged plus a finished-thickness figure (substrate plus leaves).

Example#

project name="Veneered Lid" units=mm schema_version=1 {
    materials {
        material Pine type=softwood
        material Walnut type=hardwood
    }
    component Lid role=lid {
        stock Pine 280.0 180.0 18.0
        // two leaves, opened like a book: the figure mirrors about the centre seam
        veneer face=pos_z material=Walnut thickness=3.0 grain_angle=0.0 match=book leaves=2
    }
    assembly Box {
        part Lid instance=Lid { by top_sw; pos x=0.0 y=0.0 z=0.0 }
    }
}

Pitfalls and diagnostics#

  • Veneer cross-grain to a solid substrate cracks as the substrate moves; align grain_angle=0.0 with the host's grain unless the piece is a stable sheet substrate. examples/biedermeier_box.kdl explains why it veneers the show faces and balances the back.
  • A one-sided veneer on a wide panel cups; veneer the balancing face too (a second veneer).
  • material= is a name, not an expression: material=Walnut, not material="Walnut".
  • veneer is read by name; it is not an edge feature, so it takes no edges child.

See also#

  • docs/KDL_AUTHORING.md §7 ("Veneer and laminate"); docs/rfc/0123-veneer-and-laminate.md; ADR-0019 (the mirror used by book match).
  • examples/biedermeier_box.kdl; docs/styles/biedermeier.md.
  • materials-and-hardware.md (declaring the species), edge-and-face-cuts.md.

Names#

Every name this page declares, how the example library uses it, and the shortest real use.

veneer#

feature; node in 15 of 116 examples (30 uses).

Shortest real use, from empire_columned_chest.kdl:

veneer face=neg_x material=Mahogany thickness=veneer_th

match#

word-valued property; property in 15 of 116 examples (26 uses).

Shortest real use, from adirondack_pole_side_table.kdl:

veneer face=pos_z material=Willow thickness=0.6 match=sunburst leaves=8

Settings

Region

A region picks sensible defaults; change any of these separately.

Units

In inches, type lengths the way you say them: 34 1/2, 3/4", 1'-2" or 12.7mm. A length that can't be read is flagged, never rounded to something else.

Paper
Date order
Clock