Help us improve
Share bugs, ideas, or general feedback.
From cad
Dry-runs, uploads, and initiates Bambu Lab 3D print jobs from validated .gcode files over LAN using FTPS/MQTT handoffs, with safety confirmations.
npx claudepluginhub earthtojake/text-to-cad --plugin cadHow this skill is triggered — by the user, by Claude, or both
Slash command
/cad:bambu-labsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill for local-network Bambu Lab print handoffs after a plain `.gcode`
Generates, inspects, dry-runs, and validates FDM .gcode from 3D mesh files by orchestrating real slicer CLIs. Use when slicing STL/OBJ/3MF/PLY/GLB/GLTF into printer-profiled G-code.
Diagnoses common 3D printing failures through structured symptom analysis. Covers adhesion, stringing, layer shifts, warping, and extrusion issues for FDM and SLA printers.
Automates Printautopilot print shop operations via Rube MCP (Composio). Discovers tool schemas and manages connections for execution.
Share bugs, ideas, or general feedback.
Use this skill for local-network Bambu Lab print handoffs after a plain .gcode
file already exists and has been validated. This skill does not slice models.
--execute.--execute --confirm-start-print.--execute --confirm-cancel-print.serial or let send cache it.bambu-printers.json over repeating access codes in commands. The file is local config and should be ignored by Git.After completing Bambu work that creates or modifies a local supported print artifact such as .gcode or .3mf, you must ALWAYS hand the explicit file path to $cad-viewer when that skill is installed. $cad-viewer must start CAD Viewer if it is not already running and return link(s) to the relevant created or updated file(s); if $cad-viewer is unavailable or startup fails, report that instead of silently omitting the handoff.
$gcode.
If no slicer is installed, install OrcaSlicer and retry; do not treat the missing slicer as a blocker. On macOS, prefer brew install --cask orcaslicer.bambu-printers.json directly.
For a new printer setup or onboarding request, read
references/new-printer-onboarding.md first. Walk the user through the
model-specific touchscreen steps to find the IP and LAN access code, and make
Enable LAN Only plus Enable Developer Mode explicit before running
local start workflows.python scripts/bambu_lan_print.py config set \
--printer a1-mini \
--host 192.168.1.34 \
--access-code 12345678 \
--model a1-mini \
--fetch-serial
Manual JSON shape:
{
"printers": {
"a1-mini": {
"host": "192.168.1.34",
"access_code": "12345678",
"model": "a1-mini"
}
}
}
On A1/A1 Mini, find the IP and LAN access code on the printer touchscreen under network/LAN settings. Enable LAN Only and Developer Mode when offered, then power-cycle before retrying local start commands.
python scripts/bambu_lan_print.py status \
--printer a1-mini \
--push-all \
--wait-seconds 10
upload-start --execute --confirm-start-print after the validation, status, and upload checks pass. If
the user only asked to prepare, slice, upload, or review, stop before the start
request.--handoff template-project is the validated A1 Mini path from this repo's LAN
debugging. It starts from validated plain .gcode, copies a known-good
same-printer .gcode.3mf template, replaces Metadata/plate_N.gcode, writes
the plate MD5, uploads the project to the FTPS root, and publishes
print.project_file with url: ftp:///<name>.gcode.3mf.
python scripts/bambu_lan_print.py send \
--printer a1-mini \
--gcode /tmp/job.gcode \
--handoff template-project \
--template-project /path/to/same-printer-template.gcode.3mf \
--action upload-start
Execute after review when the user explicitly asked to print or start, or after physical confirmation when intent is unclear:
python scripts/bambu_lan_print.py send \
--printer a1-mini \
--gcode /tmp/job.gcode \
--handoff template-project \
--template-project /path/to/same-printer-template.gcode.3mf \
--action upload-start \
--execute \
--confirm-start-print
--handoff plain uploads cache/<name>.gcode and publishes
print.gcode_file. Keep it for diagnostics or printers/firmware where this is
known to work. On the tested A1 Mini, direct plain G-code was uploaded
successfully but gcode_file failed or was ignored, so do not use it as the
A1 Mini live-start path.
--handoff bambox-project packages plain .gcode with bambox, uploads the
.gcode.3mf project to FTPS root, and publishes print.project_file.
Currently enabled only for p1s-0.4 with PLA, ASA, or PETG-CF.
Known but disabled until validated profiles exist: a1-mini-0.4, a1-0.4,
x1c-0.4, and p1p-0.4.
Fetch/cache serial:
python scripts/bambu_lan_print.py serial \
--printer a1-mini \
--json
Clear a stale printer error after fixing the underlying cause:
python scripts/bambu_lan_print.py clear-error \
--printer a1-mini \
--execute
Use --mqtt-qos 1 --wait-after-publish 10 on send when debugging whether the
printer acknowledged the MQTT publish and what status it reported immediately
afterward.
For a running print, use dedicated print-control commands rather than ad hoc MQTT snippets. These commands publish only a control request; they do not upload files or start a new job. Read status after execution to confirm the printer state changed.
Dry-run pause payload:
python scripts/bambu_lan_print.py pause \
--printer a1-mini
Execute pause and collect printer reports:
python scripts/bambu_lan_print.py pause \
--printer a1-mini \
--execute \
--mqtt-qos 1 \
--wait-after-publish 10
Dry-run cancel payload. The Bambu LAN command sent to the printer is stop:
python scripts/bambu_lan_print.py cancel \
--printer a1-mini
Execute cancel only when the user explicitly asks to cancel/stop the print or after confirmation when intent is ambiguous:
python scripts/bambu_lan_print.py cancel \
--printer a1-mini \
--execute \
--confirm-cancel-print \
--mqtt-qos 1 \
--wait-after-publish 10
gcode_file returns result: fail or leaves the printer IDLE: plain G-code upload worked, but the firmware rejected or ignored direct local start. For A1 Mini, switch to template-project.cache/ starts then fails with print_error: 83935248 or 0500-C010: clear the error, upload project handoffs to FTPS root, and use ftp:///<name>.gcode.3mf.file:///sdcard/cache/... or local HTTP URLs appear accepted but nothing starts: stop using those URL forms for this workflow..gcode, then this skill for handoff.gcode_state: FAILED or HMS after enabling Developer Mode: clear the printer error and power-cycle before retrying.553 or missing cache/: check printer storage/SD card status before MQTT start.Read references/new-printer-onboarding.md for new printer setup,
references/local-lan-protocol.md for protocol details, and
references/real-printer-checklist.md before first live use on a new printer.