175 Commits

Author SHA1 Message Date
mikhail 7cb44a073e docs: handoff — инкремент 9 (выноска) завершён; далее — базы/допуски формы
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 00:34:18 +03:00
mikhail 16406a34be Merge feat/drawing-leader: линия-выноска с текстом (инкремент 9)
drawing_add_leader через ISymbols2DContainer.Leaders + IBranchs. 83 инструмента,
331 тест зелёный. Ревью: Codex + pi/glm-5.1 + pi/kimi-k2.6.
2026-05-28 00:33:33 +03:00
mikhail 5d51b9e1af docs: выноска — TODO, README, ARCHITECTURE, OPEN_QUESTIONS, presentation, CLAUDE.md
Инкремент 9. 83 инструмента, 331 тест. + заметка о ревью реализации в спеке
(Codex + pi/glm-5.1 + pi/kimi-k2.6).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 00:33:33 +03:00
mikhail beaa220510 review(drawing): правки по ревью реализации (Codex + pi/glm-5.1 + pi/kimi-k2.6)
- проверка возврата AddBranchByPoint/SetBranchTextPosition (bool) — ранняя диагностика
  вместо позднего RPC_E_SERVERFAULT (Codex, glm)
- RU-алиасы в сообщении ShelfDirections.Parse и в описании инструмента (glm, kimi)
- интеграционный тест направления полки параметризован Right/Left/Up/Down — покрывает
  всю поверхность ToKompas на реальном COM (glm, kimi)
- отклонено (обоснование): unit ToKompas (граница проекта), e2e tool-обёртки (тонкая),
  angleDeg (нет Angle у ILeader), default text у AddText (вне объёма)

331 тест зелёный, сборка Release чистая.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 00:28:04 +03:00
mikhail f89ad951ae feat(drawing): линия-выноска с текстом (drawing_add_leader)
Выноска на виде через API7 ISymbols2DContainer.Leaders. Стрелка указывает в (x,y),
текст на полке у (textX,textY). shelfDirection: auto|right|left|up|down.

- DrawingService.AddLeaderAsync + GetViewLeaderCountAsync
- ShelfDirection (enum + Parse/ToKompas), переиспользует DrawingAnnotationResult
- 13 unit + 7 интеграционных тестов (всего 328 зелёных), сборка Release чистая

КЛЮЧ (спайк): новая выноска имеет 0 ответвлений — сначала (IBranchs)bl.AddBranchByPoint(0,x,y)
(остриё), ИНАЧЕ КОМПАС падает RPC_E_SERVERFAULT; затем SetBranchTextPosition (полка),
(ILeader)bl.TextOnShelf.Str (текст), Update. Ревью спека Codex+pi/glm-5.1+pi/kimi-k2.6 учтено
(QI as?? throw, read-back ?? empty, RequireDistinctPoints, RU-алиасы, критический порядок).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 00:18:08 +03:00
mikhail 08191db25c docs: handoff — инкремент 8 (формат листа) завершён; ревью-гейт = Codex + pi/glm-5.1 + pi/kimi-k2.6
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 23:35:22 +03:00
mikhail e60c8d48e4 Merge feat/drawing-sheet-format: формат и ориентация листа (инкремент 8)
drawing_set_sheet_format (A0–A5/user + книжная/альбомная) через ILayoutSheet.Format.
82 инструмента, 308 тестов зелёных. Ревью: Codex + pi/glm-5.1 + pi/kimi-k2.6.
2026-05-27 23:34:33 +03:00
mikhail 4937b9e677 docs: формат/ориентация листа — TODO, README, ARCHITECTURE, OPEN_QUESTIONS, presentation, CLAUDE.md
Инкремент 8. 82 инструмента, 308 тестов. + заметка о ревью реализации в спеке
(Codex + pi/glm-5.1 + pi/kimi-k2.6; K1 снят спайком — КОМПАС сам выводит ориентацию user).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 23:34:15 +03:00
mikhail 24f3531a3c review(drawing): правки по ревью реализации (Codex + pi/glm-5.1 + pi/kimi-k2.6)
- K1 (kimi, Major): спайк подтвердил — для User КОМПАС САМ выводит VerticalOrientation
  из W/H (игнорирует флаг, W/H не свопает); read-back корректен, правка не нужна —
  задокументировано комментарием + тесты на Landscape (500×300→альбомная, 300×500→книжная)
