Инкремент 9. 83 инструмента, 331 тест. + заметка о ревью реализации в спеке (Codex + pi/glm-5.1 + pi/kimi-k2.6). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7.1 KiB
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; нужен иной механизм (отложено).
- ✓ Диаметральный/радиальный → окружность (
- ✓ Формат/ориентация листа (A0–A5/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готова — расширить enumMateType+ валидаторы). - ☐ Авто-позиционирование компонентов (решатель сопряжений по нескольким связям).
- ☐ Спецификация (
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-ЧЕРТЁЖ».