docs: handoff — цековка/зенковка готовы, параметрические эскизы тупик (зафиксировано); 69 инструментов, 118 тестов

This commit is contained in:
2026-05-27 12:14:49 +03:00
parent 1a57e74048
commit b8dbe48fad
+23 -21
View File
@@ -9,15 +9,17 @@
КОМПАС-3D должен быть запущен (нужен для интеграционных тестов).
## Текущее состояние (main, синхронизирован с origin)
- 67 MCP-инструментов, 116 тестов зелёных (69 unit + 47 integration).
- 69 MCP-инструментов, 118 тестов зелёных (69 unit + 49 integration).
- Пакет A «богаче эскизы» — готов (дуга×2, эллипс, ломаная, многоугольник, сплайн, точка).
- Пакет B «формообразующие» — основная часть готова: shell, rib, sweep, loft.
- Пакет C «массивы и зеркало» — ГОТОВ: `linear_pattern`, `circular_pattern`,
`mirror_operation`, `mirror_body`. Источник копирования — id операций из реестра `_features`
(хелпер `RequireFeature`); оси — `CoordinateAxis`/`CoordinateAxes` (`Core/Modeling`).
- `hole` — отверстие ГОТОВ (через **API7**, в API5 определения нет): `HoleService`
(`Core/Modeling/HoleService.cs`), простое цилиндрическое, сквозное/глухое. Прецедент: первая
формообразующая на API7 (раньше API7 был только у `move_face`).
- `hole` — отверстия ГОТОВЫ (через **API7**, в API5 определения нет): `HoleService`
(`Core/Modeling/HoleService.cs`). Типы: простое цилиндрическое (`hole`), с цековкой
(`hole_counterbore`, `ksHTCounterbore`), с зенковкой (`hole_countersink`, `ksHTCountersinking`).
`HoleCore` рефакторен под `configure`-колбэк (`HoleParameters` после `HoleType`). Прецедент:
первая формообразующая на API7. Направление в тело — по убыли объёма.
- `draft` — уклон граней ГОТОВ (через **API5** `ksInclineDefinition`/`o3d_incline=42` — операция
«Incline», не «Draft»; стандартный паттерн `PartModeler.Features.cs`, регистрируется в `_features`).
Эмпирика: `direction=false`=расширение, `true`=сужение → маппинг `!outward`.
@@ -32,24 +34,24 @@
`.Features.cs` (операции, включая массивы/зеркало/уклон). API7-сервисы: `HoleService`, `FaceEditService`.
- Чистые маппинги/валидация — в `SketchGeometry` (Core/Modeling); тип точки — `SketchPoint` (Host).
- Прочитай память: `kompas-formative-features-api5` (definition в API5; draft=Incline есть),
`kompas-pattern-mirror-api5` (пакет C), `kompas-hole-api7` (hole: только API7),
`kompas-variables-api5` (переменные: create на ksFeature, ограничение про геометрию).
`kompas-pattern-mirror-api5` (пакет C), `kompas-hole-api7` (hole + цековка/зенковка),
`kompas-variables-api5` (переменные), `kompas-parametric-sketch-findings` (тупик — не повторять).
## Задача этой сессии (по приоритету)
1. **Параметрические эскизы** РАЗВЕДАНЫ — путь намечен, но это КРУПНАЯ отдельная подсистема (не
инкремент). Установлено: управляющий размер `ksCDimWithVariable` только в API7; API5-эскиз через
API7 `ISketch.Curves`=null; нужен путь `ISketch.BeginEdit→FragmentDocument→IDrawingContainer`
(новая API7-подсистема построения эскизов). См. `docs/superpowers/specs/2026-05-27-parametric-sketch-findings.md`
и память `kompas-parametric-sketch-findings`. Начинать с минимального spike (отрезок через API7
IDrawingContainer → ksCDimWithVariable с именем → сменить переменную → перестроить → длина
изменилась?). Ключевой риск: реагирует ли решатель эскиза из внешней автоматизации.
2. Расширения hole: зенковка/цековка/коническое отверстие (`ksHTCounterbore=1/Countersinking=2/
Conic=4` + подынтерфейсы `ISpotfacingHoleParameters`/`IConicHoleParameters`/…), резьба.
Меньше неопределённости — хороший следующий инкремент.
3. Расширения draft: уклон от ребра (`IDraftFromEdges`, API7); нейтральная плоскость по грани.
4. Расширения пакета C: 2D-сетка линейного массива, выбор оси по ребру, массив вдоль кривой
(`o3d_curveCopy=37`).
5. 2D-чертёж / сборки — крупные отдельные направления.
## ОТРИЦАТЕЛЬНЫЙ результат (не повторять)
- **Параметрические эскизы (переменная двигает геометрию) — НЕДОСТИЖИМЫ через доступный COM-API.**
Решающий spike: `ksCDimWithVariable` (`IDrawingObject1.NewConstraint`) `Create()`=FALSE из внешней
автоматизации; `ksCFixedLenght` строится, но игнорирует `Expression` со ссылкой на переменную.
Полная разведка: `docs/superpowers/specs/2026-05-27-parametric-sketch-findings.md`. Параметрика
ограничена CRUD переменных (готово). НЕ тратить время на этот путь повторно.
## Задача следующей сессии (по приоритету)
1. Завершить типы отверстий: **коническое** (`hole_conic`, `ksHTConic=4` + `IConicHoleParameters`:
ConicDiameter/ConicAngle) — тот же `HoleCore`-паттерн. Резьба (`ShowThread`/`IThread`) — сложно
тестировать (нет изменения объёма), низкий приоритет.
2. Расширения draft: уклон от ребра (`IDraftFromEdges`, API7); нейтральная плоскость по грани.
3. Расширения пакета C: 2D-сетка линейного массива (2-я ось у `ksMeshCopyDefinition`), выбор оси
массива по ребру, массив вдоль кривой (`o3d_curveCopy=37`/`ksCurveCopyDefinition`).
4. 2D-чертёж / сборки — крупные отдельные направления (новая большая веха).
Бери по одной операции за инкремент, доводи до зелёного и merge+push, потом следующую.
Не пытайся сделать весь пакет одним заходом — инкремент надёжнее.