- K2: ValidateFormatDimensions называет точный нарушивший параметр (width/height)
- тесты: A1 в Parse (C3), A4 landscape со свопом 297×210 (G2), sheetNumber=0 (C2/G3)
- отклонено (нит): алиасы в описании (G4), сообщение NaN (G5), тип исключения standard (K5)

308 тестов зелёных, сборка Release чистая.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 23:28:34 +03:00
mikhail 56ed2cb0cf feat(drawing): формат и ориентация листа (drawing_set_sheet_format)
Задать формат (A0–A5/user) и ориентацию (книжная/альбомная) листа чертежа через
API7 ILayoutSheet.Format (ISheetFormat). Стандартный формат — размеры авто; user —
явные width/height (landscape игнорируется, ориентация из соотношения сторон).

- DrawingService.SetSheetFormatAsync + RequireLayoutSheet
- PaperFormat (enum + Parse/ToKompas/FromKompas), SheetFormatResult
- DrawingValidation.ValidateFormatDimensions (user: >0; стандартный: размеры запрещены)
- 19 unit + 7 интеграционных тестов (всего 304 зелёных), сборка Release чистая

Спайк подтвердил: дефолт A4 portrait; стандартный формат пересчитывает W/H авто
(A3 landscape→420×297); user применяет width/height. Ревью спека pi/glm-5.1 + pi/kimi-k2.6
учтено (FromKompas для дружелюбного имени, запрет размеров у стандартного, sheetNumber>0,
landscape игнорируется для user).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 23:19:37 +03:00
mikhail adc9da37fa Merge feat/skill-kompas-fdm-design: навык проектирования под FDM (DFM-методика + гео-аудит) 2026-05-27 23:00:00 +03:00
mikhail f490c146c7 fix(skill): kompas-fdm-design — уточнить угол θ_max vs α (финальное ревью) 2026-05-27 22:53:51 +03:00
mikhail a87957582c docs: упомянуть навык kompas-fdm-design (проектирование под FDM) 2026-05-27 22:49:30 +03:00
mikhail 178ca48faf feat(skill): kompas-fdm-design — references/geometry-audit.md (самопроверка + границы) 2026-05-27 22:45:23 +03:00
mikhail 38f2687c8d feat(skill): kompas-fdm-design — references/fdm-rules.md (полный свод DFM) 2026-05-27 22:44:06 +03:00
mikhail 2fb0f8347d feat(skill): kompas-fdm-design — диспетчер SKILL.md (правила DFM + гео-аудит) 2026-05-27 22:33:18 +03:00
mikhail a5de3566ba Update agent definitions (.claude/agents/docs-maintainer.md, kompaz-sdk-research.md) 2026-05-27 22:21:13 +03:00
mikhail df7bf92884 docs(skill): spec + план навыка kompas-fdm-design (проектирование под FDM)
Дизайн и план реализации нового навыка kompas-fdm-design — методика
проектирования деталей под FDM-печать (правила DFM + лёгкий гео-аудит),
отдельный от kompas-3d, без слайсера, экспорт через export_step.

