New Project

Vocabulary#

The complete set of names the compiler's schema linter accepts, read from the linter's own tables (tools/kdl-check/src/main.rs) every time this reference is built, so a name added to the language appears here without anyone editing this page. Syntax and examples for each are in the language reference pages; the names index says which page.

Project-level nodes#

Nodes written directly inside project.

import params preset materials component joinery assembly meta collection choice driver analysis volume no_join plan site

Features#

Cuts and shaping operations written inside a component or part.

dado groove rabbet chamfer roundover moulding taper bevel cut_path hole pocket trim veneer banding stringing grain stock mark by pos rot params lamination path section bend

Joinery kinds#

The kind of a joinery block, named by a join.

mortise_and_tenon half_lap cross_lap bridle box_joint dovetail_through dovetail_half_blind dowel pocket_hole biscuit domino tongue_and_groove edge_glue stile_and_rail miter butt sliding_dovetail hardware_mount round_tenon sliding_sleeve mitred_moulding

Stock shapes#

stock shape= values; rect is the default.

rect round ring

Anchors#

Nine points on each of the top and bottom faces plus the centre, named by by when placing a part.

top_sw top_se top_ne top_nw top_n top_s top_e top_w top_center bottom_sw bottom_se bottom_ne bottom_nw bottom_n bottom_s bottom_e bottom_w bottom_center center

Faces#

World and part-local directions: normal=, face=, front=.

pos_x neg_x pos_y neg_y pos_z neg_z

Grain#

grain= values; grain runs along the length unless stated.

lengthwise crosswise along_x along_y along_z

Word-valued properties#

A property with one of these keys holds a name or an enum word, never an expression: do not quote the value as a computation. Every other quoted value is a CEL expression.

to from export label category id name instance role material type screw_type slope profile fit section direction unit_display edges faces sides axis target normal joint male female units kind shape enter stop hardware path driver reference interp grain match lay pattern keep collection extends style requires solves body pivot wall design swing hinge plane a b reason on grain_check room opening of ridge rotate corner within offset_pin path_start path_end between high_side

Expression language#

A quoted string in a value position is a CEL expression (degrees, not radians). These names are available besides the project's own parameters. Operators, quoting and the units rules are in project-and-params.

Functions and constants: true false null sin cos tan asin acos atan atan2 floor ceil round abs min max sqrt pow inch ac_sealed_fc ac_sealed_qtc ac_port_length ac_helmholtz_fb

Refused (valid CEL that this language rejects with ww::eval::not_in_language): map filter all exists exists_one has size matches string int uint double bytes timestamp duration contains startsWith endsWith

Limits: an expression is at most 4096 bytes and 128 operators or brackets.

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