build123d-cad-gcodelisted
Install: claude install-skill baibai2013/build123d-cad
# build123d-cad · gcode 子技能
把 mechanical 出的 STEP / STL 喂给本 skill,出 `.gcode` + `.slice.json`(打印分钟、丝长、丝重)。
切片前先跑几何预检,fail-fast 给修改建议,不让用户去机器上才发现支撑爆炸。
> 一句话定位:mechanical 管"画对",gcode 管"打得出 + 打多久 + 多少料"。
>
> 不重写切片算法,只调用 PrusaSlicer / OrcaSlicer / SuperSlicer CLI。
---
## AI 执行准入
读本 SKILL.md 的"主流程 / 决策表 / 默认参数",**不**直接读 references/ 拼;
references/ 只作规则查询表。跨子技能走 [`../../shared/handoff-protocols.md`](../../shared/handoff-protocols.md) 文件接口,不互调函数。
切片器 CLI 不在 host → 报错给 brew 命令,**不静默降级**。
---
## 主流程
```
mechanical 出 STEP
│
▼
[1] precheck.py — 壁厚 / overhang / bridge / 最小特征预检
│
├─ 失败 → 写 violations.json → handoff 回 mechanical
│
└─ 通过 ▼
[2] step_to_stl — build123d Mesher(skip 若已是 STL)
│
▼
[3] slice.sh — 调 PrusaSlicer / OrcaSlicer / SuperSlicer
│
▼
[4] parse_gcode.py — 解析 .gcode 末尾注释:估时 + 丝长 + 丝重
│
▼
[5] handoff — bambu-labs 推打印 / viewer 看 toolpath
```
---
## 一句话用法
```bash
# 默认参数:0.2 mm 层高 / PLA 210 °C / 20% gyroid 填充 / 0.4 nozzle
bash skills/gcode/scripts/slice.sh /abs/path/part.step
# 自定义
bash skills/gcode/scripts/slice.sh /abs/path/part.step \
--out /abs/path/output --layer 0.2 --infill 20 \
--material PLA --printer P1S --slicer prusa
```
stdout 末尾 1 行 JSON 摘要;`.gcode` + `.slice.json` 落到 `--out`(默认 STEP 同目录)。
```python
from gcode_slice import slice_part
result = slice_part("/abs/path/part.step", layer_mm=0.2, infill_pct=20)
# {"gcode": ".../part.gcod