Выверено консультациями pi (glm-5.1, kimi-k2.6) и 6 ревью (spec x3, план x3).
Сам навык (SKILL.md + references/) по плану — РЕАЛИЗАЦИЯ ПРЕДСТОИТ.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 22:18:27 +03:00
mikhail 7b50ac1a5d docs: handoff — инкремент 7 (ассоциативная привязка) завершён; далее — дуга/угловой/формат
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 22:01:00 +03:00
mikhail 8f4567732e Merge feat/drawing-associative-dimension: ассоциативная привязка размеров (инкремент 7)
Флаг associate у диаметрального/радиального — привязка к спроецированной окружности
через BaseObject (значение из геометрии). 81 инструмент, 278 тестов зелёных.
2026-05-27 22:00:16 +03:00
mikhail ff5fb27dd5 docs: ассоциативная привязка диам./радиального — TODO, README, ARCHITECTURE, OPEN_QUESTIONS, presentation, CLAUDE.md
Инкремент 7. 81 инструмент (associate — флаг существующих), 278 тестов.
CLAUDE.md также включает структурную чистку (делегирование каталога/дорожной карты/
бэклога в README/ARCHITECTURE/TODO без дублирования).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:57:45 +03:00
mikhail ecf2e22265 docs: сжать и оптимизировать CLAUDE.md (−36% слов)
Каталог инструментов из «Current state» свёрнут в указатель на README
§Инструменты (единый источник правды); дубль-каталог «are done» / «not yet
done» убран в пользу ARCHITECTURE §10 и TODO.md. Уникальные COM-гочи из
него перенесены в структурированный bullet про Drawing. В bullets
«don't relearn» подрезан boilerplate (имена файлов, DI, валидаторы) —
все COM-цепочки и эмпирика сохранены. Исправлена модель субагента
kompas-sdk-research: Sonnet на Haiku (рассинхрон с определением агента).
Включает текущие инкрементальные правки (счётчики тестов, заметка об
ассоциативной привязке размеров).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:55:12 +03:00
mikhail d3b3a7d589 review(drawing): правки по ревью реализации Codex (ассоциативная привязка)
- свободный путь (associate=false) берёт только ISymbols2DContainer (как раньше) —
  IDrawingContainer запрашивается лишь при associate=true (не расширяем поверхность отказа)
- XML-доки диаметрального/радиального уточнены: при associate значение из геометрии

16 тестов привязки+регрессии зелёные, сборка Release чистая.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:52:35 +03:00
mikhail 775128484e feat(drawing): ассоциативная привязка диаметрального/радиального размера к окружности вида
Флаг associate у drawing_add_diametral_dimension/drawing_add_radial_dimension:
- associate=false (по умолчанию) — прежний свободный размер (без изменений);
- associate=true — (xc,yc,radius) как ключ поиска спроецированной окружности
  (IDrawingContainer.Circles), привязка через BaseObject; значение Ø/R читается
  из геометрии и обновляется с моделью.

- CircularObjectMatch.SelectMatchIndex (чистый отбор по центру+радиусу, допуск 1 мм;
  бросает при отсутствии/неоднозначности; концентрические разделяются радиусом)
- RequireViewContainers (вид → ISymbols2DContainer + IDrawingContainer), CollectCircles, FindBaseCircle
- 5 unit + 6 интеграционных тестов (всего 278 зелёных), сборка Release чистая

Спайк подтвердил: BaseObject=circle без задания Xc/Yc/Radius → Valid, NominalValue из
геометрии (Ø=20/R=10 для R10). Объём — только окружности (Circles); дуги/угловой/линейный —
далее. Ревью Codex спека учтено (оба контейнера, guard вокруг блока, доказательство
ассоциативности тестом radius=10.3→Ø20, регресс обоих свободных путей).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:47:17 +03:00
mikhail ecabaa1828 docs: добавить канонический бэклог оставшихся этапов (docs/TODO.md)
Консолидация дорожной карты по классам (2D-чертёж/сборки/деталь) + сквозное/тех.долг
со статусами (☐/▣/). Ссылки из CLAUDE.md и NEXT-SESSION.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:27:49 +03:00
mikhail 23341092cb docs: handoff — инкремент 6 (текстовые обозначения) завершён; далее — привязка/формат/выноски
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:23:50 +03:00
mikhail 679171c5a7 Merge feat/drawing-text-annotations: текстовые обозначения чертежа (инкремент 6)
Шероховатость, свободный текст, технические требования. 81 инструмент, 267 тестов зелёных.
2026-05-27 21:22:43 +03:00
mikhail d8edb18f06 docs: текстовые обозначения чертежа — README, ARCHITECTURE, OPEN_QUESTIONS, presentation, CLAUDE.md
81 инструментов, 267 тестов. 2D-чертёж: добавлены шероховатость, свободный текст,
технические требования (инкремент 6).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:22:35 +03:00
mikhail 5272066bef feat(drawing): текстовые обозначения — шероховатость, текст, тех. требования
drawing_add_rough (знак шероховатости: ISymbols2DContainer.Roughs + IRoughParams,
SignType ksRoughSignEnum, значение Ra/Rz через RoughParamText.Str),
drawing_add_text (свободная надпись: IDrawingContainer.DrawingTexts + IText.Str),
drawing_set_technical_requirements (блок тех. требований уровня документа:
IDrawingDocument.TechnicalDemand.Text).

