docs: ревью v2 в OPEN_QUESTIONS (направление операций, индексы граней, утечки RCW)
Зафиксированы наблюдения по новому слою v2 и отложенные на проработку пункты
(v2-1 направление boss/cut на грани зависит от нормали; v2-2 транзитные RCW в
PartModeler; v2-3 стабильность индексов граней; v2-4 fillet/chamfer по одному ребру),
а также принятые по ходу решения (углы вращения, габариты).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
feat(query): перечисление граней + выбор грани по индексу
QueryService.ListFacesAsync: обход EntityCollection(o3d_face), для каждой грани —
индекс, тип поверхности (plane/cylinder/cone/sphere/torus/nurbs через ksFaceDefinition.Is*)
и площадь (GetArea, мм²). Запись FaceInfo.
PartModeler.OpenSketchOnFaceIndexAsync: эскиз на грани по индексу из list_faces —
надёжнее выбора по точке (агенту не нужно угадывать координаты).
Новые инструменты: list_faces, sketch_create_on_face_index.
Тест List_faces_and_sketch_by_index: цилиндр → 3 грани (2 plane + 1 cylinder),
площади торца ≈314 мм² и бока ≈1257 мм²; эскиз на торце по индексу → бобышка.
Презентация: 28 инструментов, 18 тестов.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
feat(query): габариты детали (get_bounding_box)
QueryService.GetBoundingBoxAsync через API5 ksPart.GetGabarit(full=false) →
габаритный параллелепипед (мм) + размеры по осям. Помогает агенту оценить
протяжённость модели и подбирать точки для select-by-point (грани/рёбра).
Новый инструмент get_bounding_box; запись BoundingBox.
Тест: цилиндр R10×H20 → X,Y ∈ [-10;10], Z ∈ [0;20] (расширен QueryTests).
Презентация: 26 инструментов.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
feat(features): операция вращения (revolve_boss / revolve_cut)
PartModeler.RevolveAsync через API5 o3d_bossRotated/o3d_cutRotated:
directionType=dtNormal, toroidShapeType=сфероид, SetThinParam(false), SetSideParam(forward, angle).
Ось вращения — осевая линия в эскизе (системный стиль 3); добавляется sketch_add_axis.
Новые MCP-инструменты: sketch_add_axis, revolve_boss, revolve_cut (угол в градусах, по умолчанию 360).
Тест Revolve_rectangle_makes_tube: профиль [10..15]×[0..20] вокруг оси Y → труба
(внеш. R15, внутр. R10, H20), объём π·2500 ≈ 7854 мм³ — проверено через get_part_info.
Презентация: 23 инструмента, 16 тестов.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
feat(sketch): эскиз на выбранной грани + МЦХ через API5
sketch_create_on_face: OpenSketchOnFaceAsync выбирает плоскую грань по точке
(ksPart.EntityCollection(o3d_face).SelectByPoint) и создаёт на ней эскиз —
ключевой шаг итеративного цикла «построил → выбрал грань → новый эскиз».
Общее ядро создания эскиза вынесено в CreateSketchOn.
QueryService переписан на API5 ksPart.CalcMassInertiaProperties(ST_MIX_MM|ST_MIX_KG):
- API7 IMassInertiaParam7.Calculate() непригоден — флаг Actual «залипает» после
первого расчёта, повторный запрос отдавал устаревший объём (баг кэша);
- API5-маршрут считает по запросу и согласован с построением через ksPart;
- единицы (мм³/мм²/кг/мм) задаются битовым вектором.
Тест Sketch_on_face_adds_boss_on_top: запрос → штифт R5×H10 на верхней грани
цилиндра → повторный запрос видит прирост ≈785 мм³ (проверяет и грань, и кэш МЦХ).
Презентация: 20 инструментов, 15 тестов; OPEN_QUESTIONS обновлён.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
- README.md: требования, сборка/запуск, конфиг MCP-клиента, инструменты, тесты
- CLAUDE.md: раздел Current state переписан под реализованный v1 + команды + ключевые факты
- presentation.html: статус/прогресс (72%), TODO (фундамент и инструменты — готово), roadmap v1 ✓
- 12 тестов зелёные (5 unit + 7 integration)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Зафиксирован фундамент проекта MCP-сервера КОМПАС-3D:
- docs/: ARCHITECTURE.md, IMPLEMENTATION_PLAN.md, presentation.html
- tools/kdoc.py: навигатор по справке SDK
- libs/kompas-interop/: вендорские interop-сборки КОМПАС из SDK
- src/Kompas.Mcp.ConnectSpike: net8.0-windows консоль, доказывает
работу COM-интеропа и attach/launch подключения к КОМПАС
(IApplication, версия 24.0)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>