用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/froggugugugu/case-blueprints --skill fit-check命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | fit-check |
| description | 段階 4-5 の橋渡し — パーツ間の嵌合・接合面・蝶番組合せの干渉/クリアランスを点検する。リップ嵌合、蝶番ナックル組み合わせ、ねじ穴・差し込み・スナップ等の突合機構を CAD 干渉解析+ルールベースで検証。 |
| when_to_use | 「嵌合をチェック」「干渉してないか確認」「ヒンジが組める?」「export 前の最終チェック」「ALLOWLIST を見直す」のとき。 |
| allowed-tools | Read, Write, Edit, Glob, Bash(.venv/bin/python *), Bash(python *) |
| paths | ["output/design/fit_check.py","output/reports/fit-check.md"] |
| model | claude-opus-4-7 |
/review-fix で確定した設計を /export する前に、パーツ同士の嵌合と接合面のクリアランス・干渉を網羅的に点検する。
ターゲットは:
body.intersect(lid) の体積を計測し、未許容の重なりを検出対象は body / lid に限らず、PART_PAIRS 定義に追加すれば任意のパーツペアに展開可能。
| スキル | 役割 |
|---|---|
validator.py | 単一パーツの「設計ルール」(壁厚・蓋厚・タブ寸法等) |
/fit-check(本スキル) | 複数パーツの嵌合(クリアランス・干渉)+ 過去事例パターンの網羅 |
/review-fix | 利用者からの個別フィードバックの反映 |
/export | 最終 STL/3MF + スライサー設定 |
fit-check は validator と相補。validator は「壁が薄すぎないか」、fit-check は「組み立たないか」。
output/design/generator.py validator.py が存在output/preview/case-body.step case-lid.step(または対象パーツの STEP)が最新| 区分 | パス | 説明 |
|---|---|---|
| 入力 | input/design-params/case-config.yaml | 数値パラメータ |
| 入力 | input/requirements/case-spec.yaml | 構造仕様 |
| 入力 | input/objects/*.yaml | 対象オブジェクト寸法 |
| 入力 | output/preview/*.step | CAD 干渉解析の対象 |
| 出力 | output/design/fit_check.py | 初回生成・以降は利用者カスタムを尊重 |
| 出力 | output/reports/fit-check.md | 結果レポート |
| 項目 | 推奨 | 警告 | 失敗 |
|---|---|---|---|
| object_clearance | ≥ 1.0 mm | ≥ 0.5 mm | < 0.5 mm |
| z_margin | ≥ 1.0 mm | ≥ 0.5 mm | < 0.5 mm |
| 内寸 X/Y/Z 各軸 vs 実測オブジェクト | + 1mm 以上 | + 0.5 〜 1mm | + 0.5mm 未満 |
理由: FDM 印刷の反り・収縮で内寸が縮む。実寸ぴったりだと収まらない事故多数。
| 項目 | 推奨 | 警告 | 失敗 |
|---|---|---|---|
| fit_clearance(全周共通) | ≥ 0.4 mm | ≥ 0.3 mm | < 0.3 mm |
| 蝶番側追加クリア(蝶番がある場合) | ≥ 1.0 mm | ≥ 0.5 mm | < 0.3 mm |
| ラッチ側 / 反対側 | 0.3-0.5 mm | 0.2 or 0.7 | < 0.2 or > 1.0 |
理由: 蝶番ピンが蓋位置を Y 方向に拘束するため、蝶番側だけ非対称に大きいクリアランスが必要。ラッチ側はラッチ自体の弾性で吸収できるので標準値で十分。
| 項目 | 推奨 | 警告 | 失敗 |
|---|---|---|---|
| ナックル肉厚 = (knuckle_d - pin_d - pin_clear) / 2 | ≥ 1.5 mm | ≥ 1.0 mm | < 1.0 mm |
| ナックル Z 高さ | ≥ 5 mm | ≥ 3 mm | < 3 mm |
| pin_clearance | 0.4-0.6 mm | 0.3 or 0.7 | < 0.3 or > 1.0 |
| knuckle_clearance_z | 0.4-0.6 mm | 0.3 or 0.8 | < 0.3 |
| body_relief_clearance(壁埋込時) | ≥ 0.3 mm | ≥ 0.2 mm | < 0.2(または未設定) |
| lid_knuckle_extra_clearance_z(本体固定運用で蓋のみ縮める場合) | 0.3-0.5 mm | 0.2 or 0.6 | — |
理由:
CadQuery で本体と蓋を閉じた位置で重ね、body.intersect(lid) の体積を計算:
| 体積 | 判定 |
|---|---|
| ≥ 100 mm³ | ❌ 重大な干渉 |
| 1 - 100 mm³ | ⚠ 小さな干渉(意図的か確認、ALLOWLIST に登録すれば pass) |
| < 1 mm³ | ✅ |
ALLOWLIST は fit_check.py 内に宣言。例:
ALLOWLIST = [
{
"label": "本体ナックル右半円×蓋プレート -Y 端",
"max_mm3": 50.0,
"where": "蝶番付近、構造上避けられない 1mm 帯",
},
]
ALLOWLIST の合計を超える分が「未許容の干渉」として ❌ 扱い。
ALLOWLIST の運用ルール:
# 旧エントリ「○○」は 2026-XX-XX に lid_relief_clearance を導入し CAD レベルで解消したため削除)PART_PAIRS / MECHANISMS に追加することで以下も対象化:
各機構のチェック関数を fit_check.py 内で定義し、MECHANISMS レジストリに登録する設計。
本体ロジックは src/case_blueprint/fit_check.py に集約済み。利用者プロジェクトの
output/design/fit_check.py は 薄い shim として、ALLOWLIST と generator が
組んだ parts を渡して main() を呼ぶだけにする:
"""fit_check.py — src/case_blueprint.fit_check の shim。
本ファイルでカスタマイズするのは ALLOWLIST(意図的な微小重なりの登録)と
プロジェクト固有チェッカーのみ。MECHANISMS の登録は @register_mechanism で。
"""
from case_blueprint import fit_check, loader, closures, features # noqa: F401
# ----- ALLOWLIST(明示許容のみ。理由を必ず併記、P16)-----
ALLOWLIST = [
# {"label": "本体ナックル右半円×蓋プレート -Y 端",
# "max_mm3": 50.0,
# "where": "蝶番付近、構造上避けられない 1mm 帯"},
]
# ----- プロジェクト固有チェッカー(必要なら追加)-----
# @fit_check.checker("F. プロジェクト固有")
# def _check_xxx(cfg): ...
def _build_parts(cfg):
"""generator.py と同じ手順でパーツを再構築して dict で返す。
CAD 干渉解析(D)に渡す。"""
import cadquery as cq
from case_blueprint.geometry import (
internal_bbox_stacked, internal_bbox_side_by_side, external_bbox,
)
case_spec, case_config, objects = cfg["case_spec"], cfg["case_config"], cfg["objects"]
layout = case_spec["case"].get("layout", {})
arrangement = layout.get("arrangement", "stacked")
fn = internal_bbox_stacked if arrangement == "stacked" else internal_bbox_side_by_side
internal = fn(
objects,
object_clearance=case_config.get("internal", {}).get("object_clearance", 1.0),
z_margin=case_config.get("internal", {}).get("z_margin", 0.0),
)
walls = case_config.get("walls", {})
eb = external_bbox(internal, wall_thickness=walls.get("thickness", 2.0))
body = cq.Workplane().box(eb.width, eb.depth, eb.height).cut(
cq.Workplane().box(internal.width, internal.depth, internal.height)
)
lid = cq.Workplane().box(eb.width, eb.depth, case_config.get(, {}).get(, ))
body_zmax = body.val().BoundingBox().zmax
lid = lid.translate((, , body_zmax + lid.val().BoundingBox().zlen / ))
method = case_spec[][][]
parts = closures.build(method, body, lid, case_spec, case_config)
parts
__name__ == :
cfg = loader.load_all()
parts =
:
parts = _build_parts(cfg)
Exception e:
()
SystemExit(fit_check.main(cfg=cfg, parts=parts, allowlist=ALLOWLIST))
shim が無ければ skill が初回生成。既に存在する shim は上書きしない (ALLOWLIST など利用者編集を尊重)。
python output/design/fit_check.py
実行内容:
output/preview/*.step)を読み込み、PART_PAIRS で定義された組み合わせを閉じた位置で intersectALLOWLIST と照合して未許容部分を特定output/reports/fit-check.md へ出力# Fit-Check Report
## サマリー
- ✅ Pass: N
- ⚠ Warning: M
- ❌ Fail: K
## A. 内寸マージン
- ✅ object_clearance: 1.5 mm (推奨 ≥ 1.0)
- ⚠ z_margin: 0.5 mm (推奨 ≥ 1.0)
## D. CAD 干渉解析
- pair: case-body × case-lid (closed)
- 重なり総体積: 35.6 mm³
- allowlist 合計: 50.0 mm³
- 未許容: 0 mm³ ✅
判定:
/review-fix に戻って調整/export に進めます/export 前に推奨:
output/reports/fit-check.md が最新本スキルは CAD 上の検査であり、ここを通っても実測との差は別途取り込む必要がある。 試作を印刷したら 物理ループ に移る:
/export で STL/3MF を出して印刷/review-fix measurements を呼ぶと、.claude/templates/feedback-measurements.yaml が
input/feedback/<date>-measurements.yaml にコピーされる/review-fix がそれを case-config.yaml に反映 → generator.py 再実行 → 本スキルで再点検詳細は @.claude/rules/measurement-feedback.md を参照。CAD 検査と物理検査の 両輪で
品質を担保する設計。本体不変原則(P15)・暗黙許容禁止(P16)は物理ループでも適用。
fit_check.py を利用者が編集していたら上書きしない。チェック項目の追加は ALLOWLIST / PART_PAIRS / MECHANISMS への追記で対応MECHANISMS 辞書に追加するだけで取り込める設計を維持lid_knuckle_extra_clearance_z など)を残す@.claude/skills/review-fix/SKILL.md — 段階 4 + 物理ループ反映@.claude/skills/export/SKILL.md — 段階 5@.claude/skills/hinged-lid/SKILL.md — closure=hinge_lever 時、本スキルの C/F カテゴリに固有チェックを追加する@.claude/quality-gates.md — 5 段階ゲート条件@.claude/pitfalls.md — リリーフカット忘れなどの落とし穴@.claude/rules/measurement-feedback.md — 物理ループの様式@.claude/rules/materials-catalog.md — 材料別 fit_clearance 推奨範囲output/design/validator.py — 単一パーツの設計ルール検証output/design/fit_check.py — このスキルが管理する嵌合チェック実装