- DrawingService: AddRoughAsync/AddTextAsync/SetTechnicalRequirementsAsync +
  ReadTechnicalRequirementsAsync + счётчики; RequireDrawingContainer/RequireTechnicalDemand
- RoughSignType (enum + Parse/ToKompas), DrawingAnnotationResult (Value read-back из COM)
- RequireNonEmptyText в DrawingValidation
- 13 unit + 13 интеграционных тестов (всего 267 зелёных), сборка Release чистая

Спайк подтвердил: значение шероховатости через IRoughParams.RoughParamText.Str (round-trip);
текст НЕ в IView.ObjectCount (счёт по DrawingTexts.Count); тех. требования IsCreated False→True
при первом Text.Str+Update, многострочно через \n. Ревью Codex спека учтено (height убран —
это высота блока, не шрифт; guards; read-back возврат). Спек — docs/superpowers/specs/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 21:13:11 +03:00
mikhail 1f153e43ab chore: усилить description делегатов — проактивные триггеры
kompas-sdk-research и docs-maintainer почти не вызывались (по транскриптам:
2 и 1 раз против 40 у general-purpose). Причина — описания ждали явной
реплики пользователя, а в автономном цикле NEXT-SESSION её нет.

- Триггеры переписаны на проактивные, от лица Opus, с привязкой к шагу цикла
  (SDK-лукап — перед кодом; доки — перед коммитом, после реализации).
- kompas-sdk-research: «(Sonnet)» → «(Haiku, read-only)» (соответствие model:),
  снят барьер делегирования (ответ дёшев, перепроверяется рефлексией по interop),
  добавлены негативные границы (не геометрия, не KsAPI).
- docs-maintainer: в охват явно добавлены CLAUDE.md и OPEN_QUESTIONS.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 20:42:29 +03:00
mikhail 328e89a6e7 docs: handoff — инкремент 5 (радиальный/угловой) завершён; далее — привязка/формат/обозначения
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 20:05:10 +03:00
mikhail 7fa434afae Merge feat/drawing-radial-angular-dimension: радиальный и угловой размеры (инкремент 5)
Завершено базовое семейство размеров 2D-чертежа. 78 инструментов, 241 тест зелёный.
2026-05-27 20:03:41 +03:00
mikhail db9d76a7bd docs: радиальный и угловой размеры — README, ARCHITECTURE, OPEN_QUESTIONS, presentation, CLAUDE.md
78 инструментов, 241 тест. Базовое семейство размеров 2D-чертежа завершено
(линейный, диаметральный, радиальный, угловой).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 20:03:35 +03:00
mikhail 86a5a52347 review(drawing): правки по ревью реализации Codex (угловой размер)
- описание (x3,y3) и сообщение об ошибке: угол выбирает angleType, не точка дуги
- тест angleType=Max (лучи 0°/45° → 135° тупой супплемент): min=45/max=135/more=315
- спек дополнен находкой о трёх типах угла

241 тест зелёный, сборка Release чистая.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 19:58:15 +03:00
mikhail 246233727c feat(drawing): радиальный (R) и угловой размеры на виде чертежа
drawing_add_radial_dimension (R окружности/дуги; NominalValue = радиус) и
drawing_add_angular_dimension (угол между двумя сторонами; angleType min/max/more
выбирает измеряемый сектор) через API7 ISymbols2DContainer. Завершают базовое
семейство размеров чертежа (после линейного и диаметрального).

