47 KiB
Каталог внешнего CAD-контракта для автономного агента
Назначение и критерий полноты
Этот документ разделяет два слоя: текущий контракт из 84 публично зарегистрированных инструментов Host и целевые расширения, необходимые автономному агенту. Для существующего метода статус оценивает только поведение, прямо заявленное в его строке: отсутствие соседних list/update/delete или явного выбора документа не понижает полностью выполненный метод до частичного. Такие системные разрывы вынесены в отдельные целевые строки.
Контракт считается полным не по числу методов, а когда агент может замкнуть цикл: обнаружить состояние, выбрать адресуемые объекты, изменить модель, проверить результат и сохранить его либо безопасно откатить. Для мутирующих семейств проверяется симметрия list/describe → create → update/transform → delete → validate.
Общее текущее ограничение: все документные, модельные, сборочные и чертёжные операции неявно работают только с активным документом. Стабильного идентификатора документа и явного параметра выбора документа нет. Поэтому одновременная надёжная работа с несколькими открытыми документами пока невозможна.
Легенда
| Поле | Значения |
|---|---|
| Статус | ✅ реализован · 🟡 частично · ⬜ не реализован · ⛔ ограничен платформой |
| Необходимость | Core — нужен для замкнутого базового цикла · Advanced — нужен для типового профессионального сценария · Optional — расширяет охват или удобство |
| Приоритет | P0 — замыкает автономный цикл · P1 — снимает существенное профессиональное ограничение · P2 — расширяет охват; — — пробела нет |
🟡 частично означает, что имя уже существует, но его результат, адресуемость или набор вариантов недостаточны для заявленного целевого поведения. ⛔ ограничен платформой означает, что надёжное внешнее поведение не подтверждено и требует отдельного технического исследования либо другого режима исполнения.
Покрытие сквозных сценариев
| Сценарий | Обнаружить состояние | Изменить | Проверить | Сохранить | Восстановить | Итог и блокирующие пробелы |
|---|---|---|---|---|---|---|
| Создать и сохранить параметрическую 3D-деталь | частично: структура и переменные читаются | частично: операции строятся, но размеры созданных эскизов не связаны с переменными | частично: геометрия и ошибки проверяются, но созданные сущности не имеют полного адресного цикла | частично: только активный документ | неполный: нет управляемого checkpoint lifecycle и отката | неполный — нет надёжной параметризации эскиза, изменения/удаления операций и восстановления |
| Открыть или импортировать модель, локально изменить и проверить | частично: тела, грани и рёбра видны по индексам, но из них нельзя получить selector с ревизией | частично: доступны перемещение грани, рассечение, перенос тела и объединение | частично: есть структурная и числовая проверка | частично: только активный документ | неполный | частичный — нет полного selector lifecycle, удаления тел, subtract/intersect и безопасного отката |
| Создать сборку, разместить компоненты, наложить сопряжения и проверить структуру | неполный: только верхний уровень, без списка сопряжений | частично: вставка и два типа сопряжений | неполный: нет структурной диагностики решённой сборки; проверка коллизий остаётся Advanced-пробелом | частично: только активный документ | неполный | неполный — нет рекурсивной структуры, placement, удаления, полного семейства сопряжений и структурной валидации |
| Создать основные виды чертежа, оформить и сохранить | неполный: нет агрегированного паспорта, инвентаризации листов, видов и аннотаций | частично: основные виды и базовые обозначения создаются | неполный: нет машинной валидации видов, ассоциаций и оформления | частично: только активный документ | неполный | неполный — нет describe/validate, CRUD видов и аннотаций, разрезов, баз, допусков, осевых и многолистности |
| Выполнить геометрическую и документную инспекцию без визуального анализа | частично: модель описывается структурно, но нет списка документов и вершин | не требуется | частично: измерение принимает вершины, которые нельзя предварительно перечислить; индексы нельзя преобразовать в устойчивый selector с ревизией | не требуется | не требуется | частичный — отсутствуют multi-document discovery, вершины и полный selector lifecycle |
Методы внешнего контракта
Сессия и документы
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
kompas_connect |
Подключить CAD-сессию и вернуть сведения о среде | ✅ реализован | Core | — | — |
kompas_status |
Получить состояние подключения | ✅ реализован | Core | — | — |
kompas_set_visible |
Показать или скрыть пользовательское окно | ✅ реализован | Optional | — | — |
document_create |
Создать документ заданного типа и сделать его активным | ✅ реализован | Core | — | — |
document_open |
Открыть документ с диска и сделать его активным | ✅ реализован | Core | — | — |
document_save_as |
Сохранить активный документ по новому пути | ✅ реализован | Core | — | — |
document_save |
Сохранить активный документ | ✅ реализован | Core | — | — |
document_close |
Закрыть активный документ с выбранным режимом сохранения | ✅ реализован | Core | — | — |
document_active |
Описать активный документ | ✅ реализован | Core | — | — |
list_documents |
Перечислить открытые документы с типом, путём, состоянием изменений и document_id |
⬜ не реализован | Core | P0 | Требуется основа multi-document контура |
document_activate |
Сделать документ активным по document_id |
⬜ не реализован | Core | P0 | Без него невозможно надёжно переключать контекст |
document_describe |
Прочитать свойства и состояние указанного документа без его активации | ⬜ не реализован | Core | P0 | Нужна документная инспекция вне глобального active state |
document_set_properties |
Изменить стандартные и пользовательские свойства документа | ⬜ не реализован | Advanced | P1 | Нет внешнего управления метаданными |
2D-геометрия и эскизы
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
sketch_create |
Создать эскиз на базовой плоскости и вернуть сессионный идентификатор | ✅ реализован | Core | — | — |
sketch_create_on_face |
Создать эскиз на плоской грани, выбранной точкой | ✅ реализован | Advanced | — | — |
sketch_create_on_offset_plane |
Создать эскиз на смещённой плоскости | ✅ реализован | Advanced | — | — |
sketch_add_circle |
Добавить окружность в открытый эскиз | ✅ реализован | Core | — | — |
sketch_add_line |
Добавить отрезок в открытый эскиз | ✅ реализован | Core | — | — |
sketch_create_on_face_index |
Создать эскиз на грани по текущему индексу | ✅ реализован | Core | — | — |
sketch_add_axis |
Добавить осевую линию в открытый эскиз | ✅ реализован | Core | — | — |
sketch_add_rectangle |
Добавить прямоугольник в открытый эскиз | ✅ реализован | Core | — | — |
sketch_close |
Завершить редактирование текущего открытого эскиза | ✅ реализован | Core | — | — |
sketch_add_arc_3points |
Добавить дугу по трём точкам | ✅ реализован | Advanced | — | — |
sketch_add_arc |
Добавить дугу по центру, радиусу и углам | ✅ реализован | Advanced | — | — |
sketch_add_ellipse |
Добавить эллипс | ✅ реализован | Advanced | — | — |
sketch_add_polyline |
Добавить цепочку отрезков | ✅ реализован | Core | — | — |
sketch_add_polygon |
Добавить правильный многоугольник | ✅ реализован | Advanced | — | — |
sketch_add_spline |
Добавить сплайн | ✅ реализован | Advanced | — | — |
sketch_add_point |
Добавить опорную точку | ✅ реализован | Advanced | — | — |
list_sketches |
Перечислить эскизы документа со стабильными идентификаторами и состоянием | ⬜ не реализован | Core | P0 | Нельзя восстановить контекст после открытия документа |
describe_sketch |
Прочитать плоскость, состояние и геометрическую сводку эскиза | ⬜ не реализован | Core | P0 | Нет проверки исходного или созданного эскиза |
list_sketch_entities |
Перечислить сущности эскиза с типом, геометрией и entity_id |
⬜ не реализован | Core | P0 | Созданные объекты не адресуются |
update_sketch_entity |
Изменить геометрию сущности по entity_id |
⬜ не реализован | Core | P0 | Нет редактирования без пересоздания эскиза |
delete_sketch_entity |
Удалить сущность по entity_id |
⬜ не реализован | Core | P0 | Нет симметрии create/delete |
delete_sketch |
Удалить эскиз с контролем зависимостей | ⬜ не реализован | Core | P0 | Нельзя исправить ошибочно созданный эскиз |
list_sketch_constraints |
Перечислить геометрические связи и размеры | ⬜ не реализован | Advanced | P1 | Нет диагностики степени определённости |
sketch_set_constraint |
Создать или изменить геометрическую связь | ⬜ не реализован | Advanced | P1 | Нет управляемых зависимостей геометрии |
sketch_delete_constraint |
Удалить связь или размер | ⬜ не реализован | Advanced | P1 | Нет полного жизненного цикла ограничений |
sketch_set_driving_dimension |
Связать размер эскиза с числом или переменной | ⛔ ограничен платформой | Core | P0 | Надёжная внешняя связь размера с переменной не подтверждена; требуется отдельное техническое исследование или иной режим исполнения |
3D-моделирование
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
extrude_boss |
Добавить материал выдавливанием эскиза | ✅ реализован | Core | — | — |
extrude_cut |
Удалить материал выдавливанием эскиза | ✅ реализован | Core | — | — |
revolve_boss |
Добавить материал вращением профиля | ✅ реализован | Advanced | — | — |
revolve_cut |
Удалить материал вращением профиля | ✅ реализован | Advanced | — | — |
fillet_edge |
Скруглить одно ребро, выбранное точкой | ✅ реализован | Advanced | — | — |
chamfer_edge |
Снять фаску с одного ребра, выбранного точкой | ✅ реализован | Advanced | — | — |
fillet_edge_index |
Скруглить одно ребро по текущему индексу | ✅ реализован | Advanced | — | — |
chamfer_edge_index |
Снять фаску с одного ребра по текущему индексу | ✅ реализован | Advanced | — | — |
shell |
Создать оболочку с удалением граней по текущим индексам | ✅ реализован | Advanced | — | — |
rib |
Создать ребро жёсткости по эскизу | ✅ реализован | Advanced | — | — |
sweep |
Построить тело перемещением профиля по траектории | ✅ реализован | Advanced | — | — |
loft |
Построить тело по сечениям | ✅ реализован | Advanced | — | — |
linear_pattern |
Создать линейный массив операций | ✅ реализован | Advanced | — | — |
circular_pattern |
Создать круговой массив операций | ✅ реализован | Advanced | — | — |
mirror_operation |
Создать зеркальную копию операций | ✅ реализован | Advanced | — | — |
mirror_body |
Зеркально скопировать все тела относительно базовой плоскости | ✅ реализован | Advanced | — | — |
hole |
Создать простое отверстие | ✅ реализован | Core | — | — |
draft |
Создать уклон граней по текущим индексам | ✅ реализован | Advanced | — | — |
hole_counterbore |
Создать отверстие с цилиндрическим углублением | ✅ реализован | Advanced | — | — |
hole_countersink |
Создать отверстие с коническим углублением | ✅ реализован | Advanced | — | — |
hole_conic |
Создать коническое отверстие | ✅ реализован | Advanced | — | — |
rebuild |
Перестроить активную модель | ✅ реализован | Core | — | — |
create_variable |
Создать переменную модели | ✅ реализован | Advanced | — | — |
set_variable |
Изменить выражение переменной и перестроить модель | ✅ реализован | Advanced | — | — |
set_variable_note |
Изменить комментарий переменной | ✅ реализован | Optional | — | — |
delete_variable |
Удалить переменную с проверкой зависимостей | ✅ реализован | Advanced | — | — |
describe_feature |
Прочитать тип, параметры, состояние и зависимости операции по feature_id |
⬜ не реализован | Core | P0 | Текущая инспекция не даёт полного адресного контракта |
update_feature |
Изменить параметры существующей операции и перестроить модель | ⬜ не реализован | Core | P0 | Нет исторического редактирования |
delete_feature |
Удалить операцию с диагностикой зависимостей | ⬜ не реализован | Core | P0 | Нет исправления ошибочного построения |
set_feature_suppressed |
Исключить или вернуть операцию в расчёт | ⬜ не реализован | Advanced | P1 | Нет управления вариантами и диагностикой дерева |
datum_point_create |
Создать адресуемую вспомогательную 3D-точку по координатам или выбранной геометрии | ⬜ не реализован | Advanced | P1 | Нет опорных точек для последующих построений и измерений |
datum_axis_create |
Создать адресуемую вспомогательную ось по точкам, направлению или выбранной геометрии | ⬜ не реализован | Advanced | P1 | Нет произвольных опорных осей вне координатной системы |
datum_plane_create |
Создать адресуемую вспомогательную плоскость по трём точкам, оси с углом или выбранной геометрии | ⬜ не реализован | Advanced | P1 | Сейчас доступна только смещённая базовая плоскость внутри создания эскиза |
Прямое и историческое редактирование
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
move_face |
Сместить грань, выбранную точкой, вдоль нормали | ✅ реализован | Core | — | — |
split_solid_by_plane |
Рассечь тела активной детали базовой смещённой плоскостью | ✅ реализован | Advanced | — | �� |
move_body |
Задать перенос и ориентацию выбранного тела | 🟡 частично | Advanced | P1 | Сейчас доступен только перенос тела по текущему индексу; поворот и явная ориентация отсутствуют |
boolean_union |
Объединить все тела активной детали | ✅ реализован | Advanced | — | — |
copy_body |
Копировать выбранное тело с преобразованием | ⬜ не реализован | Advanced | P1 | Нет симметричной операции к перемещению и удалению |
delete_body |
Удалить выбранное тело | ⬜ не реализован | Core | P0 | Нет полного жизненного цикла многотельной модели |
boolean_subtract |
Вычесть выбранные тела-инструменты из целевого тела | ⬜ не реализован | Advanced | P1 | Отсутствует типовая булева операция |
boolean_intersect |
Оставить пересечение выбранных тел | ⬜ не реализован | Advanced | P1 | Отсутствует типовая булева операция |
body_check_intersection |
Найти пересечения выбранных тел без изменения модели и вернуть пары с оценкой объёма | ⬜ не реализован | Advanced | P1 | Нет аналитической проверки коллизий внутри многотельной детали |
Инспекция, выбор объектов и измерения
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
describe_model |
Получить структурный паспорт активной модели | ✅ реализован | Core | — | — |
list_features |
Перечислить дерево операций и доступные основные параметры | ✅ реализован | Core | — | — |
list_bodies |
Перечислить тела по текущим индексам | ✅ реализован | Core | — | — |
list_variables |
Перечислить переменные и вычисленные значения | ✅ реализован | Advanced | — | — |
describe_face |
Описать грань по текущему индексу | ✅ реализован | Core | — | — |
describe_edge |
Описать ребро по текущему индексу | ✅ реализован | Core | — | — |
measure |
Измерить расстояние и угол между объектами по переданным индексам, включая вершины | ✅ реализован | Core | — | — |
get_part_info |
Получить объём, массу, площадь и центр масс | ✅ реализован | Core | — | — |
list_components |
Перечислить компоненты верхнего уровня сборки | ✅ реализован | Core | — | — |
list_faces |
Перечислить грани и их типы по текущим индексам | ✅ реализован | Core | — | — |
list_edges |
Перечислить рёбра и их типы по текущим индексам | ✅ реализован | Core | — | — |
get_bounding_box |
Получить габарит модели | ✅ реализован | Core | — | — |
model_snapshot |
Получить растровый снимок модели | ✅ реализован | Optional | — | — |
validate_part |
Найти ошибки и необходимость перестроения детали или сборки | ✅ реализован | Core | — | — |
get_model_revision |
Получить монотонную ревизию структуры и топологии модели | ⬜ не реализован | Core | P0 | Нужна для обнаружения устаревших ссылок |
list_vertices |
Перечислить вершины с координатами и селекторами | ⬜ не реализован | Core | P0 | Замыкает входной контракт измерения вершин |
create_selector |
Создать устойчивый геометрический селектор по типу объекта и текущему индексу, вернув также ревизию модели | ⬜ не реализован | Core | P0 | Нет входной точки от списков граней, рёбер, вершин и тел к resolve/validate lifecycle |
resolve_selector |
Найти объект по геометрическому селектору и вернуть совпадение в текущей ревизии | ⬜ не реализован | Core | P0 | Нет устойчивого повторного выбора после перестроения |
validate_selector |
Проверить, что ссылка относится к текущей ревизии и однозначному объекту | ⬜ не реализован | Core | P0 | Мутации могут примениться не к тому объекту |
Сборки
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
assembly_add_component |
Вставить деталь или подсборку и задать исходное положение | ✅ реализован | Core | — | — |
assembly_add_mate |
Создать адресуемое сопряжение поддерживаемого типа между компонентами | 🟡 частично | Core | P0 | Сейчас доступны только coincidence/distance, выбор по точкам и результат без mate_id; нужны также concentric, parallel, perpendicular, angle и tangency |
describe_assembly |
Рекурсивно описать дерево компонентов, документы, состояния и placement | ⬜ не реализован | Core | P0 | Верхнеуровневого списка недостаточно для управления |
describe_component |
Прочитать компонент, его placement, подавление и ссылки | ⬜ не реализован | Core | P0 | Нет адресной инспекции компонента |
assembly_set_component_placement |
Изменить перенос и поворот компонента по component_id |
⬜ не реализован | Core | P0 | Нет управления placement после вставки |
assembly_remove_component |
Удалить компонент с диагностикой зависимых сопряжений | ⬜ не реализован | Core | P0 | Нет симметрии add/remove |
assembly_set_component_suppressed |
Исключить или вернуть компонент в расчёт | ⬜ не реализован | Advanced | P1 | Нет управления вариантами сборки |
list_mates |
Перечислить сопряжения, объекты, параметры и состояние решения | ⬜ не реализован | Core | P0 | Созданные сопряжения не адресуются |
assembly_update_mate |
Изменить тип, объекты или параметр сопряжения | ⬜ не реализован | Core | P0 | Нет исправления сопряжения без пересоздания |
assembly_remove_mate |
Удалить сопряжение по mate_id |
⬜ не реализован | Core | P0 | Нет симметрии add/remove |
assembly_check_interference |
Найти пересечения компонентов и оценить объём коллизий | ⬜ не реализован | Advanced | P1 | Нет профессиональной проверки физических коллизий; минимальная структурная проверка остаётся в validate_assembly |
validate_assembly |
Проверить нерешённые, конфликтующие и избыточные сопряжения | ⬜ не реализован | Core | P0 | Текущая общая проверка не даёт сборочный диагноз |
specification_generate |
Создать или полностью обновить спецификацию активной сборки по её текущему составу | ⬜ не реализован | Advanced | P1 | Нет выпуска состава изделия; повторный вызов должен детерминированно заменять ранее сгенерированное содержимое |
specification_list_items |
Перечислить позиции спецификации с обозначением, наименованием, количеством и ссылкой на компонент | ⬜ не реализован | Advanced | P1 | Нет read-back для проверки сформированного состава |
Чертежи и оформление
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
drawing_create_standard_views |
Создать набор основных ассоциативных видов и вернуть их номера | ✅ реализован | Core | — | — |
drawing_fill_title_block |
Заполнить обозначение, наименование и материал в штампе | ✅ реализован | Core | — | — |
drawing_add_linear_dimension |
Создать свободный линейный размер | ✅ реализован | Core | — | — |
drawing_add_diametral_dimension |
Создать свободный или связанный с окружностью диаметральный размер | ✅ реализован | Core | — | — |
drawing_add_radial_dimension |
Создать свободный или связанный с окружностью радиальный размер | ✅ реализован | Core | — | — |
drawing_add_angular_dimension |
Создать свободный угловой размер | ✅ реализован | Core | — | — |
drawing_add_rough |
Создать свободное обозначение шероховатости | ✅ реализован | Advanced | — | — |
drawing_add_text |
Создать текстовую надпись | ✅ реализован | Core | — | — |
drawing_set_technical_requirements |
Заменить блок технических требований | ✅ реализован | Advanced | — | — |
drawing_set_sheet_format |
Задать формат и ориентацию листа по номеру | ✅ реализован | Core | — | — |
drawing_add_leader |
Создать свободную выноску с одной ветвью и текстом | ✅ реализован | Advanced | — | — |
describe_drawing |
Получить структурный паспорт чертежа: листы, виды, основную надпись, технические требования, аннотации и состояние ассоциаций | ⬜ не реализован | Core | P0 | Нет агрегированного read-back без визуального анализа |
validate_drawing |
Диагностировать ошибочные или устаревшие виды, разорванные ассоциации и неполное оформление | ⬜ не реализован | Core | P0 | Нет машинной проверки готовности чертежа |
drawing_list_sheets |
Перечислить листы, форматы, стили и состояния | ⬜ не реализован | Core | P0 | Нет основы многолистного управления |
drawing_add_sheet |
Добавить лист с форматом и стилем | ⬜ не реализован | Advanced | P1 | Многолистный комплект не создаётся |
drawing_delete_sheet |
Удалить лист по sheet_id |
⬜ не реализован | Advanced | P1 | Нет полного жизненного цикла листа |
drawing_list_views |
Перечислить виды с view_id, источником, масштабом и placement |
⬜ не реализован | Core | P0 | Созданные виды нельзя надёжно найти и проверить |
drawing_describe_view |
Прочитать параметры, границы и состояние обновления вида | ⬜ не реализован | Core | P0 | Нет адресной проверки вида |
drawing_update_view |
Изменить масштаб, placement, ориентацию и видимость вида | ⬜ не реализован | Core | P0 | Нет редактирования вида |
drawing_delete_view |
Удалить вид и диагностировать зависимые обозначения | ⬜ не реализован | Core | P0 | Нет симметрии create/delete |
drawing_rebuild_views |
Обновить связанные виды и вернуть изменившиеся/ошибочные объекты | ⬜ не реализован | Core | P0 | Нет явной проверки актуальности после изменения модели |
drawing_create_section_view |
Создать разрез или сечение по линии | ⬜ не реализован | Advanced | P1 | Нет профессионально необходимого типа вида |
drawing_create_detail_view |
Создать выносной элемент | ⬜ не реализован | Advanced | P1 | Нет увеличенного локального представления |
drawing_create_local_view |
Создать местный вид | ⬜ не реализован | Advanced | P2 | Требуется техническое исследование устойчивой адресации контура |
drawing_list_annotations |
Перечислить размеры, обозначения и тексты с annotation_id и связями |
⬜ не реализован | Core | P0 | Все созданные аннотации практически не адресуются |
drawing_update_annotation |
Изменить положение, текст, стиль или привязку аннотации | ⬜ не реализован | Core | P0 | Нет общего edit-контура |
drawing_delete_annotation |
Удалить аннотацию по annotation_id |
⬜ не реализован | Core | P0 | Нет общего delete-контура |
drawing_add_datum |
Создать обозначение базы и вернуть annotation_id |
⬜ не реализован | Advanced | P1 | Нет оформления баз |
drawing_add_geometric_tolerance |
Создать рамку допуска формы или расположения с базами | ⬜ не реализован | Advanced | P1 | Нет оформления допусков |
drawing_add_centerline |
Создать осевую линию с привязкой к геометрии | ⬜ не реализован | Advanced | P1 | Нет осевых линий |
drawing_add_center_mark |
Создать обозначение центра окружности или дуги | ⬜ не реализован | Advanced | P1 | Нет центровых обозначений |
Импорт и экспорт
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
import_step |
Импортировать STEP как новую активную деталь или сборку | ✅ реализован | Core | — | — |
export_step |
Экспортировать активную 3D-модель в STEP | ✅ реализован | Core | — | — |
import_model |
Импортировать нейтральный или собственный 3D-формат, кроме STEP, по явному format |
⬜ не реализован | Advanced | P2 | STEP принимается только специализированным import_step; остальные форматы требуют поформатной проверки |
export_model |
Экспортировать документ или выбранные тела в 3D-формат, кроме STEP | ⬜ не реализован | Advanced | P2 | STEP выпускается только специализированным export_step; для остальных форматов нужна проверяемая матрица возможностей |
import_drawing |
Импортировать 2D-обменный формат в новый документ | ⬜ не реализован | Advanced | P2 | Нужна поформатная проверка слоёв, масштаба и единиц |
export_drawing |
Экспортировать выбранные листы в единый PDF-документ | ⬜ не реализован | Advanced | P1 | Нет выпуска комплекта чертежей для просмотра и печати |
export_drawing_exchange |
Экспортировать геометрию выбранного листа в редактируемый 2D-обменный формат | ⬜ не реализован | Advanced | P2 | Нужна отдельная поформатная проверка слоёв, масштаба, шрифтов и единиц |
export_mesh |
Экспортировать выбранные тела в полигональный формат с параметрами точности | ⬜ не реализован | Optional | P2 | Требуется проверка доступных форматов и единиц |
Управление состоянием, восстановление и надёжность агентской работы
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
transaction_begin |
Начать атомарную группу изменений | ⛔ ограничен платформой | Optional | P2 | Надёжная атомарная граница не подтверждена; требуется техническое исследование |
transaction_commit |
Зафиксировать атомарную группу изменений | ⛔ ограничен платформой | Optional | P2 | Реалистичность зависит от подтверждения общей транзакционной модели |
transaction_rollback |
Откатить атомарную группу изменений | ⛔ ограничен платформой | Optional | P2 | Надёжный полный откат группы не подтверждён; требуется техническое исследование |
state_checkpoint |
Создать детерминированный именованный снимок состояния; дубликат имени отклоняется, а replace=true явно заменяет его |
⬜ не реализован | Core | P0 | Нужен подтверждаемый рубеж с однозначной политикой имён перед рискованной операцией |
state_restore |
Восстановить документ из снимка состояния и вернуть новую ревизию | ⬜ не реализован | Core | P0 | Нет детерминированного fallback после неверной цепочки мутаций |
state_list_checkpoints |
Перечислить снимки состояния документа с именем, временем, исходной ревизией и признаком доступности | ⬜ не реализован | Core | P0 | Нельзя обнаружить допустимые точки восстановления |
state_delete_checkpoint |
Удалить именованный снимок состояния без изменения документа | ⬜ не реализован | Core | P0 | Нет завершения lifecycle и очистки устаревших снимков |
undo |
Отменить последнее изменение указанного документа | ⬜ не реализован | Core | P0 | Нет пошагового исправления |
redo |
Повторить отменённое изменение указанного документа | ⬜ не реализован | Core | P0 | Нет симметрии undo/redo |
operation_cancel |
Запросить отмену длительной операции и сообщить фактический результат | ⛔ ограничен платформой | Optional | P2 | Надёжная остановка уже начавшейся операции не подтверждена; требуется техническое исследование |
session_recover |
Восстановить внешний контекст после сбоя: документы, активность, ревизии и адреса | ⬜ не реализован | Core | P0 | Сессионные идентификаторы теряются при сбросе или переподключении |
Приоритизированный перечень пробелов
P0 — замыкание автономного цикла
- Документы:
list_documents,document_activate,document_describe. - Эскизы:
list_sketches,describe_sketch,list_sketch_entities,update_sketch_entity,delete_sketch_entity,delete_sketch,sketch_set_driving_dimension. - История и тела:
describe_feature,update_feature,delete_feature,delete_body. - Устойчивый выбор:
get_model_revision,list_vertices,create_selector,resolve_selector,validate_selector. - Сборки:
assembly_add_mate,describe_assembly,describe_component,assembly_set_component_placement,assembly_remove_component,list_mates,assembly_update_mate,assembly_remove_mate,validate_assembly. - Чертёжный CRUD:
describe_drawing,validate_drawing,drawing_list_sheets,drawing_list_views,drawing_describe_view,drawing_update_view,drawing_delete_view,drawing_rebuild_views,drawing_list_annotations,drawing_update_annotation,drawing_delete_annotation. - Восстановление:
state_checkpoint,state_restore,state_list_checkpoints,state_delete_checkpoint,undo,redo,session_recover.
P1 — типовые профессиональные сценарии
- Документы и эскизы:
document_set_properties,list_sketch_constraints,sketch_set_constraint,sketch_delete_constraint. - История и многотельность:
set_feature_suppressed,move_body,copy_body,boolean_subtract,boolean_intersect,body_check_intersection. - Вспомогательная 3D-геометрия:
datum_point_create,datum_axis_create,datum_plane_create. - Сборки и спецификации:
assembly_set_component_suppressed,assembly_check_interference,specification_generate,specification_list_items. - Профессиональное оформление:
drawing_add_sheet,drawing_delete_sheet,drawing_create_section_view,drawing_create_detail_view,drawing_add_datum,drawing_add_geometric_tolerance,drawing_add_centerline,drawing_add_center_mark. - Выпуск:
export_drawing.
P2 — расширение охвата
- Дополнительный вид:
drawing_create_local_view. - Дополнительные форматы:
import_model,export_model,import_drawing,export_drawing_exchange,export_mesh. - Исследовательские операции состояния:
transaction_begin,transaction_commit,transaction_rollback,operation_cancel.
Итоговая оценка
Текущий контракт силён в создании 3D-геометрии, структурном чтении детали, STEP-обмене и первичном создании сборок и чертежей. Он ещё не является полным автономным CAD-контуром: активный документ остаётся глобальным неявным состоянием; созданные сущности эскиза, отверстия, компоненты, сопряжения, виды и аннотации недостаточно адресуемы; индексы топологии не связаны с ревизией; отсутствуют update/delete для большинства семейств и безопасное восстановление. Все пять сквозных сценариев поэтому остаются частичными или неполными.