---
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 (вне границ).
---

# kompas-fdm-design — проектирование деталей под FDM-печать

## Что это (и чем НЕ является)

Методический слой **поверх** навыка `kompas-3d`. Отвечает на вопрос **«как спроектировать, чтобы
напечаталось на FDM»**, а не «чем строить».

- **`kompas-3d`** = *чем и как строить* через MCP (эскиз→операция→осмотр→проверка построения). Этот
  навык **опирается** на него для механики.
- Этот навык = *какие правила геометрии* соблюдать, чтобы FDM-печать удалась.
- **Слайсинг — вне границ.** Навык не нарезает и не оценивает g-code.

## Когда применять / когда НЕ применять

**Применять:** «сделай печатнопригодным / под FDM», «спроектируй … под печать», «напечатается без
поддержек?», «подбери зазоры печатной посадки», «как ориентировать под печать», «почему плохо
печатается», «доведи деталь под печать».

**НЕ применять:** чистая механика построения (→ `kompas-3d`); слайсинг/нарезка/g-code (вне границ).

## Калибровка (выполни первым шагом)

Все правила масштабируются от трёх параметров (часть значений — абсолютные эмпирические мм,
помечены «калибровать тестом»):

- **`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. Чек-лист печатнопригодности перед выдачей** (ниже). Сначала **валидность построения** (её
дописывает к ответу каждая операция, см. `kompas-3d`; вручную — `describe_model(sections=errors,bodies,mass)`), затем
**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` при необходимости) →
   построение чистое.
6. **Чек-лист** → экспорт **через `export_model`**: слайсеру нужен `.stl`
   (`export_model(path="…​.stl")` — двоичная сетка), а `.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) по правилам.
- [ ] Полости — дренаж/вент; критичные поверхности не под «лесенкой»/поддержкой.
- [ ] Предусловия экспорта: единое тело/манифолд; построение чистое.

## Гео-аудит (кратко)

Лёгкая самопроверка построенной модели **существующими** инструментами осмотра MCP:
`describe_model` / `list_faces` / `list_faces(index=N)` (нависания по нормалям нижних граней; цилиндры с
горизонтальной осью → нужен teardrop), `describe_model(sections="box")` (как ось слоёв соотносится с габаритом),
`measure` (номиналы/зазоры), `describe_model(sections="bodies")` + чистое построение (единое тело). **Границы и методика —
`references/geometry-audit.md`.** Аудит эвристический; истинная мин. толщина стенки и полный детект
криволинейных нависаний не решаются — это **не приговор и не доказательство печатнопригодности**.

**Просвет канала и толщину перемычки спрашивают, а не считают.** `measure(kind1="body", index1=0,
kind2="body", index2=1)` даёт минимальное расстояние между телами целиком — не нужно угадывать, какие
именно стенки сближаются. Ответ включает координаты двух ближайших точек, то есть показывает, *где*
узко. Сравнивайте с 2·w (два прохода сопла): канал уже этого не пропечатается, а найти его арифметикой
по эскизу — значит найти его случайно. То же для двух конкретных стенок: `kind=face` с индексом из
`list_faces` или с точкой на грани (`x1,y1,z1`).

## Связанное

- Полный численный свод DFM: [`references/fdm-rules.md`](references/fdm-rules.md).
- Рецепты самопроверки и границы: [`references/geometry-audit.md`](references/geometry-audit.md).
- Механика построения через MCP: навык **`kompas-3d`**.
