Skip to main content

gcode

通过编排真正的切片器 CLI,从 3D 网格文件生成、检查、试运行和静态验证纯 FDM“.gcode”。当 Codex 需要将“.stl”、“.obj”、未切片的“.3mf”、“.ply”、“.glb”或“.gltf”切片为打印机配置文件的 G 代码、发现本地切片器后端、检查网格是否已准备好切片或在任何特定于打印机的切换之前验证生成的 G 代码时使用。

설치로 이동

소스 정보

저장소
zzz2929/skills-zh-CN
최근 소스 활동
2026년 9월 2일 08:55
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
6 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
gcode
description
通过编排真正的切片器 CLI,从 3D 网格文件生成、检查、试运行和静态验证纯 FDM“.gcode”。当 Codex 需要将“.stl”、“.obj”、未切片的“.3mf”、“.ply”、“.glb”或“.gltf”切片为打印机配置文件的 G 代码、发现本地切片器后端、检查网格是否已准备好切片或在任何特定于打印机的切换之前验证生成的 G 代码时使用。
# G-code Provenance: maintained in [earthtojake/text-to-cad](https://github.com/earthtojake/text-to-cad). Use the installed local skill files as the runtime source of truth; the repository link is only for provenance and release review. Use this skill for plain `.gcode` generation from mesh files. It is printer-agnostic and never uploads, starts, or packages print jobs. ## Workflow 1. Confirm the input is a supported mesh: `.stl`, `.obj`, unsliced `.3mf`, `.ply`, `.glb`, or `.gltf`. 2. Require an explicit printer/profile wrapper JSON. Do not invent real-printer profiles. 3. Discover slicer backends when the backend is unknown: ```bash python scripts/gcode_tool.py discover ``` 4. Inspect the input: ```bash python scripts/gcode_tool.py inspect --input path/to/model.stl --json ``` 5. Dry-run the slicer command before executing: ```bash python scripts/gcode_tool.py slice \ --input path/to/model.stl \ --output /tmp/model.gcode \ --profile path/to/profile.json \ --backend auto \ --dry-run ``` 6. Execute only after the dry-run command and profile are appropriate: ```bash python scripts/gcode_tool.py slice \ --input path/to/model.stl \ --output /tmp/model.gcode \ --profile path/to/profile.json \ --backend auto \ --execute ``` 7. Validate the generated G-code: ```bash python scripts/gcode_tool.py validate \ --gcode /tmp/model.gcode \ --profile path/to/profile.json \ --json ``` ## Profile Contract Every slice requires a wrapper profile JSON with an absolute native slicer profile path: ```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 } } ``` The wrapper supplies validation bounds and backend selection. `machine.motion_bounds_mm` is optional; omit it for the default `0..bed_size` and `0..z_height` bounds, or set it from a native printer profile when start/end G-code intentionally uses safe wipe/purge positions outside the printable area. The native slicer profile remains the source of detailed process, printer, and filament behavior. For OrcaSlicer, use `native_settings` and `native_filaments` when the real profile is split across machine, process, and filament JSON files. Keep `native_config` as an absolute path to the primary native profile for compatibility: ```json { "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 } } ``` ## Backends And Inputs Preferred slicer backend order is `orcaslicer`, `prusa-slicer`, then `curaengine`. Prefer installing OrcaSlicer when no preferred backend is available; on macOS use `brew install --cask orcaslicer` and then rerun `discover`. The helper checks both `PATH` and the usual `/Applications/OrcaSlicer.app` cask location. Bambu Studio may be reported by discovery as available but is not preferred because its CLI export path has shown macOS instability. Pass `.stl`, `.obj`, and unsliced `.3mf` directly to the slicer. Convert `.ply`, `.glb`, and `.gltf` to temporary STL at execution time with optional `trimesh`; if `trimesh` is unavailable, ask the user to install it or provide `.stl`, `.obj`, or unsliced `.3mf`. Reject `.step`, `.stp`, `.dxf`, `.svg`, `.urdf`, and `.sdf` in v1. `inspect` and `slice` fail with a structured `remediation` object naming the skill and command that produce a sliceable mesh; use it instead of inferring a conversion workflow: - `.step`, `.stp`: boundary-representation CAD, not a mesh. Export an STL sidecar with `$cad` (`python scripts/export <input> --stl <output>.stl`, or target the generator with `python scripts/export <model>.step.py --stl <output>.stl`), then slice the exported `.stl` here. - `.dxf`, `.svg`: 2D drawings with no 2D-to-mesh conversion in this toolchain. Model the 3D solid in `$cad` with `gen_step()` and export an STL sidecar, then slice that. If the part is a flat cut rather than a print, use `$sendcutsend` instead of this skill. - `.urdf`, `.sdf`: robot descriptions that reference per-link mesh files. Slice the referenced `.stl`/`.obj` meshes one at a time; regenerate stale or missing ones from the owning CAD source with `$cad` first. Use `$urdf` or `$sdf` for the robot description itself. Read `references/slicer-backends.md` when backend behavior, profile expectations, or source links matter. ## Validation Always validate generated G-code before handing it to printer-specific workflows. The validator checks for non-empty content, temperature commands, movement commands, extrusion moves, XYZ bounds, and unknown command warnings. Read `references/gcode-validation.md` when interpreting validation output or deciding whether a warning is acceptable. ## Bambu Boundary This skill generates plain `.gcode` only. It does not create Bambu `.gcode.3mf` archives and does not contact printers. For Bambu upload/start workflows, hand off the validated plain `.gcode` to `$bambu-labs`. Let `$bambu-labs` choose the printer-specific LAN handoff, such as an A1 Mini template project or an explicitly enabled bambox project package.
GitHub에서 보기