- DrawingService: AddRadialDimensionAsync/AddAngularDimensionAsync + счётчики
- AngleDimensionType (enum + Parse/ToKompas, по образцу DimensionOrientations)
- DrawingDimensionResult.Value — единице-нейтральный (мм / градусы)
- 9 unit + 13 интеграционных тестов (всего 240 зелёных)

Спайк подтвердил: радиальный NominalValue = РАДИУС (не диаметр, вопреки справке);
у углового измеряемый угол выбирает angleType (min=90°/more=270°), а (x3,y3) лишь
позиционирует дугу. Спек и ревью Codex — docs/superpowers/specs/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 19:51:10 +03:00
mikhail 93a67d318e docs: CLAUDE.md — описать субагентов-делегатов (kompas-sdk-research, docs-maintainer)
Раздел «Delegation subagents» рядом с принципом проекта: модели (Haiku/Sonnet),
наборы инструментов, когда диспетчить, обоснование сплита моделей.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 19:15:17 +03:00
mikhail 35e06e8786 docs: NEXT-SESSION — снизить якорение, оптимизировать хэндофф-промт
Сокращён со 117 до ~40 строк. Убраны пред-решённый следующий инкремент,
пред-разведанные точки входа API (RadialDimensions/AngleDimensions, сниппет
рефлексии), развёрнутый процесс/ловушки/паттерн теста — заменены указателями
на CLAUDE.md / навык kompas-3d / авто-память. Текущее состояние свёрнуто до
инвентаря по классам. Модель сама разведывает API и выбирает инкремент —
эффект свежего взгляда.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 19:08:53 +03:00
mikhail 4e017fc1cf docs: README — убрать избыточную конкретику из секции «Архитектура (кратко)»
Свёрнуты method-level цепочки вызовов и имена внутренних сервисов до уровня
обзора; детали реализации — по ссылке в ARCHITECTURE.md/CLAUDE.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 19:01:12 +03:00
mikhail 92e869006f chore: kompas-sdk-research → Haiku (поиск-извлечение, ошибка ловится сверкой interop)
docs-maintainer остаётся на Sonnet (правит канонические доки, нужно суждение).
Обновлены подписи моделей в README.md и NEXT-SESSION.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:59:21 +03:00
mikhail 454a90100a refactor: навыки-делегаторы → нативные субагенты
docs-delegate и kompas-sdk-research были навыками-обёртками: их тело —
шаблон системного промпта, который Opus вручную копировал в вызов
general-purpose агента на Sonnet. Переоформлены в нативных субагентов
(.claude/agents/), где промпт живёт в теле определения, модель и набор
инструментов фиксируются во frontmatter.

- docs-delegate → docs-maintainer (имя по роли, а не по механизму);
  tools: Read/Edit/Write/Glob/Grep.
- kompas-sdk-research: read-only (tools: Glob/Grep/Read) — запрет правок
  теперь структурный, а не правило в промпте.
- Делегация теперь один вызов Agent(subagent_type, prompt) без копирования
  шаблона → экономия контекста Opus.
- Переписаны живые ссылки: CLAUDE.md, kompas-3d/SKILL.md, README.md,
  ARCHITECTURE.md, NEXT-SESSION.md. Старые каталоги навыков удалены.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:55:13 +03:00
