Files
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

77 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TODO проекта kompas3d-mcp
Канонический бэклог **оставшихся** этапов. Что уже сделано — см. `CLAUDE.md` → «Current state» и
`docs/ARCHITECTURE.md` §10 (дорожная карта). Метод работы над этапом — `docs/superpowers/NEXT-SESSION.md`
(спайк → спек → ревью Codex → TDD → ревью реализации → доки → merge/push).
Статус: ☐ не начато · ▣ частично · ⛔ заблокировано (недостижимо текущим COM API) · ✓ сделано
---
## Веха 2D-ЧЕРТЁЖ — текущий фокус (самый ценный растущий класс)
Готово: стандартные виды, основная надпись (штамп), размеры (линейный/диаметральный/радиальный/угловой),
текстовые обозначения (шероховатость, свободный текст, технические требования).
-**Ассоциативная привязка размеров и шероховатости к геометрии вида** (`BaseObject`/`BaseObject1/2`).
Обозначение «прилипает» к геометрии вида и обновляется с моделью, а не задаётся координатами.
- ✓ Диаметральный/радиальный → **окружность** (`Circles`): флаг `associate` (инкремент 7); поиск по
центру+радиусу (`CircularObjectMatch`), значение Ø/R из геометрии.
- ☐ Привязка к **дуге** (`Arcs`) — нужен свой спайк (`IArc` как `BaseObject`; дуги одного родителя
неотличимы по центру+радиусу — нужен ключ по углу/точке).
-**Угловой** → пара отрезков (`BaseObject1/2`, `LineSegments`).
-**Шероховатость**`IRough.BaseObject` (привязка к контуру/ребру).
- ⛔/☐ **Линейный**у `ILineDimension` нет `BaseObject`; нужен иной механизм (отложено).
-**Формат/ориентация листа** (A0A5/user, книжная/альбомная) — `drawing_set_sheet_format`
(инкремент 8); `ILayoutSheet.Format`/`ISheetFormat`. Остаётся: ☐ рамка/основная надпись по
конкретному ГОСТ-стилю оформления (`LayoutLibraryFileName`/`LayoutStyleNumber`), несколько листов.
-**Выноски** (`Leaders`) — `drawing_add_leader` (инкремент 9): остриё + полка с текстом,
`shelfDirection`. Остаётся: ☐ многострочный/под-полкой текст (`TextUnderShelf`), несколько
ответвлений, привязка к геометрии (`IBranchs.SetBaseObject`), спец. выноски (позиция/клеймо/маркер).
-**Обозначения баз** (`Bases`) — `ISymbols2DContainer.Bases`.
-**Допуски формы и расположения** (`Tolerances`) — `ISymbols2DContainer.Tolerances` (обычно в связке с базой).
- ☐ (опц.) **Доп. виды**: разрез/сечение (`CutLines`), выносной элемент (`RemoteElements`), местный вид.
- ☐ (опц.) **Осевые линии / обозначения центра** (`AxisLines`, `CentreMarkers`).
## Класс СБОРКИ
Готово: вставка компонента (`assembly_add_component`), сопряжения `coincidence`/`distance`.
-**Доп. типы сопряжений**: `parallel`, `perpendicular`, `concentric`, `angle`, `tangency`
(`MateConstraintType`; механика `assembly_add_mate` готова — расширить enum `MateType` + валидаторы).
-**Авто-позиционирование** компонентов (решатель сопряжений по нескольким связям).
-**Спецификация** (`ISpecification`) — таблица состава изделия.
## Класс ДЕТАЛЬ / параметрика / геометрия
Готово: насыщен (эскизы, формообразующие, массивы/зеркало, отверстия, уклон, переменные, STEP,
прямое редактирование B-rep, структурный осмотр) — см. `ARCHITECTURE.md` §10.
-**Параметрические эскизы** (размер эскиза управляется переменной) — недостижимо через COM API
(`ksCDimWithVariable` не конструируется из внешней автоматизации). См.
`docs/superpowers/specs/2026-05-27-parametric-sketch-findings.md`. **Не повторять** без новой информации.
-**Пакет E (вспомогательная геометрия, продолжение)**: ось, точка, плоскость по 3 точкам / по углу
(`sketch_create_on_offset_plane` уже есть).
-**Рассечение/перемещение тела как инструменты** (`SplitSolids`/`BodyRepositions`) — механика есть
(`split_solid_by_plane`, `move_body` частично), полный workflow split-reposition не продуктизирован.
-**Свойства документа** (`IPropertyMng`/`IPropertyKeeper`) — чтение/запись пользовательских свойств.
## Сквозное / инфраструктура / технический долг
-**Утечки транзитных RCW** (долг v2-2): `EntityCollection`/`GetTopPart`/QI-контейнеры/`IRoughParams`
и пр. не освобождаются → накопление за длинную сессию. Нужна единая стратегия (scope/`ReleaseComObject`),
не точечно — поэтому отложено как самостоятельный этап.
-**Насос сообщений / отмена**: `CancellationToken` не прерывает идущий COM-вызов; модальный диалог
КОМПАС блокирует всю очередь STA-потока.
-**Транспорт HTTP/SSE** — опция для удалённых клиентов (сейчас только stdio).
## Навык / методика
- ☐ Промотировать проверенные приёмы 2D-чертежа из `usecases/` в навык `.claude/skills/kompas-3d/`
(playbook «оформление чертежа»: виды → размеры → обозначения → штамп → тех. требования).
---
*Обновлять по завершении каждого инкремента (отмечать ✓, добавлять вскрытые подэтапы). Источник
приоритетов для следующей сессии — верх раздела «2D-ЧЕРТЁЖ».*