bambu-labs

bambu-labs

热门

对已验证的纯 `.gcode` 文件进行试运行、上传,并通过 Bambu LAN FTPS/MQTT 交接谨慎启动本地 Bambu Lab 打印任务。

9595Star
1058Fork
更新于 2026/7/11
SKILL.md
readonly只读
name
bambu-labs
description

对已验证的纯 `.gcode` 文件进行试运行、上传,并通过 Bambu LAN FTPS/MQTT 交接谨慎启动本地 Bambu Lab 打印任务。

Bambu Labs

来源:维护于 earthtojake/text-to-cad
使用本地安装的技能文件作为运行时真实来源;
仓库链接仅用于来源追溯和发布审查。

此技能用于在已有已验证的纯 .gcode 文件后,进行本地网络 Bambu Lab 打印交接。此技能不进行模型切片。

安全规则

  • 默认使用试运行计划。真实的打印机通信需要 --execute
  • 没有 --execute --confirm-start-print 绝不启动打印。
  • 暂停和取消控制是实时的打印机请求;默认使用试运行计划。
    取消打印需要 --execute --confirm-cancel-print
  • 将用户明确要求打印或启动特定作业视为实时启动授权;不要仅为了物理检查而暂停等待二次确认。仍需验证 G 代码、检查试运行负载、读取打印机状态、优先仅上传再上传启动、说明物理检查事项,并在验证/状态/意图不安全或模糊时停止。
  • 默认不询问打印机序列号;通过 serial 从打印机 TLS 证书获取,或让 send 缓存它。
  • 优先使用工作区根目录下的 bambu-printers.json,而不是在命令中重复访问码。该文件是本地配置,应被 Git 忽略。
  • 在实时启动前,说明物理检查事项:清理打印平台、正确的平台/耗材/喷嘴、安全的环境以及操作员在场。
  • 发布 MQTT 仅是启动请求。通过打印机状态/用户界面和物理观察确认接受。

CAD 查看器交接

在完成 Bambu 工作(创建或修改本地支持的打印工件,如 .gcode.3mf)后,如果安装了 $cad-viewer 技能,则必须始终将明确的文件路径交给 $cad-viewer$cad-viewer 必须启动 CAD 查看器(如果尚未运行),并返回相关创建或更新文件的链接;如果 $cad-viewer 不可用或启动失败,则报告该情况,而不是静默省略交接。

工作流程

  1. 使用 $gcode 生成并验证纯 G 代码。
    如果未安装切片器,请安装 OrcaSlicer 并重试;不要将缺少切片器视为阻塞。在 macOS 上,优先使用 brew install --cask orcaslicer
  2. 配置打印机。用户可以在对话中提供 IP/访问码并让代理写入 JSON,或直接编辑 bambu-printers.json
    对于新打印机设置或入网请求,请先阅读
    references/new-printer-onboarding.md。引导用户完成特定型号的触摸屏步骤以找到 IP 和 LAN 访问码,并在运行本地启动工作流程前明确启用 仅 LAN 模式开发者模式
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 上,在打印机触摸屏的网络/LAN 设置中找到 IP 和 LAN 访问码。启用仅 LAN 模式和开发者模式,然后重新通电后再重试本地启动命令。

  1. 在实时工作前读取状态:
python scripts/bambu_lan_print.py status \
  --printer a1-mini \
  --push-all \
  --wait-seconds 10
  1. 试运行确切的交接,检查 JSON 负载,然后仅运行上传。仅在上传成功后运行上传启动。如果用户明确要求打印或启动作业,则在验证、状态和上传检查通过后,继续执行 upload-start --execute --confirm-start-print。如果用户仅要求准备、切片、上传或审查,则在启动请求前停止。

交接模式

--handoff template-project 是本仓库 LAN 调试中验证过的 A1 Mini 路径。它从已验证的纯 .gcode 开始,复制一个已知良好的同打印机 .gcode.3mf 模板,替换 Metadata/plate_N.gcode,写入 plate MD5,将项目上传到 FTPS 根目录,并发布 print.project_file,其中 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

在用户明确要求打印或启动后,或在意图不明确时经过物理确认后,执行审查:

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 上,直接纯 G 代码上传成功,但 gcode_file 失败或被忽略,因此不要将其用作 A1 Mini 的实时启动路径。

--handoff bambox-project 使用 bambox 打包纯 .gcode,将 .gcode.3mf 项目上传到 FTPS 根目录,并发布 print.project_file。当前仅对 p1s-0.4PLAASAPETG-CF 启用。已知但已禁用直到验证配置文件存在:a1-mini-0.4a1-0.4x1c-0.4p1p-0.4

常见调试命令

获取/缓存序列号:

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

打印控制

对于正在进行的打印,使用专用的打印控制命令,而不是临时的 MQTT 片段。这些命令仅发布控制请求;它们不上传文件或启动新作业。执行后读取状态以确认打印机状态已更改。

试运行暂停负载:

python scripts/bambu_lan_print.py pause \
  --printer a1-mini

执行暂停并收集打印机报告:

python scripts/bambu_lan_print.py pause \
  --printer a1-mini \
  --execute \
  --mqtt-qos 1 \
  --wait-after-publish 10

试运行取消负载。发送到打印机的 Bambu LAN 命令是 stop

python scripts/bambu_lan_print.py cancel \
  --printer a1-mini

仅在用户明确要求取消/停止打印或意图模糊时经确认后执行取消:

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:纯 G 代码上传成功,但固件拒绝或忽略了直接的本地启动。对于 A1 Mini,切换到 template-project
  • 项目上传到 cache/ 后启动失败,出现 print_error: 839352480500-C010:清除错误,将项目交接上传到 FTPS 根目录,并使用 ftp:///<name>.gcode.3mf
  • file:///sdcard/cache/... 或本地 HTTP URL 看似被接受但未启动任何内容:停止在此工作流程中使用这些 URL 格式。
  • Bambu Studio 或 OrcaSlicer 项目导出在 macOS 上崩溃:不要继续重试 GUI 支持的项目导出。使用 OrcaSlicer 导出纯 .gcode,然后使用此技能进行交接。
  • 启用开发者模式后出现过时的 gcode_state: FAILED 或 HMS:清除打印机错误并重新通电后再重试。
  • FTPS 登录成功但上传失败,出现 553 或缺少 cache/:在 MQTT 启动前检查打印机存储/SD 卡状态。
  • MQTT 状态正常但启动未执行:确认序列号、访问码、开发者模式/仅 LAN 模式状态以及确切的交接负载后再重试。

阅读 references/new-printer-onboarding.md 了解新打印机设置,
references/local-lan-protocol.md 了解协议细节,以及
references/real-printer-checklist.md 了解在新打印机上首次实时使用前的检查清单。