Worktops and plinths
A kitchen’s worktop is one slab over four cabinets. No cabinet owns it, and no recipe can produce it: its length is the sum of four modules and two overhangs, and it exists only because those four ended up standing next to each other.
So it is not in your recipe. What is in your recipe is one line saying that a worktop is allowed to cross this cabinet.
The slot is the whole of it
Section titled “The slot is the whole of it”"materialSlots": ["body", "front", "back", "worktop", "plinth"],"materialDefaults": { "body": "oak_natural", "front": "white_matte", "back": "hdf_white", "worktop": "worktop_stone_grey", "plinth": "plinth_board"}Your cabinet contains neither a worktop nor a toe kick. The worktop slot means
“a worktop crosses me, and this is what it is made of”; the row takes the slot
from its first cabinet. A chair has no such slot and takes no worktop, and that
is the entire compatibility test — there is no second list of worktop-capable
modules for anybody to keep in step with this one.
A recipe without the slot never joins a row. Not an error, not a warning: the cabinet is simply not one a worktop goes over, which is right for a wall unit and wrong for a base unit, and nothing on screen distinguishes the two. Every shipped recipe once lacked it, and the whole feature was inert — built, tested and drawing nothing — until somebody put five words in a fixture.
Wall units and open shelving are the cases that should NOT have it. A stone slab across a bookcase is what happens when a row sweeps up everything standing in a line.
What makes a row
Section titled “What makes a row”Neighbouring floor modules, facing the same way, standing on one line, with no more than 3 mm between them.
All four conditions matter, and the last three are what stop a row that is not a row:
- Facing. At the corner of an L the two runs meet at ninety degrees and their cabinets are as close as any two in one row. A single slab over both would be one rectangle covering the inside of the corner — over the floor, through the wall, impossible to cut. Each run gets its own.
- One line. Two cabinets on opposite walls of a galley kitchen are nearer to each other than to their own neighbours.
- 3 mm. A kitchen is set out with millimetre gaps between carcasses. A row that broke at the first of them would make one slab per cabinet — and four joints a customer can see.
A row is a computed thing, not a node of the graph. Nothing is saved about it except what somebody deliberately changed, and it re-forms from wherever the cabinets are standing the moment they move.
What a row produces
Section titled “What a row produces”Per row, in the specification and on the screen:
| part | role | cut | comes out as |
|---|---|---|---|
| the slab | worktop |
yes | one blank, row length by cabinet depth plus overhangs |
| the toe kick | plinth |
yes | one board along the front, set back from it |
| the edge | worktop / plinth |
no | a moulding swept along the front, when a section is named |
The slab and the kick are cut from sheets and appear in the cut list as blanks. The moulding is not: it is bought by the running metre, and nesting a 2400 × 40 strip as a rectangle would order a sheet of stone to make it.
Overhangs, and the numbers you did not set
Section titled “Overhangs, and the numbers you did not set”Defaults, all of them conventions rather than measurements:
| front overhang | 30 mm |
| back, left, right | 0 mm |
| slab thickness | the material’s, or 38 mm |
| toe kick | 100 mm tall, 16 mm board, set back 50 mm |
The thickness comes from the material you actually bought. A shop on 40 mm postforming gets a 40 mm slab; the 38 is only what happens when the catalogue has nothing to say. Price is computed from square metres and geometry from this number, so a default that overrode the catalogue would make the two disagree by two millimetres with nothing on screen to show it — and the first person to notice would be whoever fitted the sink.
Front and back are measured from the doors, not from a world axis. A row facing the other way still stands 30 mm proud of its own fronts.
Changing one row
Section titled “Changing one row”"runs": [ { "nodes": ["n3", "n4", "n5"], "worktop": { "overhangFront": 40, "profile": "cornice_chamfer" } }]The stored nodes point at a row rather than define one. A shop that set 40 mm and then added a cabinet to the end of that row meant the row, and the override follows it. Omit the whole entry when the defaults are right — that is why nothing is stored for an ordinary kitchen.
profile names a section from the catalogue and produces the swept moulding in
the table above. It goes on the front edge, along the row.
The sink
Section titled “The sink”"worktop": { "sink": { "at": 900, "width": 600, "depth": 500, "fromFront": 45, "cornerRadius": 20 }}Measured from the slab’s own corner, not from the row’s first cabinet: the
opening travels to the machine in the blank’s coordinates, and any other origin
needs a conversion happening somewhere nobody can see it. at runs along the
slab from its left edge; fromFront from the edge the doors are on.
Corners are flattened to a 0.5 mm chord tolerance and at most 64 points — the same rule an imported profile gets, so the two cannot disagree about a corner in a worktop at the machine. A 20 mm radius comes out at four segments a corner.
The opening reaches the DXF on its own CUTOUT layer, never on the blank’s: the
panel outline and the sink are two toolpaths with different tools and usually a
different order, and merged into one layer a postprocessor told to cut the
blanks would drop the worktop on the floor with the sink still in it.