Repository navigation
RU codex docs project checks
check_project объединяет существующие проверки CADYX для точной сохранённой ревизии. Документ не меняется, блокировка записи не запрашивается. Инструмент предназначен внешнему агенту; это не автономный контроллер CAD.
Вызовите core.check_project(project_id, expected_revision, ...), маршрут POST /api/v1/agent/projects/{id}/validations/project-check или MCP-инструмент cadyx_check_project. Обязателен expected_revision. Необязательные параметры: specification (существующая спецификация модели v1), strict, export_body_id, require_assembly, require_drawings, max_bodies (1–128), time_budget_seconds (больше 0 и не больше 120), deterministic_rebuild (по умолчанию false) и persist (по умолчанию false). Core также принимает функцию cancelled.
Отмена и дедлайн срабатывают между этапами и проверками спецификации. Эта операция не может прервать уже выполняющийся вызов нативного геометрического ядра.
Ответ JSON версии 1 содержит project_id, revision, status, passed, strict, counts, limits и упорядоченный массив stages. Каждый этап содержит id, status (pass, fail или untested), required, method и evidence.
Этапы:
-
document_graph: существующая проверка схемы документа, объектов и ссылок. -
geometry: существующая проверка сохранённой текущей геометрии в Core/ядре. -
specification: существующая спецификация модели с проверками размеров, зазоров, сохранения геометрии и толщины, каждая с защитой ревизии. Этап обязателен только при переданной спецификации. -
export_eligibility: наличие исходной B-rep, единственное тело, положительный объём, метрики ядра и поддержка экспортёра. Это только предварительная проверка: она не подтверждает корректную выдачу STEP/STL и не выполняет обратный импорт. Если тел несколько, обязательно задайтеexport_body_id. -
deterministic_rebuild(необязательный): изолированно перестраивает сохранённые поддерживаемые параметрические корневые и производные элементы, затем повторяет перестроение на полученной копии. Сверяются SHA-256 канонических параметров проекта, привязок и графа сущностей; хеши дескрипторов геометрии; корректность OCCT B-rep; объёмы, габаритные параллелепипеды и топология сохранённого, холодного и повторного тёплого результатов. Допуск численных метрик: абсолютный1e-8единиц модели и относительный1e-9. Изменение графа или измеряемых метрик даётfail. Неизвестные операции элементов, бюджет/отмена либо изменённые хеши дескрипторов при совпадающих грубых метриках явно даютuntested: совпадение объёма и границ не доказывает идентичность формы. Этап обязателен только при явном запросе. «Холодная» проверка означает отдельно загруженную копию документа в текущем процессе хоста, не новый процесс ОС или новую DLL OCCT. Проверяется только сохранённая ревизия, не произвольно изменённые входы между ревизиями. Выдавливания произвольных плоскостей перестраиваются той же операцией Command System, что и при редактировании параметров, с сохранением профиля, начала и нормали плоскости, локальной оси X и глубины. Бюджет нативной операции проверяется на границах этапов; прервать её нельзя. -
assemblyиdrawings: не поддерживаются в составном конвейере проверки проекта и имеют статусuntested; требуются только при явном запросе. Есть отдельные проверки массы сборки с привязкой к ревизии и посадки по дискретным положениям. Они не подменяют автоматически этапassemblyв общей проверке. Для недоступных составных backend нельзя выдумывать доказательства.
Только обязательные этапы определяют общий status: сначала приоритет у fail, затем untested, иначе pass. В режиме strict также ставится passed=false, если обязательный этап имеет статус untested; фактический статус этапа остаётся untested.
Сохранение необязательной записи в боковую базу через persist=true не меняет ревизию CAD-документа. Запись проверки проекта содержит общий SHA-256 сохранённых геометрий тел в стабильном порядке по ID тел. Конкурирующее сохранение вызывает REVISION_CONFLICT.
python -m cadyx.check_project --projects-dir projects --project-id PROJECT_UUID --expected-revision 12 --strict --specification requirements.json --export-body-id body:UUID --deterministic-rebuild > report.jsonКод завершения 0 означает, что проверка принята. Код 1 — измеренный отказ или обязательный untested в строгом режиме. Код 2 — некорректный ввод, отсутствующий проект или несовпадение ревизии. CI может запустить команду напрямую и сохранить JSON-отчёт. Проверка ядра требует настроенной нативной среды Windows OCCT. CLI не меняет пользовательские файлы.