diff --git a/docs/superpowers/NEXT-SESSION.md b/docs/superpowers/NEXT-SESSION.md index 3be03f0..f91f9ae 100644 --- a/docs/superpowers/NEXT-SESSION.md +++ b/docs/superpowers/NEXT-SESSION.md @@ -14,16 +14,16 @@ затем ЧЕРТЁЖ. ## Текущее состояние (main, синхронизирован с origin) -- 75 MCP-инструментов, 203 теста зелёных (131 unit + 72 integration). -- **ВЕХА 2D-ЧЕРТЁЖ: 3 инкремента готовы.** (1) `drawing_create_standard_views` — стандартные виды - (возвращает `ViewNumbers` для адресации). (2) `drawing_fill_title_block` — основная надпись - (`Stamp.Text[id].Str`). (3) `drawing_add_linear_dimension(x1,y1,x2,y2,x3,y3,orientation,viewNumber)` - — линейный размер на виде (horizontal/vertical/parallel) через `(ISymbols2DContainer)view` (QI от - вида) → `LineDimensions.Add` → координаты в ЛОКАЛЬНОЙ СК вида → `Update` → авто-значение - `((IDimensionText)dim).NominalValue`. Находка: размеры НЕ в `IView.ObjectCount` (они в - `ISymbols2DContainer`). Память: `kompas-drawing-api7`. **СЛЕДУЮЩЕЕ — инкремент 4: диаметральные/ - радиальные/угловые размеры** (те же `ISymbols2DContainer.*Dimensions`; нужен спайк привязки к - окружности/дуге) ИЛИ рамка/формат листа (`ILayoutSheet.Format`/`SheetFormat` — проще). +- 76 MCP-инструментов, 218 тестов зелёных (141 unit + 77 integration). +- **ВЕХА 2D-ЧЕРТЁЖ: 4 инкремента готовы.** (1) `drawing_create_standard_views` (возвращает + `ViewNumbers`). (2) `drawing_fill_title_block` — основная надпись. (3) `drawing_add_linear_dimension` + — линейный размер. (4) `drawing_add_diametral_dimension(xc,yc,radius,angle°,viewNumber)` — + диаметральный размер (Ø) через `(ISymbols2DContainer)view.DiametralDimensions.Add` → `Xc/Yc/Radius/ + Angle(рад)` → `Update` → `NominalValue`=2R. Общий хелпер `RequireSymbols2DContainer(viewNumber)` для + всех размеров. Размеры — в `ISymbols2DContainer` (QI от вида), НЕ в `IView.ObjectCount`. Координаты — + локальная СК вида. Память: `kompas-drawing-api7`. **СЛЕДУЮЩЕЕ — инкремент 5: радиальный + (`RadialDimensions`, есть ветви) / угловой (`AngleDimensions`) размер** (те же `ISymbols2DContainer`; + спайк) ИЛИ рамка/формат листа (`ILayoutSheet.Format`/`SheetFormat` — проще, без спайка). - **ВЕХА 2 (2D-ЧЕРТЁЖ) НАЧАТА:** `drawing_create_standard_views(partFilePath, scale, x, y)` СДЕЛАН (инкремент 1) — стандартные ассоциативные виды (спереди/сверху/слева) детали/сборки на активном чертеже (API7, `DrawingService`, namespace `Kompas.Mcp.Core.Drawings`). Workflow: @@ -120,11 +120,14 @@ FirstLevel=false)` (мировые координаты с учётом placemen 3. ✅ **СДЕЛАНО:** `drawing_add_linear_dimension` — линейный размер на виде (`ISymbols2DContainer. LineDimensions`). Размеры — в `ISymbols2DContainer` (QI от `IView`), НЕ в `IDrawingContainer`/ `IView.ObjectCount`. Координаты — локальная СК вида. Память `kompas-drawing-api7`. -4. **СЛЕДУЮЩЕЕ:** диаметральные/радиальные/угловые размеры — те же `ISymbols2DContainer`: - `DiametralDimensions`/`RadialDimensions`/`AngleDimensions` (`IDiametralDimension`/`IRadialDimension`/ - `IAngleDimension` есть в interop). **Спайк ДО спека** (привязка к окружности/дуге вида — точка на - окружности vs центр; авто-значение). Тест — `*Dimensions.Count` целевого вида вырос, значение. - Проще/альтернатива: рамка/формат листа (`ILayoutSheet.Format` → `SheetFormat`). +4. ✅ **СДЕЛАНО:** `drawing_add_diametral_dimension(xc,yc,radius,angle°,viewNumber)` — диаметральный + размер (Ø). `(ISymbols2DContainer)view.DiametralDimensions.Add` → `Xc/Yc/Radius/Angle(рад)`; + `NominalValue`=2R. Общий хелпер `RequireSymbols2DContainer(viewNumber)`. Память `kompas-drawing-api7`. +5. **СЛЕДУЮЩЕЕ:** радиальный (`RadialDimensions`, `IRadialDimension` — Xc/Yc/Radius/Angle + ветви + `AddBranch`/`AddBranchByArcParam`) / угловой (`AngleDimensions`, `IAngleDimension`) размер. Тот же + `ISymbols2DContainer` (переиспользуй `RequireSymbols2DContainer`). **Спайк ДО спека** (у радиального + — `DimensionType`/ветви; у углового — задание двух прямых/точек). Тест — `*Dimensions.Count` вырос, + значение. Альтернатива (проще, без спайка): рамка/формат листа (`ILayoutSheet.Format`→`SheetFormat`). Тонкости: чертёж проверяется не объёмом, а числом видов/объектов; ассоциативные виды требуют сохранённого `.m3d`/`.a3d`-файла. Коды видов `ksRelativeProjectionTypeEnum`: `ksPtFront=1`,