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

7.1 KiB
Raw Permalink Blame History

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-ЧЕРТЁЖ».