bambu-labs

bambu-labs

熱門

對驗證過的純文字 `.gcode` 進行乾執行、上傳,並謹慎地透過 Bambu LAN FTPS/MQTT 交接啟動本機 Bambu Lab 列印工作。

9595星標
1058分支
更新於 2026/7/11
SKILL.md
唯讀
名稱
bambu-labs
描述

對驗證過的純文字 `.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-code、檢查乾執行負載、讀取印表機狀態、優先上傳而非上傳後啟動、說明實體檢查事項,並在驗證/狀態/意圖不安全或不明確時停止。
  • 預設不要求提供印表機序號;可透過 serial 從印表機 TLS 憑證取得,或讓 send 快取。
  • 優先使用工作區根目錄的 bambu-printers.json,而非在指令中重複輸入存取碼。該檔案為本機設定檔,應被 Git 忽略。
  • 在即時啟動前,說明實體檢查事項:清空列印平台、確認平台/線材/噴嘴正確、環境安全、操作人員在旁。
  • 發布 MQTT 僅為啟動請求。需透過印表機狀態/UI 及實體觀察確認接受。

CAD Viewer 交接

完成 Bambu 工作(建立或修改本機支援的列印成品,如 .gcode.3mf)後,若已安裝 $cad-viewer 技能,則必須將明確的檔案路徑交給 $cad-viewer$cad-viewer 必須啟動 CAD Viewer(若尚未執行),並回傳相關新建或更新檔案的路徑;若 $cad-viewer 無法使用或啟動失敗,則回報此情況,而非默默省略交接。

工作流程

  1. 使用 $gcode 產生並驗證純文字 G-code。
    若未安裝切片軟體,請安裝 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-code 成功,但 gcode_file 失敗或未被忽略,因此請勿將其作為 A1 Mini 的即時啟動路徑。

--handoff bambox-project 使用 bambox 打包純文字 .gcode,將 .gcode.3mf 專案上傳至 FTPS 根目錄,並發布 print.project_file。目前僅對 p1s-0.4 搭配 PLAASAPETG-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

send 上使用 --mqtt-qos 1 --wait-after-publish 10 來除錯印表機是否確認了 MQTT 發布,以及隨後立即回報的狀態。

列印控制

對於正在進行的列印,請使用專用的列印控制指令,而非臨時的 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-code 上傳成功,但韌體拒絕或忽略了直接本機啟動。對於 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