docs(skill): актуализировать kompas-3d под новые инструменты
46 инструментов; split_solid_by_plane / move_body / boolean_union и validate_part переведены в реализованные, добавлены inspection-инструменты (describe_*, list_bodies/features/variables, measure). Playbook модификации B-rep: цепочка cut→spread→union; эвристика «Update()==true ≠ успех — всегда validate_part после редактирования». Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -34,16 +34,16 @@ description: >
|
||||
|
||||
## Инструменты MCP
|
||||
|
||||
**Реализованы (v2+, 35 инструментов):** `kompas_connect`, `kompas_set_visible`, `kompas_status`;
|
||||
`document_create|open|save|save_as|close|active`; `sketch_create`, `sketch_create_on_face[_index]`,
|
||||
`sketch_add_line|circle|rectangle|axis`, `sketch_close`; `extrude_boss|cut`, `revolve_boss|cut`,
|
||||
`fillet_edge[_index]`, `chamfer_edge[_index]`, `rebuild`; **`move_face`** (прямое редактирование: сдвинуть грань на N мм);
|
||||
`get_part_info`, `get_bounding_box`, `list_faces`, `list_edges`, `list_components`;
|
||||
`import_step`, `export_step`; `model_snapshot`.
|
||||
**Реализованы (v2+, 46 инструментов):**
|
||||
- *Система/документы:* `kompas_connect`, `kompas_set_visible`, `kompas_status`; `document_create|open|save|save_as|close|active`.
|
||||
- *Эскиз:* `sketch_create`, `sketch_create_on_face[_index]`, `sketch_add_line|circle|rectangle|axis`, `sketch_close`.
|
||||
- *Операции:* `extrude_boss|cut`, `revolve_boss|cut`, `fillet_edge[_index]`, `chamfer_edge[_index]`, `rebuild`.
|
||||
- *Прямое редактирование (без дерева, в т.ч. импортированная B-rep):* `move_face` (сдвинуть грань на N мм по нормали), `split_solid_by_plane` (рассечь тело плоскостью), `move_body` (сдвинуть тело на вектор), `boolean_union` (объединить тела).
|
||||
- *Обмен:* `import_step`, `export_step`.
|
||||
- *Запрос/осмотр:* `get_part_info`, `get_bounding_box`, `list_faces`, `list_edges`, `list_components`, `list_bodies`, `list_features`, `list_variables`, `measure`, `describe_model|face|edge` (структурный осмотр без снимка), `model_snapshot`.
|
||||
- *Проверка:* `validate_part` (операции в ошибке / требующие перестроения).
|
||||
|
||||
**Планируются (трансляция SDK, по мере кейсов):** рассечение/перемещение тела как инструменты
|
||||
(`SplitSolids`/`BodyRepositions` — механика есть, продуктизация не закончена), `list_bodies`,
|
||||
массивы/паттерны, переменные/свойства.
|
||||
**Планируются (трансляция SDK, по мере кейсов):** массивы/паттерны, оболочка/уклон, запись переменных, 2D-чертёж, построение сборок.
|
||||
|
||||
> Если нужного инструмента ещё нет — не хардкодь обход под кейс. Заведи кейс в `usecases/`,
|
||||
> докажи механику (тест или минимальный прогон в usecases/), затем продуктизируй как
|
||||
@@ -73,10 +73,13 @@ description: >
|
||||
(`OpenSourceDocument`). Гашение видимости компонента на снимок **не влияет** — изоляция так не делается.
|
||||
4. **Осмотр детали**: габарит по осям (какая ось — «высота»), `list_faces`/`list_edges`, стандартные
|
||||
проекции (`#Спереди/#Сверху/#Слева/#Справа/#Изометрия`) + `model_snapshot` для каждой.
|
||||
5. **Модификация**: на «тупой» импортированной B-rep работает `move_face` — сдвинуть грань на +N мм
|
||||
(наружу, добавить материал) или −N мм (внутрь). Рассечение/раздвижка тела — механика есть,
|
||||
отдельных инструментов пока нет (см. ниже).
|
||||
6. **Экспорт STEP**: `ConvertToAdditionFormat` (есть AP203/AP214/AP242).
|
||||
5. **Модификация** на «тупой» импортированной B-rep:
|
||||
- *Простой случай* — `move_face`: сдвинуть плоскую грань на +N мм (наружу) или −N (внутрь).
|
||||
⚠ На сложном торце (с отверстием/пазом) FaceMover может дать `et3dError54` — **обязательно `validate_part` после**.
|
||||
- *Вставка N мм в середину призматической ножки* (надёжно, грани совпадают):
|
||||
`split_solid_by_plane(plane, offset)` → `move_body(индекс верхнего тела, dz=N)` →
|
||||
`move_face(точка на грани реза, +N)` (мост) → `boolean_union()`. После — `validate_part`.
|
||||
6. **Экспорт STEP**: `export_step(path, format=auto|ap203|ap214|ap242)`.
|
||||
|
||||
Точные COM-приёмы и сигнатуры — в авто-памяти `kompas-step-and-assembly-api` и в `usecases/0002/case.md`.
|
||||
|
||||
@@ -92,14 +95,17 @@ description: >
|
||||
`CalcMassInertiaProperties`); перед чтением после правок — `rebuild`.
|
||||
- **id эскизов/операций** недействительны после смены активного документа (create/open/close).
|
||||
- **Единицы — мм** (геометрия) и кг (масса). Локальные координаты эскиза ≠ мировые координаты модели.
|
||||
- **`Update()==true` ≠ успех.** Прямое редактирование (move_face/split/union) может «пройти», оставив
|
||||
операцию в ошибке. **Всегда `validate_part` после редактирования** — пустой результат = чисто;
|
||||
иначе деталь невалидна (напр. `et3dError54`), и STEP/печать брать нельзя. Инструменты
|
||||
move_face/move_body/boolean_union сами дописывают итог `validate_part` в ответ.
|
||||
|
||||
## Открытые вопросы / границы
|
||||
|
||||
- **Перемещение грани (`move_face`) — реализовано.** Работает на импортированной B-rep через
|
||||
`IPart7.FindObjectsByPoint` + `FaceMover`. Проверено: top_spacer 39.45→41.45 мм.
|
||||
- **Рассечение/перемещение тела** (`SplitSolids`/`BodyRepositions`) — механика задокументирована,
|
||||
отдельными MCP-инструментами не оформлена. Возможная следующая опция.
|
||||
- Сборки/паттерны/переменные в MCP пока не реализованы.
|
||||
- **Прямое редактирование B-rep — реализовано полностью:** `move_face`, `split_solid_by_plane`,
|
||||
`move_body`, `boolean_union`. Цепочка cut→spread→union проверена end-to-end (usecases/0002,
|
||||
top_spacer 39.45→41.45 мм, `validate_part` чисто).
|
||||
- Не реализованы как инструменты: массивы/паттерны, оболочка/уклон, запись переменных, 2D, сборки.
|
||||
|
||||
## Связанное
|
||||
|
||||
|
||||
Reference in New Issue
Block a user