docs: handoff — цековка/зенковка готовы, параметрические эскизы тупик (зафиксировано); 69 инструментов, 118 тестов
This commit is contained in:
@@ -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, потом следующую.
|
||||
Не пытайся сделать весь пакет одним заходом — инкремент надёжнее.
|
||||
|
||||
Reference in New Issue
Block a user