// starts a comment
- Text from
// to the end of the line is a comment. color red // the colour of the cube. Block comments between /* and */ still work, and Ctrl+/ in the editor now
toggles // on the selected lines. - No floor division.
// no longer divides and rounds down;
write floor(a / b). The remainder % is unchanged and agrees with
it: a is floor(a / b) * b + a % b.
Labels and setters before on
- A label and one-shot setters may stand before the
on of their solid. plate: color red on #front cube 10 is on #front plate: color red cube 10, so a label can start its line. Setters
before a face list reach every item; a label cannot stand there, since a face list builds
a volume on each face.
Build planes inside braces are named through root
- Before the first solid of a compound or macro body,
on root #front selects its
build plane. A bare on #front there is now an error: it read as the front of the volume
outside the braces, which on never reaches. To place the whole compound
against that face, write on #front { … }. At the top level the bare
form still works.
STL export from the CLI
-o model.stl writes a binary STL. It holds geometry only, with
no colors or part names; use 3MF to keep them.
Slow shells wait to be asked for
- A shell that needs a slow general computation is left out, not waited for. The CLI builds the solid unhollowed and warns on the shell's line;
--slow builds it, which can take minutes. With --strict the warning fails, so a checked
model is never one short of a shell. - The editor preview goes on past such a shell too, so the volumes after it still show; Render builds the whole model.
Updating older scripts: replace a // b with floor(a / b). Left as it is, the rest of the line becomes a comment. Replace a
bare face that begins a compound or macro body, such as { on #front …, with on root #front.