其他
已有已验证 plain .gcode 时,通过局域网安全…
在本地网络 Bambu Lab 打印机上,对已生成并验证的纯 .gcode 做 dry-run、上传,并在明确授权后谨慎启动打印;不负责切片模型。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
已有已验证 plain .gcode 时特定
解决思路
- 默认只做 dry-run 计划;要产生真实打印机流量必须加 `--execute`。
- 没有 `--execute --confirm-start-print` 绝不启动打印。
- 暂停和取消控制都是实时打印机请求;默认只做 dry-run 计划;取消打印需要 `--execute --confirm-cancel-print`。
- 把用户明确要求打印或启动特定任务视为实时启动授权;不要仅为物理检查再次确认;但仍要验证 G-code、检查 dry-run payload、读取打印机状态、优先 upload-only 再 upload-start、说明物理检查,并在验证/状态/意图不安全或含糊时停止。
- 默认不要询问打印机 serial;用 `serial` 从打印机 TLS 证书获取,或让 `send` 缓存它。
- 优先使用 workspace-root `bambu-printers.json`,避免在命令中重复 access codes;该文件是本地配置,应被 Git 忽略。
- 实时启动前说明物理检查:build plate 干净、plate/filament/nozzle 正确、周围安全、操作者在附近。
- 发布 MQTT 只是启动请求;用打印机状态/UI 和物理观察确认已被接受。
- 完成会创建或修改本地 `.3mf` 打印产物的 Bambu 工作后,若安装了 `$cad-viewer`,必须始终把显式文件路径交给 `$cad-viewer`。
- CAD Viewer 不打开 `.gcode`,所以纯 G-code 产物无需交接。
- 若 `$cad-viewer` 已安装,`$cad-viewer` 必须启动 CAD Viewer(若未运行)并返回相关创建或更新文件的链接;如果 `$cad-viewer` 不可用或启动失败,报告此事,不要静默省略交接。
- 用 `$gcode` 生成并验证 plain G-code。
- 若未安装 slicer,安装 OrcaSlicer 并重试;不要将缺少 slicer 视为阻塞;macOS 优先 `brew install --cask orcaslicer`。
- 配置打印机:用户可在 thread 中给 IP/access code 并让 agent 写 JSON,或直接编辑 `bambu-printers.json`。
- 对新打印机设置或 onboarding 请求,先读 `references/new-printer-onboarding.md`。
- 引导用户完成型号特定触摸屏步骤以找到 IP 和 LAN access code,并在运行本地启动工作流前明确启用 LAN Only 和 Enable Developer Mode。
- 运行配置命令:`python scripts/bambu_lan_print.py config set --printer a1-mini --host 192.168.1.34 --access-code 12345678 --model a1-mini --fetch-serial`。
- 手动 JSON 形状:printers 下为 a1-mini,包含 host=192.168.1.34、access_code=12345678、model=a1-mini。
- 在 A1/A1 Mini 上,从打印机触摸屏的 network/LAN 设置中找到 IP 和 LAN access code;提供选项时启用 LAN Only 和 Developer Mode,然后 power-cycle 再重试本地启动命令。
- 实时工作前读取状态:`python scripts/bambu_lan_print.py status --printer a1-mini --push-all --wait-seconds 10`。
- 对确切 handoff 做 dry-run,检查 JSON payload,然后运行 upload-only。
- 只有 upload 成功后,才运行 upload-start。
- 如果用户明确要求打印或启动任务,在 validation、status 和 upload 检查通过后,继续 `upload-start --execute --confirm-start-print`。
- 如果用户只要求准备、切片、上传或审查,在启动请求前停止。
- `--handoff template-project` 是 A1 Mini 路径,已针对真实打印机通过 LAN 验证;它从已验证 plain `.gcode` 开始,复制已知良好的同打印机 `.gcode.3mf` 模板,替换 `Metadata/plate_N.gcode`,写入 plate MD5,上传 project 到 FTPS root,并发布 `print.project_file`,其中 `url: ftp:///<name>.gcode.3mf`。
- 使用 template-project 的 send 示例:`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`。
- 当用户明确要求打印或启动,或在意图不清但物理确认后,执行示例:`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` 上传 `cache/<name>.gcode` 并发布 `print.gcode_file`;保留它用于诊断或已知可用的打印机/固件。
- 在已测试 A1 Mini 上,直接 plain G-code 上传成功但 `gcode_file` 失败或被忽略,因此不要将其作为 A1 Mini 实时启动路径。
- `--handoff bambox-project` 用 `bambox` 打包 plain `.gcode`,上传 `.gcode.3mf` project 到 FTPS root,并发布 `print.project_file`。
- `--handoff bambox-project` 目前仅对 `p1s-0.4` 搭配 `PLA`、`ASA` 或 `PETG-CF` 启用;已知但禁用直到有验证 profile:`a1-mini-0.4`、`a1-0.4`、`x1c-0.4` 和 `p1p-0.4`。
- 获取/缓存 serial:`python scripts/bambu_lan_print.py serial --printer a1-mini --json`。
- 修复底层原因后清除过期打印机错误:`python scripts/bambu_lan_print.py clear-error --printer a1-mini --execute`。
- 调试打印机是否确认 MQTT 发布以及发布后立即报告什么状态时,在 `send` 上使用 `--mqtt-qos 1 --wait-after-publish 10`。
- 对正在运行的打印,使用专用 print-control 命令而不是临时 MQTT 片段;这些命令只发布控制请求,不上传文件或启动新任务。
- 执行 print-control 后读取状态以确认打印机状态已改变。
- Dry-run pause payload:`python scripts/bambu_lan_print.py pause --printer a1-mini`。
- 执行 pause 并收集打印机报告:`python scripts/bambu_lan_print.py pause --printer a1-mini --execute --mqtt-qos 1 --wait-after-publish 10`。
- Dry-run cancel payload;发给 Bambu LAN 打印机的命令是 `stop`:`python scripts/bambu_lan_print.py cancel --printer a1-mini`。
- 仅在用户明确要求取消/停止打印时,或意图含糊时确认后,执行 cancel:`python scripts/bambu_lan_print.py cancel --printer a1-mini --execute --confirm-cancel-print --mqtt-qos 1 --wait-after-publish 10`。
- 若 `gcode_file` 返回 `result: fail` 或使打印机处于 `IDLE`:plain G-code 上传成功,但固件拒绝或忽略直接本地启动;对 A1 Mini 切换到 `template-project`。
- 若 project 上传到 `cache/` 下后启动然后失败并出现 `print_error: 83935248` 或 `0500-C010`:清除错误,将 project handoffs 上传到 FTPS root,并使用 `ftp:///<name>.gcode.3mf`。
- 若 `file:///sdcard/cache/...` 或本地 HTTP URL 看似被接受但没有任何启动:停止对此工作流使用这些 URL 形式。
- 若 Bambu Studio 或 OrcaSlicer project export 在 macOS 上崩溃:不要继续重试 GUI-backed project export;对 plain `.gcode` 使用 OrcaSlicer,然后用此 skill 做 handoff。
- 若启用 Developer Mode 后出现 stale `gcode_state: FAILED` 或 HMS:清除打印机错误并 power-cycle 后再重试。
- 若 FTPS 登录成功但上传失败并出现 `553` 或缺少 `cache/`:在 MQTT start 前检查打印机存储/SD 卡状态。
- 若 MQTT 状态可用但 start 不工作:重试前确认 serial、access code、Developer Mode/LAN Only 状态和确切 handoff payload。
- 阅读 `references/new-printer-onboarding.md` 了解新打印机设置,阅读 `references/local-lan-protocol.md` 了解协议细节,并在新打印机首次实时使用前阅读 `references/real-printer-checklist.md`。
适用边界 · 注意事项
- 尚未生成并验证 plain `.gcode` 时不要使用;本技能不负责切片模型。
- 用户只要求准备、切片、上传或审查时,不要运行 `upload-start --execute --confirm-start-print`。
- 对已测试 A1 Mini,不要将 `--handoff plain` 作为实时启动路径;不要使用 `file:///sdcard/cache/...` 或本地 HTTP URL 形式。