對驗證過的純文字 `.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 無法使用或啟動失敗,則回報此情況,而非默默省略交接。
工作流程
- 使用
$gcode產生並驗證純文字 G-code。
若未安裝切片軟體,請安裝 OrcaSlicer 並重試;不要將缺少切片軟體視為阻礙。在 macOS 上,建議使用brew install --cask orcaslicer。 - 設定印表機。使用者可在對話中提供 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 與開發者模式後,重新啟動電源再重試本機啟動指令。
- 在進行即時工作前,先讀取狀態:
python scripts/bambu_lan_print.py status \
--printer a1-mini \
--push-all \
--wait-seconds 10
- 乾執行確切的交接,檢查 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 搭配 PLA、ASA 或 PETG-CF 啟用。已知但尚未啟用(直到有驗證過的設定檔):a1-mini-0.4、a1-0.4、x1c-0.4 與 p1p-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: 83935248或0500-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。






