From 407818aa59176d570966d80fbbf584eeb8c0a4fb Mon Sep 17 00:00:00 2001 From: Matt Voska Date: Fri, 6 Nov 2026 17:01:20 -0300 Subject: [PATCH 1/2] docs: document print defaults and batch clearance --- CHANGELOG.md | 1 + skills/bambu/SKILL.md | 6 ++++++ skills/bambu/references/COMMANDS.md | 8 +++++--- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b03e1b..52643ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ JSON field names and exit codes are part of the public API. - job: `filament_changes` ### Changed +- Update the agent skill and command reference for timelapse defaults and overrides, separate-model arrangement with at least 3 mm spacing, and strict/dry-run X1C startup-clearance refusal. - `print send` records a timelapse by default. - `preflight` `single_filament` now fails only when the number of `--slot`s differs from the number of filaments in the plate. Single-filament jobs send the same payload as before. diff --git a/skills/bambu/SKILL.md b/skills/bambu/SKILL.md index 59911f2..26345d0 100644 --- a/skills/bambu/SKILL.md +++ b/skills/bambu/SKILL.md @@ -61,6 +61,12 @@ bambu monitor --snapshot-at-layer 2 --json # NDJSON events; **Slots** are `1`–`4` (first AMS) or `A1`–`D4`. Preflight checks that the slot's filament type matches the sliced one. +**Timelapse:** `print send` records by default. `[print] timelapse = false` changes the config default; `--timelapse` or `--no-timelapse` overrides it for one print. Explicit `--timelapse=false` is supported; do not combine the two flags. + +**Batches:** pass separate inputs to `slice` instead of hand-merging them. Studio arranges one plate with `--part-spacing` (default/minimum 3 mm), preserving orientation unless `--auto-orient` is explicit. Batches that need several plates or lose objects fail before output is published. Summary `models` lists inputs; `model` remains the first input. + +**X1C startup clearance:** preflight reads layer-1 object lines and arcs after slicing and rejects the X18–240 / Y0–12 front strip and X0–18 / Y0–28 corner, expanded by 1 mm. Collisions FAIL. Missing layer/object markers or unsupported coordinates/arcs are NOT VERIFIED and FAIL in strict checks or send dry runs. A busy-printer failure remains independent of the geometry result. Never send a plate with a failed gate. + **Checked spool amount:** when a person reports a physically checked amount and AMS remaining telemetry is wrong, pass that amount (e.g. `--filament-remaining A2=50g`) to both the dry-run and send. Use the same amount in both and repeat per checked slot. It applies only to that invocation. Sufficient estimates WARN with the stated amount and original AMS reading, including with `--strict`; report that WARN. Insufficient estimates still FAIL against the existing requirement of job grams × 1.15 + 5 g (15% + 5 g reserve). Other gates remain enforced. **Two colours, changing at a layer height** (the AMS swaps by itself, from the G-code): diff --git a/skills/bambu/references/COMMANDS.md b/skills/bambu/references/COMMANDS.md index 5fc869e..d3ef859 100644 --- a/skills/bambu/references/COMMANDS.md +++ b/skills/bambu/references/COMMANDS.md @@ -111,7 +111,8 @@ Upload a sliced file and start it (requires --confirm and a passing preflight). | `--filament-remaining` | []string | | Grams left on a spool you checked, e.g. A2=50g, for this invocation only. Repeat per slot; sufficient estimates WARN (also with --strict), insufficient estimates FAIL. | | `--confirm` | bool | | Required to actually print. Only pass it after a human approved this exact file and confirmed the plate is clear. | | `--dry-run, -n` | bool | | Run preflight and show the exact upload path and MQTT payload; send nothing. | -| `--timelapse` | bool | | Record a timelapse. | +| `--timelapse` | bool | config, else true | Record a timelapse. Explicit --timelapse=false is supported. | +| `--no-timelapse` | bool | false | Disable recording for this print. Cannot combine with --timelapse. | | `--wait` | time.Duration | 180s | How long to wait for the job to start. | ### `bambu print stop` @@ -171,9 +172,9 @@ Show one recipe. Dump the command tree as JSON for agents. -### `bambu slice ` +### `bambu slice ...` -Slice a model headlessly with Bambu Studio and a recipe. +Slice separate models on one plate using Bambu Studio and a recipe. Studio arranges batches with at least 3 mm between objects. Stored orientation is kept unless --auto-orient is explicit. | flag | type | default | help | |---|---|---|---| @@ -184,6 +185,7 @@ Slice a model headlessly with Bambu Studio and a recipe. | `--set, -s` | []string | | Override a Bambu Studio setting: key=value (repeatable). | | `--name, -n` | string | | Output base name (default -). | | `--out, -o` | string | | Output directory (default: config output_dir, else current dir). | +| `--part-spacing` | float64 | 3 | Minimum spacing between batch objects in mm; must be finite and at least 3. | | `--auto-orient` | bool | | Let the slicer re-orient the model (default: keep the model's orientation). | ### `bambu slicer info` From 8628ba03ca9c2b8fb4e7d114392f3c9c08b54ed1 Mon Sep 17 00:00:00 2001 From: Matt Voska Date: Fri, 6 Nov 2026 17:05:24 -0300 Subject: [PATCH 2/2] docs: state the batch object-count check precisely --- skills/bambu/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skills/bambu/SKILL.md b/skills/bambu/SKILL.md index 26345d0..4b6a051 100644 --- a/skills/bambu/SKILL.md +++ b/skills/bambu/SKILL.md @@ -63,7 +63,7 @@ bambu monitor --snapshot-at-layer 2 --json # NDJSON events; **Timelapse:** `print send` records by default. `[print] timelapse = false` changes the config default; `--timelapse` or `--no-timelapse` overrides it for one print. Explicit `--timelapse=false` is supported; do not combine the two flags. -**Batches:** pass separate inputs to `slice` instead of hand-merging them. Studio arranges one plate with `--part-spacing` (default/minimum 3 mm), preserving orientation unless `--auto-orient` is explicit. Batches that need several plates or lose objects fail before output is published. Summary `models` lists inputs; `model` remains the first input. +**Batches:** pass separate inputs to `slice` instead of hand-merging them. Studio arranges one plate with `--part-spacing` (default/minimum 3 mm), preserving orientation unless `--auto-orient` is explicit. Batches that need several plates or produce fewer plate objects than input files fail before output is published. Check every expected part and quantity in the preview and summary. Summary `models` lists inputs; `model` remains the first input. **X1C startup clearance:** preflight reads layer-1 object lines and arcs after slicing and rejects the X18–240 / Y0–12 front strip and X0–18 / Y0–28 corner, expanded by 1 mm. Collisions FAIL. Missing layer/object markers or unsupported coordinates/arcs are NOT VERIFIED and FAIL in strict checks or send dry runs. A busy-printer failure remains independent of the geometry result. Never send a plate with a failed gate.