New Project

Banding & Stringing#

Inlaid border bands, strung lines, and sunburst veneer, as generated parts

Names: banding stringing lay pattern

When to use#

Use banding or stringing when a design needs a strip of contrasting wood let flush into a face: a line of holly round a walnut top, a herringbone or cross-banded border on a Federal, Hepplewhite or Sheraton panel, a flush edge band. One node cuts the groove in the host and generates the filler part that fills it exactly, so the two cannot disagree. Use veneer match=sunburst for a fan of veneer leaves radiating from a point. Do not use any of these for a pictorial motif (patera, bellflower, marquetry): out of scope (RFC-0141).

Syntax#

banding   face=pos_z material=<Species> width=<mm> depth=<mm> offset=<mm>
          [lay=inlay|surface] [thickness=<mm>] [pattern=plain|herringbone] [angle=<deg>]
          [{ edges <neighbour face>... }]
stringing face=pos_z material=<Species> offset=<mm> [width=<mm>] [depth=<mm>] [angle=<deg>]
veneer    face=pos_z material=<Species> match=sunburst leaves=<n>
          [center_u=<mm> center_v=<mm>] [start_angle=<deg> end_angle=<deg>]
  • offset= is the distance from the face's edge to the strip's near side. Required for stringing; 0 on a banding opens the groove through the side.
  • Defaults: banding 12mm wide, 3mm deep; stringing 1.5mm wide, 2mm deep. lay=surface bonds the strip on the face instead (thickness=, default 0.6; no groove, no depth=).
  • pattern=herringbone splits each strip into two halves at +angle and -angle (default 45). angle=90 is cross-banding. The figure is a grain angle, never geometry.
  • { edges pos_x pos_y } limits the banding to edges named by their neighbouring faces. Strips mitre only where two selected edges meet; the others end square.
  • Strips are mitred at 45 degrees where two neighbouring edges are both banded.
  • repeat i count=3 { stringing ... offset="10.0 + i * 6.0" } makes concentric lines.
  • match=sunburst: leaves wedges (default 8) tile the face from the centre point; each leaf must span under 180 degrees, so a full circle needs at least 3 leaves.

Example#

project name="Inlaid Panel" units=mm schema_version=1 {
    materials {
        material Poplar type=hardwood
        material Walnut type=hardwood
        material Holly type=hardwood
    }
    assembly InlaidPanel {
        part Panel role=panel {
            stock Poplar 300.0 200.0 22.0 lengthwise
            by top_sw
            pos x=0.0 y=0.0 z=0.0
            banding face=pos_z material=Walnut width=10.0 depth=3.0 offset=10.0 pattern=herringbone
            repeat i count=2 {
                stringing face=pos_z material=Holly offset="6.0 + i * 16.0"
            }
        }
        part Fan role=panel {
            stock Poplar 160.0 160.0 16.0 lengthwise
            by top_sw
            pos x=330.0 y=0.0 z=0.0
            veneer face=pos_z material=Walnut thickness=0.6 match=sunburst leaves=8
        }
    }
}

The full worked fixture is examples/inlaid_tray.kdl.

Pitfalls and diagnostics#

  • A bad property or an impossible section is a named skip on both the groove and the filler, never a silent no-op: stringing without offset=, depth= that reaches through the part, width=0, a missing material=, lay= other than inlay/surface, pattern= other than plain/herringbone, a strip wider than the face allows, thickness= on an inlay, depth= on a surface strip, an edges word that is not a neighbour of the face.
  • Strips must not meet their opposite strip: 2 * (offset + width) must stay under the face's extent.
  • The filler sits flush with no gap, touching its groove: expected, never a clash.
  • Cut list: strips are ordinary strip stock, L the outer edge's length (the mitre is cut from it), the grain angle in the component name (Walnut herringbone banding (+45°)). A flush inlay does not change the host's thickness.
  • Do not put an inlay groove on a face that also carries veneer; surface banding likewise is not meant to share a face with a veneer leaf.
  • Ids: Host@banding_<n>/Strip_<j> and Host@stringing_<n>/Strip_<j>, n numbering the unrolled banding/stringing nodes of that host in document order.
  • Not built: curved banding, stopped bands, the pictorial motifs, the chevron figure itself.

See also#

  • docs/KDL_AUTHORING.md §7, Banding and stringing and Veneer and laminate
  • docs/rfc/0141-banding-stringing-sunburst.md, docs/adr/0025-banding-stringing-inlay.md
  • examples/inlaid_tray.kdl
  • docs/agent-reference/nodes.md, docs/agent-reference/tasks.md

Names#

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

banding#

feature; node in 6 of 116 examples (12 uses).

Shortest real use, from serpentine_sideboard.kdl:

banding face=neg_x material=Tulipwood width=band_w depth=3.0 offset=band_off

stringing#

feature; node in 12 of 116 examples (20 uses).

Shortest real use, from deco_console_table.kdl:

stringing face=neg_y material=Ivory offset=8.0

lay#

word-valued property; not used by any example yet.

pattern#

word-valued property; property in 4 of 116 examples (6 uses).

Shortest real use, from william_and_mary_lowboy.kdl:

banding face=pos_z material=Maple width=7.0 depth=3.0 offset=29.0 pattern=herringbone

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