gcode

gcode

熱門

透過調度真實切片器 CLI,從 3D 網格檔案產生、檢查、預演及靜態驗證純 FDM `.gcode`。當 Codex 需要將 `.stl`、`.obj`、未切片 `.3mf`、`.ply`、`.glb` 或 `.gltf` 切片成印表機設定檔的 G-code、探索本地切片器後端、檢查網格是否可切片,或在交給特定印表機前驗證產生的 G-code 時使用。

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

透過調度真實切片器 CLI,從 3D 網格檔案產生、檢查、預演及靜態驗證純 FDM `.gcode`。當 Codex 需要將 `.stl`、`.obj`、未切片 `.3mf`、`.ply`、`.glb` 或 `.gltf` 切片成印表機設定檔的 G-code、探索本地切片器後端、檢查網格是否可切片,或在交給特定印表機前驗證產生的 G-code 時使用。

G-code

來源:維護於 earthtojake/text-to-cad
使用已安裝的本地技能檔案作為執行階段的真相來源;儲存庫連結僅供來源追溯與版本審查。

此技能用於從網格檔案產生純 .gcode。它與印表機無關,絕不上傳、啟動或包裝列印工作。

工作流程

  1. 確認輸入為支援的網格格式:.stl.obj、未切片 .3mf.ply.glb.gltf
  2. 要求提供明確的印表機/設定檔包裝 JSON。請勿自行發明真實印表機設定檔。
  3. 當後端未知時探索切片器後端:
python scripts/gcode_tool.py discover
  1. 檢查輸入:
python scripts/gcode_tool.py inspect --input path/to/model.stl --json
  1. 在執行前預演切片指令:
python scripts/gcode_tool.py slice \
  --input path/to/model.stl \
  --output /tmp/model.gcode \
  --profile path/to/profile.json \
  --backend auto \
  --dry-run
  1. 僅在預演指令與設定檔合適後才執行:
python scripts/gcode_tool.py slice \
  --input path/to/model.stl \
  --output /tmp/model.gcode \
  --profile path/to/profile.json \
  --backend auto \
  --execute
  1. 驗證產生的 G-code:
python scripts/gcode_tool.py validate \
  --gcode /tmp/model.gcode \
  --profile path/to/profile.json \
  --json

CAD Viewer 交接

完成建立或修改純 .gcode 的 G-code 工作後,若已安裝 $cad-viewer 技能,你必須將明確的檔案路徑交給 $cad-viewer$cad-viewer 必須啟動 CAD Viewer(若尚未執行)並回傳相關已建立或更新檔案的連結;預覽僅供診斷用途,不取代此技能的靜態驗證。如果 $cad-viewer 無法使用或啟動失敗,請回報此情況,而非默默省略交接。

設定檔合約

每次切片都需要一個包裝設定檔 JSON,其中包含絕對的原生切片器設定檔路徑:

{
  "backend": "orcaslicer",
  "native_config": "/absolute/path/to/native-slicer-profile",
  "machine": {
    "name": "Example Printer",
    "bed_size_mm": [180, 180],
    "z_height_mm": 180,
    "motion_bounds_mm": {
      "x": [0, 180],
      "y": [0, 180],
      "z": [0, 180]
    }
  },
  "filament": {
    "type": "PLA",
    "nozzle_temp_c": 220,
    "bed_temp_c": 65
  }
}

包裝檔提供驗證邊界與後端選擇。machine.motion_bounds_mm 為選填;省略時使用預設的 0..bed_size0..z_height 邊界,或當起始/結束 G-code 刻意使用可列印區域外的安全擦拭/清除位置時,從原生印表機設定檔設定。原生切片器設定檔仍是詳細製程、印表機與線材行為的來源。

對於 OrcaSlicer,當真實設定檔分散於機器、製程與線材 JSON 檔案時,請使用 native_settingsnative_filaments。保留 native_config 作為主要原生設定檔的絕對路徑以維持相容性:

{
  "backend": "orcaslicer",
  "native_config": "/absolute/path/to/machine-or-process.json",
  "native_settings": [
    "/absolute/path/to/machine.json",
    "/absolute/path/to/process.json"
  ],
  "native_filaments": [
    "/absolute/path/to/filament.json"
  ],
  "machine": {
    "name": "Example Printer",
    "bed_size_mm": [180, 180],
    "z_height_mm": 180
  },
  "filament": {
    "type": "PLA",
    "nozzle_temp_c": 220,
    "bed_temp_c": 65
  }
}

後端與輸入

偏好的切片器後端順序為 orcaslicerprusa-slicer,然後 curaengine。當沒有偏好的後端可用時,建議安裝 OrcaSlicer;在 macOS 上使用 brew install --cask orcaslicer,然後重新執行 discover。輔助工具會檢查 PATH 以及常見的 /Applications/OrcaSlicer.app cask 位置。Bambu Studio 可能被探索工具回報為可用,但因其 CLI 匯出路徑在 macOS 上不穩定而不建議使用。

直接將 .stl.obj 與未切片 .3mf 傳給切片器。將 .ply.glb.gltf 在執行時轉換為暫存 STL,可選用 trimesh;若 trimesh 不可用,請要求使用者安裝或提供 .stl.obj 或未切片 .3mf

在 v1 中拒絕 .step.stp.dxf.svg.urdf.sdf。請使用現有的 CAD/渲染工作流程將這些格式轉換為支援的網格格式後再使用此技能。

當後端行為、設定檔預期或來源連結重要時,請參閱 references/slicer-backends.md

驗證

在將產生的 G-code 交給特定印表機工作流程前,務必進行驗證。驗證器會檢查非空內容、溫度指令、移動指令、擠出移動、XYZ 邊界以及未知指令警告。

在解讀驗證輸出或判斷警告是否可接受時,請參閱 references/gcode-validation.md

Bambu 邊界

此技能僅產生純 .gcode。它不會建立 Bambu .gcode.3mf 封存檔,也不會聯絡印表機。對於 Bambu 上傳/啟動工作流程,請將驗證過的純 .gcode 交給 $bambu-labs。讓 $bambu-labs 選擇特定印表機的區域網路交接方式,例如 A1 Mini 範本專案或明確啟用的 bambox 專案封裝。