Skip to content

RU codex docs document model v9

rkfsociety edited this page Oct 21, 2026 · 1 revision

Модель документа CADYX 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.

Clone this wiki locally