Merge feat/skill-kompas-fdm-design: навык проектирования под FDM (DFM-методика + гео-аудит)
This commit is contained in:
@@ -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`.
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
# Свод правил DFM для FDM-печати
|
||||||
|
|
||||||
|
> Выверено 3 ревью (pi/glm-5.1, pi/kimi-k2.6, Codex). Числа для `w≈0.4–0.45`, `h≈0.2` (сопло 0.4).
|
||||||
|
> **Зазоры — на сторону (радиальные)**; диаметральный = 2×. **Угол нависания — от вертикали**
|
||||||
|
> (вертикаль=0°, горизонталь=90°); самонесущие — ≤ `θ_max`. Параметры `w`/`h`/`θ_max` — см.
|
||||||
|
> SKILL.md → «Калибровка». Ссылки «§N» ниже — на разделы этого файла.
|
||||||
|
|
||||||
|
## 1. Стенки и оболочки
|
||||||
|
- Толщина стенки = **`n · w`**. Мин. конструктивная — **2·w (~0.8 мм)**; несущая — **≥3·w**.
|
||||||
|
- **Маппинг стенка→периметры:** нужно `N` периметров ⇒ стенка **≥ `N·w`** (при `w`=0.45: 3 → 1.35,
|
||||||
|
4 → 1.8, 5 → 2.25 мм).
|
||||||
|
- **Не задавай толщину стенки, не кратную `w`** (напр. 0.6 при `w`=0.45): слайсер оставит зазор
|
||||||
|
или переэкструдирует. Прыгай на следующий кратный.
|
||||||
|
- **Caveat:** `n·w` — для конструктивных стенок; внешняя функциональная величина (флексура,
|
||||||
|
тепловой барьер, посадочный размер) важнее кратности.
|
||||||
|
- Одиночная стенка `1·w` — только декоративная. Узкий сквозной прорез — **≥2·w (~0.8 мм)**.
|
||||||
|
|
||||||
|
## 2. Нависания, полки, мосты (разделять!)
|
||||||
|
- **Самонесущие — поверхности ≤ `θ_max` от вертикали.** Зона 45–60° (т.е. **выше** `θ_max`=45° при
|
||||||
|
дефолте) — ещё печатается, но с падением качества; **> `θ_max` существенно — поддержки** →
|
||||||
|
избегать редизайном.
|
||||||
|
- **90°-полка (консоль, опора с одной стороны) НЕ печатается ни на какой длине** (миф «≤6 мм»
|
||||||
|
неверен — провисает с первого слоя). Любую горизонтальную полку: **скос под `θ_max`**, либо
|
||||||
|
**превратить в мост** (две опоры), либо поддержка.
|
||||||
|
- **Мост (bridge) — пролёт между двумя опорами на одной высоте.** При достаточном обдуве, `h≈0.2`,
|
||||||
|
консервативно (для ненастроенного слайсера): **PLA ~15–25 мм, PETG ~10–15 мм, ABS ~12–18 мм**.
|
||||||
|
Длинные прямоугольные проёмы **ориентировать так, чтобы мост шёл по короткой стороне**; концы —
|
||||||
|
на сплошных опорах.
|
||||||
|
- Нижнюю функциональную поверхность моста — припуск **0.2–0.3 мм** на провис. *Граница:* величину
|
||||||
|
провиса из CAD не предсказать (обдув/скорость — настройки печати).
|
||||||
|
- **Внутренние/потолочные нависания хуже наружных** — потолок пазов аркой/шевроном, не плоским
|
||||||
|
пролётом > 2 мм.
|
||||||
|
- **Доступ к поддержкам:** окно во внутренней полости **≥8–10 мм**.
|
||||||
|
|
||||||
|
## 3. Отверстия
|
||||||
|
- **Вертикальные (ось ∥ Z)** печатаются уже номинала → **увеличить диаметр модели** (радиус на
|
||||||
|
половину): **+0.2 мм (Ø<4)**, **+0.2–0.3 мм (Ø 4–10)**, **+0.1–0.2 мм (Ø>10)**; калибровать,
|
||||||
|
критичные — рассверливать.
|
||||||
|
- **Горизонтальные (ось в XY)** → **teardrop** или **D-отверстие** (плоский верх). Мин. Ø **2 мм**.
|
||||||
|
Круглая часть тоже печатается уже → **+0.1–0.2 мм** к её Ø.
|
||||||
|
- **Геометрия teardrop:** боковины касательны окружности под углом `θ_max` к вертикали (с двух
|
||||||
|
сторон), сходятся в вершине на вертикальной оси. Высота вершины над центром = **`r / sin θ_max`**;
|
||||||
|
включённый угол при вершине = **`2·θ_max`**. При `θ_max`=45° → `r/sin45° = √2·r ≈ 1.414·r` над
|
||||||
|
центром (= **0.414·r над верхом окружности**), угол 90°. Низ — оставшаяся дуга окружности.
|
||||||
|
- **Глухое отверстие:** дно = внутренний мост → **толщина дна ≥2–3 мм** или купольное/
|
||||||
|
вентилируемое. Сквозные предпочтительнее.
|
||||||
|
- **Отступ от края** — через остаточную перемычку: стенка между отверстием и краем **≥2–3·w**
|
||||||
|
(лёгкая нагрузка) / больше под крепёж.
|
||||||
|
|
||||||
|
## 4. Посадки и зазоры (печатная деталь ↔ печатная деталь)
|
||||||
|
Зазор **на сторону** (радиальный); диаметральный = 2× значения:
|
||||||
|
|
||||||
|
| Посадка | Зазор/сторону | Примечание |
|
||||||
|
|---|---|---|
|
||||||
|
| Натяг (press) | **−0.05…0 мм** (вычесть из номинала!) | короткий, PLA; иначе snap-fit (§14) |
|
||||||
|
| Переходная/плотная | 0.05–0.15 мм | |
|
||||||
|
| Скользящая | 0.15–0.20 мм | PLA↔PLA; контакт ≥20 мм → 0.20; PETG +0.05 |
|
||||||
|
| Свободная | 0.25–0.35 мм | >0.35/сторону — уже очень слабо |
|
||||||
|
|
||||||
|
- **Знак:** «натяг» = **отрицательный** зазор → вычесть из номинала (вал +/отверстие −).
|
||||||
|
Положительное число в строке press — ошибка прочтения.
|
||||||
|
- **ABS↔ABS:** +0.05/сторону. **PETG:** прессовые со временем «расслабляются».
|
||||||
|
- **Допуск точности (НЕ прибавлять к посадкам):** общий разброс FDM — **XY ±0.2 мм** (±0.1
|
||||||
|
калибровано), **Z хуже**. Это точность изготовления, не добавка к зазору.
|
||||||
|
|
||||||
|
## 5. Первый слой / стол
|
||||||
|
- **Elephant foot** — от притирки первого слоя (низкий Z-offset/переэкструзия; НЕ от высоты слоя).
|
||||||
|
Фаска по нижним рёбрам: **0.3 × 45° (калибровано)** / **0.5–1.0 × 45° (слабая калибровка)**.
|
||||||
|
- Внутренние углы у основания — **скругление ≥R0.5**.
|
||||||
|
- **Опорная площадка:** без «лезвийных» оснований; контакт хотя бы ~3 периметра. Высокие тонкие
|
||||||
|
детали — **интегральный фланец 1–2 мм** (предпочтительнее brim).
|
||||||
|
|
||||||
|
## 6. Ориентация и прочность
|
||||||
|
- **Z (межслойная) прочность от XY:** PLA ~40–55%, PETG ~35–50%, **ABS ~20–35% (выброс)**. Несущую
|
||||||
|
нагрузку — в **XY (вдоль слоёв)**.
|
||||||
|
- **Z-сжатие допустимо** (слои в сжатии не расслаиваются); избегать **Z-растяжения и Z-среза**.
|
||||||
|
- Изгиб: слои в растяжении/сжатии, не на срез по линии слоя.
|
||||||
|
- Z-нагрузка неизбежна → **увеличить несущее сечение** ~×2 относительно XY-расчёта.
|
||||||
|
- Плоскости сопряжения — на **XY-гранях**, не на Z-боковинах.
|
||||||
|
|
||||||
|
## 7. Минимальные элементы и текст
|
||||||
|
- Выступ/штифт/ребро — **≥1·w (≥0.5 мм)**; паз/щель — **≥2·w (~0.8 мм)**.
|
||||||
|
- **Аспект тонких выступов:** высота ≤ ~4–5× базовой ширины; выше — конусность/раскос/редизайн.
|
||||||
|
- **Выпуклый** текст: штрих **≥0.5 мм**, высота **≥2·h (~0.4 мм)**, sans-serif bold.
|
||||||
|
- **Гравированный** текст: штрих **≥2·w (~0.8–0.9 мм)** (нужно ≥2 периметра; 0.6 мм не влезает),
|
||||||
|
глубина **≥2·h (~0.4 мм)**. (pt не используем — геометрия в мм.)
|
||||||
|
|
||||||
|
## 8. «Лесенка» (staircase) — критерий ориентации
|
||||||
|
- Наклонные/криволинейные поверхности дают ступени: глубина ≈ **`h / tan(α)`** (α — угол от
|
||||||
|
**горизонтали**; не путать с `θ_max`, который от вертикали). Пример: α=30°, `h`=0.2 → ~0.35 мм.
|
||||||
|
- Критичные (скользящие/уплотняющие/оптические) поверхности **ориентировать вертикально или
|
||||||
|
горизонтально**. Это вход в правило ориентации (SKILL.md, правило 1).
|
||||||
|
- Большой плоский **верх** без опоры коробит («подушка») — внутренние рёбра каждые ~15–20 мм или
|
||||||
|
достаточная толщина верха.
|
||||||
|
|
||||||
|
## 9. Бобышки, инсёрты, резьба
|
||||||
|
- **Саморез/винтонарезной** пилот (M3): ~Ø2.5 PLA / Ø2.6 PETG / Ø2.7 ABS; заход ≥3 мм.
|
||||||
|
- **Термоинсёрт латунный** (M3): бор **по даташиту** (типично ~Ø4.0, ±0.05); **`Ø_bore = OD_инсёрта − (0…0.1) мм`** (≤ OD, лёгкий натяг под расплав — НЕ больше OD); стенка бобышки **≥2 мм**; глубина = длина инсёрта + 0.5 мм; **ставить с верхней (Z) грани** (не в боковину).
|
||||||
|
- **Бобышка под винт:** OD ≥ 2–3× Ø винта; не делать массивный сплошной объём (карман/оболочка).
|
||||||
|
- **Сквозное под металлический болт:** радиальный зазор 0.2–0.3 → **+0.4–0.6 мм к номиналу** болта.
|
||||||
|
- **Резьба:** не моделировать <M6 → инсёрты/саморезы. Если моделировать: **≥M6, ось вертикальная**,
|
||||||
|
зазор +0.1–0.2 мм, профиль крупный/трапецеидальный (не мелкий ISO — вершины-нависания).
|
||||||
|
|
||||||
|
## 10. Фаски vs скругления
|
||||||
|
- **Нижние (у стола) рёбра — фаска** (скругление = нулевой контакт + EF).
|
||||||
|
- **Верхние рёбра — скругление** (R0.5–2.0); **но** радиус **> ~½ толщины стенки** сам даёт
|
||||||
|
нависание > `θ_max` → тогда фаска/ступень.
|
||||||
|
- **Внутренние углы — всегда скругление ≥R0.5**.
|
||||||
|
|
||||||
|
## 11. Зенковки / цековки
|
||||||
|
- **Цековка (counterbore)** — большим Ø/полостью **вверх** (дно по телу, не мостом); глубина +0.3 мм.
|
||||||
|
- **Зенковка (countersink):** конус **вверх**; включённый угол **≤90°** → стенки ≤45° от вертикали
|
||||||
|
печатается; **>90°** → стенки-нависание → поддержка или замена цилиндрической цековкой.
|
||||||
|
|
||||||
|
## 12. Заходные фаски (assembly relief)
|
||||||
|
- На штифтах, отверстиях, инсёртах, защёлках, «ласточкиных хвостах» — **заходная фаска** (≈0.5–1 мм
|
||||||
|
× 45° или ≈ половина зазора) против задиров при сборке.
|
||||||
|
|
||||||
|
## 13. Разбиение детали и сборка из печатных частей
|
||||||
|
- Конфликт «прочная ориентация vs бесподдержечность», или крупная/коробящаяся деталь → **разбить**
|
||||||
|
на части с самоустанавливающимися стыками (печатные штифты/шпонки/замки), склейка; стыки на
|
||||||
|
XY-гранях. Зазор стыка — по §4.
|
||||||
|
|
||||||
|
## 14. Защёлки (snap-fit) / живой шарнир
|
||||||
|
- Консольная защёлка: толщина балки **≈1.0–2.0 мм** (функциональный размер, не привязан к кратности
|
||||||
|
`w`; тоньше ~1 мм — хрупко), зацеп/возврат **0.3–0.8 мм**, длина/толщина **≥5:1** (до 10:1),
|
||||||
|
**скругление в основании ≥R0.5**.
|
||||||
|
- **Направление слоёв:** балка гнётся **в плоскости XY** (слои перпендикулярны изгибу), **не
|
||||||
|
поперёк Z** (расслоится с первого нажатия).
|
||||||
|
- **Живой шарнир** — только PLA/PP-подобные, перемычка **0.3–0.5 мм**; PETG/ABS не годятся.
|
||||||
|
|
||||||
|
## 15. Коробление (геометрия)
|
||||||
|
- Большие плоскости (>80×80, особенно ABS): скругления углов R3–5 + рёбра/решётка снизу.
|
||||||
|
- Радиус внешних углов: R2 (ABS) / R1 (PLA/PETG).
|
||||||
|
- Длинные тонкие пролёты (>60 мм, <2 мм) — рёбра/косынки каждые 30–40 мм; высота ребра ≤5× базы.
|
||||||
|
- Избегать сплошных кубов/плит → карман/оболочка + рёбра. Усадка: PLA ~0.3%, PETG ~0.5%, ABS ~0.8%.
|
||||||
|
- Симметрия геометрии уравновешивает усадку.
|
||||||
|
- *«Мышиные уши» (Ø8–10 мм по углам)* — **крайняя мера адгезии** (по сути brim-геометрия);
|
||||||
|
предпочтительно интегральный фланец/скругления углов.
|
||||||
|
- *Граница:* стол/корпус/обдув для ABS — настройки печати, вне навыка; здесь только геометрия.
|
||||||
|
|
||||||
|
## 16. Полые детали и гигиена модели
|
||||||
|
- **Полости:** дренаж Ø3–5 мм у **низшей** точки + вент у **высшей**.
|
||||||
|
- Допуски/зазоры — **в геометрию** (слайсер читает модель буквально).
|
||||||
|
- Раздельные тела — зазор ≥0.2 мм (общая CAD-гигиена; перед выдачей объединять — рабочий цикл,
|
||||||
|
шаг 5 в SKILL.md).
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Гео-аудит модели под FDM — что проверяемо инструментами осмотра
|
||||||
|
|
||||||
|
Лёгкая самопроверка построенной модели **существующими** инструментами осмотра MCP. Запускать на
|
||||||
|
шаге 4 рабочего цикла (см. SKILL.md), перед чек-листом и экспортом.
|
||||||
|
|
||||||
|
## Что проверяемо
|
||||||
|
|
||||||
|
| Проверка | Как | Статус |
|
||||||
|
|---|---|---|
|
||||||
|
| Нависания (приближённо) | `list_faces`/`describe_face`: для **нижних** граней угол поверхности от вертикали; > `θ_max` → флаг | ✅ плоские; ⚠️ криволинейные грубо |
|
||||||
|
| Ориентация (геом. прокси) | `get_bounding_box`: как ось слоёв соотносится с габаритом | ⚠️ длинная ось ≠ путь нагрузки |
|
||||||
|
| Горизонтальные круглые отверстия | `describe_face`: цилиндр с горизонтальной осью → «нужен teardrop» | ✅ |
|
||||||
|
| Номиналы / зазоры / габариты | `measure` между гранями; `get_bounding_box` | ✅ |
|
||||||
|
| Тело / манифолд перед выдачей | `list_bodies` (одно тело?), `validate_part` | ✅ |
|
||||||
|
|
||||||
|
## Граница честности
|
||||||
|
|
||||||
|
- **Угол нависания** мерить в **той же конвенции, что fdm-rules.md** (от вертикали; нижняя грань с
|
||||||
|
поверхностью > `θ_max` от вертикали = нависание) — не путать с углом нормали от горизонтали.
|
||||||
|
- **Путь нагрузки агент НЕ выводит из габарита** — берёт из задачи/опроса (правило 1). Длинная ось
|
||||||
|
≠ несущая.
|
||||||
|
- **Истинная мин. толщина стенки и полный детект криволинейных нависаний — не решаются** (нет
|
||||||
|
thickness/overhang-солвера).
|
||||||
|
- **Аудит эвристический и НЕ доказывает печатнопригодность** (не ловит анизотропию/путь нагрузки).
|
||||||
|
Вывод — список флагов для решения, не «приговор». Слайсер навык не зовёт намеренно.
|
||||||
|
|
||||||
|
## Как применять в цикле
|
||||||
|
|
||||||
|
1. После построения и `validate_part` — пройти таблицу выше сверху вниз.
|
||||||
|
2. Каждый флаг — сверить с соответствующим правилом `fdm-rules.md` и решить: исправить геометрию
|
||||||
|
или принять осознанно.
|
||||||
|
3. Путь нагрузки и косметические грани взять из ответа пользователя (правило 1), не из габарита.
|
||||||
|
4. Затем — чек-лист печатнопригодности (SKILL.md) → экспорт через `export_step`.
|
||||||
@@ -33,7 +33,7 @@ Where to look (single source of truth — do **not** duplicate these lists here)
|
|||||||
- **Design decisions / caveats** → [`docs/OPEN_QUESTIONS.md`](docs/OPEN_QUESTIONS.md). Known caveat («Ревью v2»): boss/cut direction on a selected face depends on face-normal orientation — `forward` may need flipping; the agent picks via snapshot or `describe_face` normal.
|
- **Design decisions / caveats** → [`docs/OPEN_QUESTIONS.md`](docs/OPEN_QUESTIONS.md). Known caveat («Ревью v2»): boss/cut direction on a selected face depends on face-normal orientation — `forward` may need flipping; the agent picks via snapshot or `describe_face` normal.
|
||||||
- **Verified COM call-chains & gotchas** → «Key implementation facts» below + memory files (`kompas-*-api*.md`).
|
- **Verified COM call-chains & gotchas** → «Key implementation facts» below + memory files (`kompas-*-api*.md`).
|
||||||
|
|
||||||
Principle: **MCP = translating SDK capabilities into general tools** (not task-specific). On top of MCP — skill **`.claude/skills/kompas-3d/`** with a methodology (playbooks, heuristics, validated in `usecases/`). Layout: `usecases/` (in .gitignore) is the proving ground; proven techniques are promoted to the skill.
|
Principle: **MCP = translating SDK capabilities into general tools** (not task-specific). On top of MCP — skill **`.claude/skills/kompas-3d/`** with a methodology (playbooks, heuristics, validated in `usecases/`). Layout: `usecases/` (in .gitignore) is the proving ground; proven techniques are promoted to the skill. A separate skill **`.claude/skills/kompas-fdm-design/`** is a DFM methodology layer for FDM/FFF 3D-printing (overhang rules, wall thickness, teardrop holes, fits/clearances, orientation for strength, elephant foot, bosses/inserts/snap-fits) with a lightweight geometry audit using existing inspection tools; it works on top of `kompas-3d` (the build layer) and exports via `export_step` — no slicer integration.
|
||||||
|
|
||||||
**Delegation subagents** (`.claude/agents/`, dispatched via the `Agent` tool to keep heavy work off Opus's context — system prompt lives in the agent definition, so pass only the variable part as the prompt):
|
**Delegation subagents** (`.claude/agents/`, dispatched via the `Agent` tool to keep heavy work off Opus's context — system prompt lives in the agent definition, so pass only the variable part as the prompt):
|
||||||
- **`kompas-sdk-research`** (model: **Haiku**, read-only — `Glob`/`Grep`/`Read`): finds an interface/method/enum/constant signature in the `docs/Kompas3D_SDK/` MD knowledge base and returns a compressed summary. Dispatch it for any non-trivial SDK lookup instead of grepping the help yourself; a wrong answer is cheap — Opus re-verifies against `libs/kompas-interop/*.dll` by reflection.
|
- **`kompas-sdk-research`** (model: **Haiku**, read-only — `Glob`/`Grep`/`Read`): finds an interface/method/enum/constant signature in the `docs/Kompas3D_SDK/` MD knowledge base and returns a compressed summary. Dispatch it for any non-trivial SDK lookup instead of grepping the help yourself; a wrong answer is cheap — Opus re-verifies against `libs/kompas-interop/*.dll` by reflection.
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ LLM набор инструментов для создания документ
|
|||||||
|
|
||||||
Принцип: **MCP транслирует возможности SDK КОМПАС в общие инструменты** (не под конкретную задачу).
|
Принцип: **MCP транслирует возможности SDK КОМПАС в общие инструменты** (не под конкретную задачу).
|
||||||
Поверх MCP — навык **`.claude/skills/kompas-3d/`** с методикой работы (playbook'и, эвристики,
|
Поверх MCP — навык **`.claude/skills/kompas-3d/`** с методикой работы (playbook'и, эвристики,
|
||||||
обкатанные в `usecases/`).
|
обкатанные в `usecases/`). Отдельный навык **`.claude/skills/kompas-fdm-design/`** — методика
|
||||||
|
проектирования под FDM/FFF 3D-печать (правила DFM + лёгкий гео-аудит инструментами осмотра);
|
||||||
|
работает поверх `kompas-3d`, экспорт через `export_step`, слайсер не вызывает.
|
||||||
|
|
||||||
> Подробности: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) · план — [docs/IMPLEMENTATION_PLAN.md](docs/IMPLEMENTATION_PLAN.md)
|
> Подробности: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) · план — [docs/IMPLEMENTATION_PLAN.md](docs/IMPLEMENTATION_PLAN.md)
|
||||||
> · спорные вопросы — [docs/OPEN_QUESTIONS.md](docs/OPEN_QUESTIONS.md) · обзор — [docs/presentation.html](docs/presentation.html)
|
> · спорные вопросы — [docs/OPEN_QUESTIONS.md](docs/OPEN_QUESTIONS.md) · обзор — [docs/presentation.html](docs/presentation.html)
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ MCP client ──stdio──> Host (поток-пул, async)
|
|||||||
|
|
||||||
Принцип: **только `Core` знает про COM**. `Host`/Tools оперируют доменными DTO и вызывают `Core`; `Host` не содержит бизнес-логики.
|
Принцип: **только `Core` знает про COM**. `Host`/Tools оперируют доменными DTO и вызывают `Core`; `Host` не содержит бизнес-логики.
|
||||||
|
|
||||||
Архитектурный принцип: **MCP транслирует возможности SDK КОМПАС в общие инструменты** (не под конкретную задачу). Методический слой поверх MCP — навык `.claude/skills/kompas-3d/` (playbook'и, эвристики). Полигон отработки подходов — `usecases/` (в .gitignore).
|
Архитектурный принцип: **MCP транслирует возможности SDK КОМПАС в общие инструменты** (не под конкретную задачу). Методический слой поверх MCP — навык `.claude/skills/kompas-3d/` (playbook'и, эвристики). Полигон отработки подходов — `usecases/` (в .gitignore). Отдельный навык `.claude/skills/kompas-fdm-design/` — DFM-методика для FDM/FFF 3D-печати (нависания, толщины, teardrop-отверстия, посадки, ориентация под прочность, elephant foot, бобышки/инсёрты/защёлки) с лёгким гео-аудитом через существующие Inspection-инструменты; работает поверх `kompas-3d`, слайсер вне границ.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user