gcode
此技能通过编排真实切片器CLI,从3D网格文件生成、检查、干运行并静态验证FDM .gcode。它能将.stl、.obj、未切片的.3mf、.ply、.glb或.gltf等多种3D模型转换为符合打印机配置的G代码,发现本地切片器后端,检查网格是否可切片,并在任何打印机交接前验证生成的G代码,从而简化3D打印准备流程。
npx skills add https://github.com/earthtojake/text-to-cad --skill gcodeBefore / After 效果对比
1 组用户需要手动将3D模型文件转换为G代码,这涉及复杂的切片器配置、多次试错和耗时的手动验证,容易引入错误并延误打印进程。
此技能自动化G代码的生成、检查和验证过程,确保输出的G代码符合打印机要求,大幅减少手动操作和错误,加速3D打印准备。
G-code
Provenance: maintained in 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
- Confirm the input is a supported mesh:
.stl,.obj, unsliced.3mf,.ply,.glb, or.gltf. - Require an explicit printer/profile wrapper JSON. Do not invent real-printer profiles.
- Discover slicer backends when the backend is unknown:
python scripts/gcode_tool.py discover
- Inspect the input:
python scripts/gcode_tool.py inspect --input path/to/model.stl --json
- Dry-run the slicer command before executing:
python scripts/gcode_tool.py slice \
--input path/to/model.stl \
--output /tmp/model.gcode \
--profile path/to/profile.json \
--backend auto \
--dry-run
- Execute only after the dry-run command and profile are appropriate:
python scripts/gcode_tool.py slice \
--input path/to/model.stl \
--output /tmp/model.gcode \
--profile path/to/profile.json \
--backend auto \
--execute
- Validate the generated G-code:
python scripts/gcode_tool.py validate \
--gcode /tmp/model.gcode \
--profile path/to/profile.json \
--json
CAD Viewer Handoff
After completing G-code work that creates or modifies a plain .gcode, you must ALWAYS hand the explicit file path to $cad-viewer when that skill is installed. $cad-viewer must start CAD Viewer if it is not already running and return link(s) to the relevant created or updated file(s); the preview is diagnostic only and does not replace this skill's static validation. If $cad-viewer is unavailable or startup fails, report that instead of silently omitting the handoff.
Profile Contract
Every slice requires a wrapper profile JSON with an absolute native slicer profile path:
{
"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:
{
"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. Use the existing CAD/render workflows to convert those to a supported mesh format before using this skill.
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.
用户评价 (0)
发表评价
暂无评价
统计数据
用户评分
为此 Skill 评分