Skip to content

RU codex docs curve editing

rkfsociety edited this page Oct 21, 2026 · 1 revision

Трассировка кривой с подтверждением человека

При обычном создании CAD браузер CADYX служит только для наблюдения. Ограниченное исключение — исправление кривой при трассировке референса: локальный клиент может подготовить цепочку связанных прямых отрезков и круговых дуг, отменять и повторять изменения незаписанного черновика, а затем сохранить подтверждённую версию через ту же человеческую блокировку и Command System, что используются для любой мутации модели из браузера.

Диалог в браузере

В окне сканера доступен отдельный диалог ТРАССИРОВКА КРИВОЙ. Он намеренно находится за пределами обычного CAD viewport, чтобы основной интерфейс проекта оставался пассивным. В диалоге можно выбрать локальное исходное изображение и существующий проект, трассировать одну связную цепочку отрезками и круговыми дугами, отменять/повторять локальный черновик, замкнуть контур и задать систему координат «источник → модель».

Редактор не загружает и не сохраняет выбранное изображение. Браузер локально вычисляет SHA-256 и прикрепляет к сохранённой трассировке только хеш и сведения о системе координат. Перед записью диалог проверяет доступность проекта, считывает текущую ревизию документа, получает человеческую блокировку, отправляет версионированную команду трассировки и освобождает блокировку в finally. Если агент активен, проект заблокирован, требуется восстановление, ревизия устарела либо устарела версия трассировки, сервер отклоняет запись по своим актуальным правилам.

Границы черновика и сохранения

Незаписанные изменения остаются на клиенте. web/browser-api.js предоставляет TraceDraft — изолированную историю снимков с операциями replace, update, undo, redo; отмена и повтор не меняют состояние проекта. Интерфейс трассировки сканера следует тому же правилу.

Подтверждённая запись выполняется командой save_traced_curve_version через POST /api/v1/projects/{project_id}/commands при удерживаемой человеческой блокировке и с текущей ревизией проекта. Агент может использовать ту же команду через Agent API. Редактирование в браузере не обходит владение блокировкой, проверки ревизии, атомарность Core или политику доступности проекта.

Каждое подтверждение создаёт новый эскиз. Предыдущие эскизы с тем же trace_id — неизменяемые версии истории трассировки, они не обновляются на месте. base_version защищает от устаревшего сохранения в этой истории; при несовпадении возвращается REVISION_CONFLICT. Эта защита дополнительна к проверке ревизии документа проекта со стороны Core.

Происхождение источника и система координат

Для сохранения нужны:

  • source_image_sha256: 64-символьный SHA-256 байтов исходного изображения, использованного при трассировке;
  • coordinate_system.origin: координаты пикселей изображения, задающие начало системы модели;
  • coordinate_system.units_per_pixel: положительное число единиц модели на пиксель;
  • coordinate_system.unit: короткая метка единицы, сохраняемая для происхождения данных;
  • coordinate_system.y_axis: направление оси Y изображения — up или down;
  • segments: одна связная цепочка прямых или круговых дуг, заданная координатами исходного изображения.

Сервер не доверяет заранее преобразованным координатам модели. Он заново вычисляет каждую конечную точку, центр дуги, радиус и знаковый размах по исходным координатам изображения и описанию системы координат. Перед созданием обычных объектов точек/линий/окружностей сервер проверяет конечность величин, положительный масштаб и радиусы, невырожденность сегментов, диапазон размаха дуги, связность цепи и, если запрошено, замкнутость контура. Итоговую проверку сохранённой геометрии выполняет Document.validate().

В эскизе сохраняются trace_id, trace_version, нормализованный SHA-256 изображения, сведения о координатах, исходные определения сегментов и флаг того, был ли контур запрошен замкнутым. Геометрия остаётся стандартными редактируемыми объектами эскиза CADYX; отдельное представление трассировки для последующих профильных/твердотельных команд не требуется.

Поддерживаемая область

Редактор работает с плоскостями XY/XZ, точными прямыми отрезками и точными круговыми дугами; в одной сохраняемой версии допускается не более 4096 исходных сегментов. Для ввода дуги берутся текущий конец цепи, выбранный центр и конечное направление. Браузер нормализует их в один точный радиус и знаковый размах перед отправкой координат источника.

Эта возможность не превращает браузер в общий редактор эскизов CAD, не разрешает создавать CAD через прямое управление DOM, не добавляет решатель ограничений или подгонку сплайнов, не сохраняет изображение в project.json и не изменяет предыдущую версию трассировки.

Clone this wiki locally