diff --git a/.claude/skills/kompas-fdm-design/SKILL.md b/.claude/skills/kompas-fdm-design/SKILL.md new file mode 100644 index 0000000..f1a776c --- /dev/null +++ b/.claude/skills/kompas-fdm-design/SKILL.md @@ -0,0 +1,116 @@ +--- +name: kompas-fdm-design +description: > + Методика проектирования деталей под FDM/FFF 3D-печать в КОМПАС-3D через MCP-сервер этого + проекта: правила DFM (нависания и угол θ_max, толщины стенок n·w, отверстия и teardrop, + посадки/зазоры, ориентация под прочность, elephant foot, бобышки/инсёрты/защёлки) ПЛЮС + лёгкая самопроверка геометрии инструментами осмотра. Используй, когда задача — спроектировать + или ДОВЕСТИ деталь, чтобы она хорошо ПЕЧАТАЛАСЬ на FDM. Триггеры: «сделай деталь + печатнопригодной / под FDM», «спроектируй … под печать», «напечатается ли без поддержек?», + «подбери зазоры для печатной посадки», «как ориентировать деталь под печать», «почему деталь + плохо печатается / где будут нависания», «доведи деталь под FDM». Строит через навык kompas-3d. + НЕ для: механики построения через MCP (это kompas-3d); слайсинга/нарезки/g-code (вне границ); + поиска по справке SDK (субагент kompas-sdk-research). +--- + +# kompas-fdm-design — проектирование деталей под FDM-печать + +## Что это (и чем НЕ является) + +Методический слой **поверх** навыка `kompas-3d`. Отвечает на вопрос **«как спроектировать, чтобы +напечаталось на FDM»**, а не «чем строить». + +- **`kompas-3d`** = *чем и как строить* через MCP (эскиз→операция→осмотр→`validate_part`). Этот + навык **опирается** на него для механики. +- Этот навык = *какие правила геометрии* соблюдать, чтобы FDM-печать удалась. +- **Слайсинг — вне границ.** Навык не нарезает и не оценивает g-code. + +## Когда применять / когда НЕ применять + +**Применять:** «сделай печатнопригодным / под FDM», «спроектируй … под печать», «напечатается без +поддержек?», «подбери зазоры печатной посадки», «как ориентировать под печать», «почему плохо +печатается», «доведи деталь под печать». + +**НЕ применять:** чистая механика построения (→ `kompas-3d`); слайсинг/нарезка/g-code (вне границ); +поиск сигнатур/констант в справке SDK (→ субагент `kompas-sdk-research`). + +## Калибровка (выполни первым шагом) + +Все правила масштабируются от трёх параметров (часть значений — абсолютные эмпирические мм, +помечены «калибровать тестом»): + +- **`w` = ширина линии ≈ диаметр сопла.** Дефолт: сопло 0.4 → `w ≈ 0.4–0.45 мм`. → стенки `n·w`. +- **`h` = высота слоя.** Дефолт `h ≈ 0.5·сопло` (0.2 мм); структурная печать 0.2–0.25. +- **`θ_max` = предельный угол самонесущей поверхности ОТ ВЕРТИКАЛИ.** `θ_max ≈ arctan(w/2h)` + (≈45° при `w`=0.4, `h`=0.2). **Дефолт 45°** (PLA, хороший обдув); **40°** для PETG/ABS + (эмпирическая поправка на провис, не вывод формулы) или для толстого слоя (`h≥0.3` → формула + даёт ~34°). Нависания, teardrop, фаски, зенковки берут угол из `θ_max`. +- **Материал** (PLA / PETG / ABS) — модификатор зазоров/мостов/коробления/`θ_max`. См. + `references/fdm-rules.md`. + +Если сопло/слой/материал не заданы — прими дефолты (сопло 0.4, `h`=0.2, PLA) и скажи об этом. + +## Два правила (соблюдай всегда) + +**1. Ориентация печати — первое проектное решение.** +- **Спроси у пользователя** (если не задано): главное направление рабочей нагрузки и + косметические/критичные грани. **Путь нагрузки из геометрии не выводится** — его задаёт задача. +- Реши постановку на стол (ось Z = рост слоёв). От неё зависит: где нависания; куда смотрят + отверстия (вертикальные → компенсация Ø; горизонтальные → teardrop); путь нагрузки (**держи в + XY**; Z-сжатие можно, Z-растяжение/срез — нет); плоскости сопряжения (на XY-гранях); «лесенка» на + наклонных функциональных поверхностях; если поддержки неизбежны — чтобы опорные грани были + некритичными/скрытыми. +- Зафиксируй ориентацию и проектируй под неё. + +**2. Чек-лист печатнопригодности перед выдачей** (ниже). Сначала **`validate_part`** (деталь +*валидна*), затем **FDM-чек-лист** (деталь *печатнопригодна*) — разные проверки. **Гео-аудит +эвристический и не доказывает печатнопригодность** (не ловит путь нагрузки/анизотропию). + +## Рабочий цикл + +1. **Калибровка**: сопло→`w`; слой→`h`→`θ_max`; материал→поправки. +2. **Ориентация** (правило 1): опрос (нагрузка/косметика) → постановка, ось слоёв, сопряжения, + «лесенка», поддержки. +3. **Правила эскиза/операции** (строй через `kompas-3d`): стенки `n·w`; нависания → скос под + `θ_max`; горизонтальные отверстия → teardrop; вертикальные → компенсация Ø; фаска у основания; + зазоры посадок (со знаком); заходные фаски; мин. элементы/текст; бобышки/инсёрты/защёлки. + Числа — в `references/fdm-rules.md`. +4. **Гео-аудит** (`references/geometry-audit.md`) — инструментами осмотра. +5. **Предусловия экспорта**: единое тело/манифолд (`boolean_union` при необходимости) → + `validate_part` чисто. +6. **Чек-лист** → экспорт **через `export_step`**. + +## Чек-лист печатнопригодности + +- [ ] Направление нагрузки и косметические грани **получены от пользователя**; ориентация + зафиксирована; нагрузка в XY (или Z только на сжатие); сопряжения на XY-гранях. +- [ ] Стенки кратны `w` (≥2·w; несущие ≥3·w, т.е. 3 периметра); нет «не кратных `w`» (кроме + функциональных). +- [ ] Нет 90°-полок; нависания ≤`θ_max` или заменены скосами; мосты в пределах пролёта по короткой + стороне (числа — `references/fdm-rules.md`); внутренним поддержкам — доступ. +- [ ] Горизонтальные отверстия — teardrop/D (геометрия из `θ_max`); вертикальные — компенсация Ø; + глухие — дно ≥2–3 мм. +- [ ] Фаска у основания (elephant foot); внутренние углы ≥R0.5; опорная площадка есть. +- [ ] Посадки по таблице со **знаком** (натяг — вычесть); допуск ±0.2 **НЕ** прибавлен к зазору; + заходные фаски на сопряжениях. +- [ ] Мин. элементы/текст ≥ порогов; аспект тонких выступов ≤4–5×. +- [ ] Бобышки/инсёрты (бор отверстия ≤ OD инсёрта, ставить с Z-грани)/резьба/защёлки (изгиб в XY) по правилам. +- [ ] Полости — дренаж/вент; критичные поверхности не под «лесенкой»/поддержкой. +- [ ] Предусловия экспорта: единое тело/манифолд; `validate_part` чисто. + +## Гео-аудит (кратко) + +Лёгкая самопроверка построенной модели **существующими** инструментами осмотра MCP: +`describe_model` / `list_faces` / `describe_face` (нависания по нормалям нижних граней; цилиндры с +горизонтальной осью → нужен teardrop), `get_bounding_box` (как ось слоёв соотносится с габаритом), +`measure` (номиналы/зазоры), `list_bodies` + `validate_part` (единое тело). **Границы и методика — +`references/geometry-audit.md`.** Аудит эвристический; истинная мин. толщина стенки и полный детект +криволинейных нависаний не решаются — это **не приговор и не доказательство печатнопригодности**. + +## Связанное + +- Полный численный свод DFM: [`references/fdm-rules.md`](references/fdm-rules.md). +- Рецепты самопроверки и границы: [`references/geometry-audit.md`](references/geometry-audit.md). +- Механика построения через MCP: навык **`kompas-3d`**. +- Поиск по справке SDK: субагент **`kompas-sdk-research`**. +- Дизайн навыка: `docs/superpowers/specs/2026-05-27-kompas-fdm-design-skill-design.md`.