feat(query): перечисление рёбер + скругление/фаска по индексу

QueryService.ListEdgesAsync: обход EntityCollection(o3d_edge), для каждого ребра —
индекс, тип кривой (line/circle/arc/ellipse/nurbs через ksEdgeDefinition.Is*) и длина
(GetLength, мм). Запись EdgeInfo. Новый инструмент list_edges.
PartModeler: выделены ядра CreateFillet/CreateChamfer и хелпер SelectEdgeByIndex;
добавлены FilletEdgeIndexAsync/ChamferEdgeIndexAsync. Новые инструменты
fillet_edge_index, chamfer_edge_index — выбор ребра по индексу (надёжнее точки).

Тест List_edges_and_fillet_by_index: цилиндр → 2 круговых ребра ≈62.83 мм →
скругление ребра по индексу → объём уменьшается. Итого 31 инструмент, 19 тестов.
Документация синхронизирована через навык docs-delegate (Sonnet).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
This commit is contained in:
2026-05-26 11:22:57 +03:00
parent 170e2aa4c0
commit 498eeaa847
9 changed files with 211 additions and 52 deletions
+2 -1
View File
@@ -41,8 +41,9 @@ src/Kompas.Mcp.Host/bin/Release/net8.0-windows/kompas-mcp.exe
| System | `kompas_connect`, `kompas_status`, `kompas_set_visible` |
| Documents | `document_create`, `document_open`, `document_save`, `document_save_as`, `document_close`, `document_active` |
| Sketch | `sketch_create`, `sketch_add_line`, `sketch_add_circle`, `sketch_add_rectangle`, `sketch_close` |
| Features | `extrude_boss`, `extrude_cut`, `rebuild` |
| Features | `extrude_boss`, `extrude_cut`, `revolve_boss`, `revolve_cut`, `fillet_edge`, `chamfer_edge`, `fillet_edge_index`, `chamfer_edge_index`, `rebuild` |
| Vision | `model_snapshot` (PNG-снимок активной модели) |
| Query | `get_part_info`, `get_bounding_box`, `list_faces`, `list_edges` |
### Типовой сценарий