From cd76abd652d4694c0176629b49f79280dedc4f17 Mon Sep 17 00:00:00 2001 From: Shahovalov MIkhail Date: Wed, 27 May 2026 18:14:40 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20handoff=20=E2=80=94=20=D0=BB=D0=B8?= =?UTF-8?q?=D0=BD=D0=B5=D0=B9=D0=BD=D1=8B=D0=B5=20=D1=80=D0=B0=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D1=80=D1=8B=20=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D1=8B=20(?= =?UTF-8?q?=D0=B8=D0=BD=D0=BA=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=203=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D1=82=D0=B5=D0=B6=D0=B0);=20=D0=B4=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=D0=B5=20=E2=80=94=20=D0=B4=D0=B8=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80/=D1=80=D0=B0=D0=B4=D0=B8=D1=83=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/superpowers/NEXT-SESSION.md | 33 ++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/docs/superpowers/NEXT-SESSION.md b/docs/superpowers/NEXT-SESSION.md index d675f39..3be03f0 100644 --- a/docs/superpowers/NEXT-SESSION.md +++ b/docs/superpowers/NEXT-SESSION.md @@ -14,12 +14,16 @@ затем ЧЕРТЁЖ. ## Текущее состояние (main, синхронизирован с origin) -- 74 MCP-инструмента, 188 тестов зелёных (123 unit + 65 integration). -- **ВЕХА 2D-ЧЕРТЁЖ: 2 инкремента готовы.** (1) `drawing_create_standard_views` — стандартные виды - (спереди/сверху/слева). (2) `drawing_fill_title_block(designation?, name?, material?)` — основная - надпись: графы обозначение(2)/наименование(1)/материал(3) через `LayoutSheets.ItemByNumber[1]. - Stamp.Text[id].Str` + `Update()` (API7). `Str` замещает (Clear не нужен). Память: `kompas-drawing-api7`. - **СЛЕДУЮЩЕЕ — инкремент 3: размеры/обозначения на видах** (нужен спайк по размерным интерфейсам). +- 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` — проще). - **ВЕХА 2 (2D-ЧЕРТЁЖ) НАЧАТА:** `drawing_create_standard_views(partFilePath, scale, x, y)` СДЕЛАН (инкремент 1) — стандартные ассоциативные виды (спереди/сверху/слева) детали/сборки на активном чертеже (API7, `DrawingService`, namespace `Kompas.Mcp.Core.Drawings`). Workflow: @@ -112,14 +116,15 @@ FirstLevel=false)` (мировые координаты с учётом placemen (спереди/сверху/слева) детали/сборки на чертеже. `AddStandartViews(path, "#Спереди", object[]{1,3,5}, x, y, scale, 20, 20)`; проверено `created==3` + непустота. Память: `kompas-drawing-api7`. -2. ✅ **СДЕЛАНО:** `drawing_fill_title_block(designation?, name?, material?)` — основная надпись - (штамп). `LayoutSheets.ItemByNumber[1].Stamp.Text[id].Str` + `Update()`. Память `kompas-drawing-api7`. -3. **СЛЕДУЮЩЕЕ:** размеры/обозначения на видах (линейные/диаметральные). Точки входа: контейнер вида - (`IDrawingContainer`) → размерные интерфейсы `ILineDimension`/`IDiametralDimension`/`IRadialDimension`/ - `IAngleDimension` (есть в interop, подтверждено рефлексией). **Сначала рефлексия + `kompas-sdk-research` - + спайк ДО спека** (привязка размера к геометрии вида, координаты внутри вида — реальная - неопределённость). Тест — `IView.ObjectCount` вырос / размер существует. Альтернатива: рамка/формат - листа (`ILayoutSheet.Format`/`SheetFormat`) — проще, но менее ценно, чем размеры. +2. ✅ **СДЕЛАНО:** `drawing_fill_title_block(designation?, name?, material?)` — основная надпись. +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`). Тонкости: чертёж проверяется не объёмом, а числом видов/объектов; ассоциативные виды требуют сохранённого `.m3d`/`.a3d`-файла. Коды видов `ksRelativeProjectionTypeEnum`: `ksPtFront=1`,