Инкремент 9. 83 инструмента, 331 тест. + заметка о ревью реализации в спеке
(Codex + pi/glm-5.1 + pi/kimi-k2.6).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Инкремент 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>
Инкремент 7. 81 инструмент (associate — флаг существующих), 278 тестов.
CLAUDE.md также включает структурную чистку (делегирование каталога/дорожной карты/
бэклога в README/ARCHITECTURE/TODO без дублирования).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
78 инструментов, 241 тест. Базовое семейство размеров 2D-чертежа завершено
(линейный, диаметральный, радиальный, угловой).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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>
README/CLAUDE/ARCHITECTURE/OPEN_QUESTIONS/presentation.html: счётчики 73→74,
177→188; drawing_fill_title_block в группе Drawing; факты основной надписи
(LayoutSheets.ItemByNumber[1].Stamp, Text[id].Str индексировано, StampField→графы).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
README/CLAUDE/ARCHITECTURE/OPEN_QUESTIONS/presentation.html: счётчики 72→73,
156→177; новая группа инструментов Drawing; факты DrawingService (AddStandartViews,
ProjectionsTypes=object[]{1,3,5} SAFEARRAY VT_I4, created==3, непустота по новым
видам, откат IView.Delete).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- сообщение shell считает грани после дедупликации (Distinct)
- тест переименован (open_cap) + комментарий о симметрии торцов
- RCW-долг транзитов shell задокументирован в OPEN_QUESTIONS v2-2
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Новый слой «модель как данные» (приоритетный над model_snapshot):
- describe_model — структурный «паспорт» детали одним вызовом (габарит,
МЦХ, тела, сводка топологии, дерево построения с параметрами, переменные)
- list_features / list_bodies / list_variables
- describe_face / describe_edge (drill-down по индексу)
- measure (расстояние/угол между гранями/рёбрами/вершинами)
- model_snapshot понижен до fallback для визуально-пространственных вопросов
Реализация: ModelInspectionService (COM) + чистый InspectionText (рендер,
группировка, детект «импорт без истории») + record-модели; InspectionTools.
Дерево читается через ksPart.GetFeature()->SubFeatureCollection; точный тип
и параметры операций берутся из GetObject()->GetDefinition() (ksFeature.type
отдаёт лишь coarse o3d_entity).
Снимок дерева также включает слои conversion (STEP), editing (move_face/solid)
и validation, развивавшиеся параллельно. Полный прогон: 61 тест зелёный,
43 MCP-инструмента. Документация (README, ARCHITECTURE, OPEN_QUESTIONS,
CLAUDE.md, presentation.html) синхронизирована.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
docs: ревью v2 в OPEN_QUESTIONS (направление операций, индексы граней, утечки RCW)
Зафиксированы наблюдения по новому слою v2 и отложенные на проработку пункты
(v2-1 направление boss/cut на грани зависит от нормали; v2-2 транзитные RCW в
PartModeler; v2-3 стабильность индексов граней; v2-4 fillet/chamfer по одному ребру),
а также принятые по ходу решения (углы вращения, габариты).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
feat(sketch): эскиз на выбранной грани + МЦХ через API5
sketch_create_on_face: OpenSketchOnFaceAsync выбирает плоскую грань по точке
(ksPart.EntityCollection(o3d_face).SelectByPoint) и создаёт на ней эскиз —
ключевой шаг итеративного цикла «построил → выбрал грань → новый эскиз».
Общее ядро создания эскиза вынесено в CreateSketchOn.
QueryService переписан на API5 ksPart.CalcMassInertiaProperties(ST_MIX_MM|ST_MIX_KG):
- API7 IMassInertiaParam7.Calculate() непригоден — флаг Actual «залипает» после
первого расчёта, повторный запрос отдавал устаревший объём (баг кэша);
- API5-маршрут считает по запросу и согласован с построением через ksPart;
- единицы (мм³/мм²/кг/мм) задаются битовым вектором.
Тест Sketch_on_face_adds_boss_on_top: запрос → штифт R5×H10 на верхней грани
цилиндра → повторный запрос видит прирост ≈785 мм³ (проверяет и грань, и кэш МЦХ).
Презентация: 20 инструментов, 15 тестов; OPEN_QUESTIONS обновлён.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@