Repository navigation
RU codex docs document model v9
Документ v9 добавляет assembly в виде графа с отдельной версией, существующий рядом с моделью эскизов и элементов. При чтении предыдущие снимки вплоть до v8 мигрируют к пустому графу; прочтение не перезаписывает project.json. Успешная команда Core с блокировкой атомарно фиксирует мигрированный снимок и историю. Версия оболочки проекта остаётся 1. Предыдущие контракты: v8, v7.
{
"assembly": {
"version": 1, "units": "mm",
"parts": [{"id": "part:<uuid>", "name": "Кронштейн", "body_id": "body:<uuid>"}],
"subassemblies": [{"id": "subassembly:<uuid>", "name": "Рама"}],
"instances": [{
"id": "instance:<uuid>", "name": "Левый кронштейн",
"parent_id": null, "target_id": "part:<uuid>",
"translation": [0, 0, 0], "rotation": [1, 0, 0, 0]
}]
}
}Каждая деталь ссылается на одно уже существующее редактируемое тело в том же проекте. Импортированная STEP-деталь сохраняет исходную историю элементов и происхождение файла. Несколько экземпляров одной детали используют её авторитетные тело и историю элементов: отдельные копии B-rep для каждого экземпляра в документ не записываются. Если изменить исходное тело текущими параметрическими командами, Core обновит зависимые элементы в существующей транзакции; экземпляры показывают новую геометрию после фиксации следующей ревизии. Преобразования сборки не перестраивают исходную B-rep.
Экземпляр ссылается на деталь или подсборку. Корневой экземпляр имеет parent_id=null; непустой parent_id должен указывать на подсборку. Преобразования экземпляров подсборок составляются вдоль путей от корня к листу. Используются правые жёсткие кватернионы порядка [w, x, y, z] и переносы [x, y, z]. Все значения должны быть конечными; длина кватерниона — единичной с точностью 1e-6. Поддерживаются только мм; остальные единицы отклоняются, масштаб не угадывается.
Отклоняются повторные ID, ссылки на отсутствующие тела, родителя или цель, циклические ссылки подсборок и попытки удалить используемое тело/компонент. Подсборки без корневых экземпляров не отображаются, но их определения сохраняются.
Создание и редактирование выполняются через POST /api/v1/agent/projects/{id}/commands с обычной блокировкой изменения и expected_revision либо тем же MCP-инструментом cadyx_execute_command. Версионированные preview транзакций и фиксация используют существующий путь Core. Команды и поля:
-
create_assembly_part—body_id, необязательноеname; -
create_subassembly—name; -
add_assembly_instance—target_id, необязательныеparent_id,name,translation,rotation; -
transform_assembly_instance—instance_idи хотя бы одно полеtranslationилиrotation; -
remove_assembly_instance—instance_id; -
remove_assembly_component— неиспользуемый где-либоcomponent_id.
Read-only инспекция проекта возвращает этот граф вместе с ревизией документа. Общий viewport показывает размещённые экземпляры деталей с постоянным путём экземпляра, ID исходного тела и именем экземпляра; размещённые тела булевой операцией не объединяются. Разные исходные тела триангулируются единожды на сцену; экземпляры расширяются только преобразованными вершинами на транспортном уровне.
Обход отображения ограничен глубиной вложенности 32 и 4096 экземплярами деталей. Слишком большой граф отклоняется с явной ошибкой.
Ограничения при введении v9: не было связей деталей между проектами, отдельных единиц и общей конверсии единиц, сопряжений, массы/инерции, проверки движения, точного STEP-экспорта всей сборки и редактирования из браузера. Не считайте этот исторический список v9 перечнем нынешних возможностей: v10 добавила сопряжения, v11 — материалы; масса и проверка зазоров в дискретных положениях добавили read-only инженерные измерения. Сертификация отсутствия столкновений на непрерывной траектории и STEP-экспорт сборки по-прежнему не поддерживаются.
Для отображения используется развёрнутая сеточная сцена, не GPU-инстансинг; сохраняемые исходные B-rep остаются общими. Прежде чем утверждать совместимость нативной Windows-среды и браузера, требуются соответствующие регрессии CI.