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