docs: handoff — линейные размеры готовы (инкремент 3 чертежа); далее — диаметр/радиус
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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`,
|
||||
|
||||
Reference in New Issue
Block a user