mikhail ced95b742b docs: переписан handoff набело под продолжение (веха 2D-чертёж, инкремент 5)
Убраны наслоения старой сессии (фокус «начни со сборок», дубли состояния, стартовая
инструкция про IParts7). Актуально: 76 инструментов / 218 тестов; сборки завершены,
чертёж 4 инкремента; следующий — радиальный/угловой размер (A) или рамка/формат (B).
Процесс, ловушки, паттерн теста, отрицательный результат сохранены и сжаты.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:49:05 +03:00
mikhail ecf7b15e7a docs: handoff — диаметральный размер готов (инкремент 4 чертежа); далее — радиус/угол
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:45:54 +03:00
mikhail 17efc79ffb Merge feat/drawing-diametral-dimension: диаметральный размер на виде (инкремент 4)
drawing_add_diametral_dimension — Ø окружности на виде через API7
(ISymbols2DContainer.DiametralDimensions; значение=диаметр 2R, авто). Извлечён
общий RequireSymbols2DContainer. 76 инструментов, 218 тестов (141 unit + 77
integration). Спек + ревью Codex (спека и реализации) учтены.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:44:42 +03:00
mikhail 7359337a95 docs: drawing_add_diametral_dimension — диаметральные размеры (76 инструментов, 218 тестов)
README/CLAUDE/ARCHITECTURE/OPEN_QUESTIONS/presentation.html: счётчики 75→76,
203→218; drawing_add_diametral_dimension в группе Drawing; факты (ISymbols2DContainer.
DiametralDimensions, Xc/Yc/Radius/Angle радианы, NominalValue=2R, RequireSymbols2DContainer).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:44:42 +03:00
mikhail b6ca2f7b21 feat: drawing_add_diametral_dimension — упрочнение по ревью Codex реализации
#2: инвариант диаметра value>0 (value<=0||!IsFinite, не Abs<1e-6). #3: сообщение
create_standard_views обобщено (номера видов для инструментов размеров). #4a:
ToRadians проверяет конечность результата (переполнение). #5d: тест viewNumber:999
(вид не найден). #6: комментарий DimensionType переформулирован (COM-дефолт).

Тесты: DrawingDiametralTests 4→5. Итого 141 unit + 77 integration = 218.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:38:33 +03:00
mikhail 910d120c8a feat: drawing_add_diametral_dimension — диаметральный размер на виде (API7)
Веха 2D-ЧЕРТЁЖ, инкремент 4. DrawingService.AddDiametralDimensionAsync:
(ISymbols2DContainer)view.DiametralDimensions.Add → Xc/Yc/Radius/Angle(рад) +
AutoNominalValue → Update → Valid → NominalValue (= диаметр 2R). angle в градусах
(DimensionAngles.ToRadians). Новый инструмент drawing_add_diametral_dimension.

Рефактор по ревью Codex: извлечён RequireSymbols2DContainer(viewNumber) (общий для
линейных/диаметральных размеров); AutoNominalValue выставляется явно (как у линейного);
DimensionType — COM-дефолт; ToRadians — чистый helper с unit-тестом.

Валидаторы: RequirePositiveRadius (новый). Тесты: +10 unit (ToRadians,
RequirePositiveRadius), +4 integration (DrawingDiametralTests: диаметр=2R, адресация
вида, radius<=0, нет видов). Итого 141 unit + 76 integration = 217.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:30:04 +03:00
mikhail b6cd92b95c docs: спек drawing_add_diametral_dimension — диаметральный размер (API7)
Веха 2D-ЧЕРТЁЖ, инкремент 4. Спайк: (ISymbols2DContainer)view.DiametralDimensions.
Add → Xc/Yc/Radius/Angle(рад) → Update; NominalValue == диаметр (2R, проверено 30).
Angle экспонируется в градусах. Та же модель, что линейный размер.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:17:15 +03:00
mikhail cd76abd652 docs: handoff — линейные размеры готовы (инкремент 3 чертежа); далее — диаметр/радиус
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:14:40 +03:00
mikhail 2c594bc890 Merge feat/drawing-linear-dimension: линейный размер на виде (инкремент 3)
drawing_add_linear_dimension — линейный размер (horizontal/vertical/parallel) на
ассоциативном виде через API7 (ISymbols2DContainer.LineDimensions, авто-значение).
drawing_create_standard_views теперь возвращает ViewNumbers (адресация видов).
75 инструментов, 203 теста (131 unit + 72 integration). Спек + ревью Codex
(спека и реализации) учтены.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:13:46 +03:00
mikhail eda3242f62 docs: drawing_add_linear_dimension — линейные размеры (75 инструментов, 203 теста)
README/CLAUDE/ARCHITECTURE/OPEN_QUESTIONS/presentation.html: счётчики 74→75,
188→203; drawing_add_linear_dimension в группе Drawing; факты (ISymbols2DContainer
QI от вида, локальная СК вида, AutoNominalValue, размеры НЕ в IView.ObjectCount,
ViewNumbers в результате видов).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:13:46 +03:00