48 KiB
Каталог внешнего CAD-контракта для автономного агента
Назначение и критерий полноты
Этот документ задаёт целевой внешний контракт управления CAD-системой и одновременно фиксирует фактическое покрытие сервера. Инвентаризация выполнена по публично зарегистрированным инструментам Host: на момент проверки найдено 84 уникальных реализованных имени.
Контракт считается полным не по числу методов, а когда агент может замкнуть цикл: обнаружить состояние, выбрать адресуемые объекты, изменить модель, проверить результат и сохранить его либо безопасно откатить. Для мутирующих семейств проверяется симметрия list/describe → create → update/transform → delete → validate.
Общее текущее ограничение: все документные, модельные, сборочные и чертёжные операции неявно работают только с активным документом. Стабильного идентификатора документа и явного параметра выбора документа нет. Поэтому одновременная надёжная работа с несколькими открытыми документами пока невозможна.
Легенда
| Поле | Значения |
|---|---|
| Статус | ✅ реализован · 🟡 частично · ⬜ не реализован · ⛔ ограничен платформой |
| Необходимость | Core — нужен для замкнутого базового цикла · Advanced — нужен для типового профессионального сценария · Optional — расширяет охват или удобство |
| Приоритет | P0 — замыкает автономный цикл · P1 — снимает существенное профессиональное ограничение · P2 — расширяет охват; — — пробела нет |
🟡 частично означает, что имя уже существует, но его результат, адресуемость или набор вариантов недостаточны для заявленного целевого поведения. ⛔ ограничен платформой означает, что надёжное внешнее поведение не подтверждено и требует отдельного технического исследования либо другого режима исполнения.
Покрытие сквозных сценариев
| Сценарий | Обнаружить состояние | Изменить | Проверить | Сохранить | Восстановить | Итог и блокирующие пробелы |
|---|---|---|---|---|---|---|
| Создать и сохранить параметрическую 3D-деталь | частично: структура и переменные читаются | частично: операции строятся, но размеры созданных эскизов не связаны с переменными | частично: геометрия и ошибки проверяются, но созданные сущности не имеют полного адресного цикла | частично: только активный документ | неполный: нет транзакции, checkpoint и отката | неполный — нет надёжной параметризации эскиза, изменения/удаления операций и восстановления |
| Открыть или импортировать модель, локально изменить и проверить | частично: тела, грани и рёбра видны, но селекторы теряют актуальность после изменения | частично: доступны перемещение грани, рассечение, перенос тела и объединение | частично: есть структурная и числовая проверка | частично: только активный документ | неполный | частичный — нет ревизий селекторов, удаления тел, subtract/intersect и безопасного отката |
| Создать сборку, разместить компоненты, наложить сопряжения и проверить структуру | неполный: только верхний уровень, без списка сопряжений | частично: вставка и два типа сопряжений | неполный: нет проверки пересечений и целостности решённой сборки | частично: только активный документ | неполный | неполный — нет рекурсивной структуры, placement, удаления, полного семейства сопряжений и проверки пересечений |
| Создать основные виды чертежа, оформить и сохранить | неполный: нет инвентаризации листов, видов и аннотаций | частично: основные виды и базовые обозначения создаются | неполный: созданные объекты почти не адресуются и не перечитываются | частично: только активный документ | неполный | неполный — нет CRUD видов/аннотаций, разрезов, баз, допусков, осевых и многолистности |
| Выполнить геометрическую и документную инспекцию без визуального анализа | частично: модель описывается структурно, но нет списка документов и вершин | не требуется | частично: измерение принимает вершины, которые нельзя предварительно перечислить; индексы не защищены ревизией | не требуется | не требуется | частичный — отсутствуют multi-document discovery, вершины и устойчивые селекторы |
Методы внешнего контракта
Сессия и документы
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
kompas_connect |
Подключить CAD-сессию и вернуть сведения о среде | ✅ реализован | Core | — | — |
kompas_status |
Получить состояние подключения | ✅ реализован | Core | — | — |
kompas_set_visible |
Показать или скрыть пользовательское окно | ✅ реализован | Optional | — | — |
document_create |
Создать документ заданного типа | 🟡 частично | Core | P0 | Делает документ активным, но не возвращает стабильный document_id |
document_open |
Открыть документ с диска | 🟡 частично | Core | P0 | Нет стабильного document_id и режима открытия без смены активного документа |
document_save_as |
Сохранить активный документ по новому пути | 🟡 частично | Core | P0 | Нельзя явно указать документ |
document_save |
Сохранить активный документ | 🟡 частично | Core | P0 | Нельзя явно указать документ |
document_close |
Закрыть активный документ | 🟡 частично | Core | P0 | Нельзя закрыть документ по идентификатору и проверить несохранённое состояние до действия |
document_active |
Описать активный документ | 🟡 частично | Core | P0 | Не даёт инвентарь открытых документов и стабильный идентификатор |
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 | P0 | Идентификатор живёт в сессии и не восстанавливается из документа |
sketch_create_on_face |
Создать эскиз на плоской грани, выбранной точкой | 🟡 частично | Advanced | P0 | Выбор по точке неоднозначен и не защищён ревизией модели |
sketch_create_on_offset_plane |
Создать эскиз на смещённой плоскости | 🟡 частично | Advanced | P0 | Нет последующего чтения и изменения опорной плоскости |
sketch_add_circle |
Добавить окружность | 🟡 частично | Core | P0 | Не возвращает адресуемый entity_id |
sketch_add_line |
Добавить отрезок | 🟡 частично | Core | P0 | Не возвращает адресуемый entity_id |
sketch_create_on_face_index |
Создать эскиз на грани по текущему индексу | 🟡 частично | Core | P0 | Индекс устаревает после изменения геометрии |
sketch_add_axis |
Добавить осевую линию | 🟡 частично | Core | P0 | Не возвращает адресуемый entity_id |
sketch_add_rectangle |
Добавить прямоугольник | 🟡 частично | Core | P0 | Созданные сегменты нельзя перечислить и изменить |
sketch_close |
Завершить редактирование текущего эскиза | 🟡 частично | Core | P0 | Зависит от неявно открытого эскиза и не принимает его идентификатор |
sketch_add_arc_3points |
Добавить дугу по трём точкам | 🟡 частично | Advanced | P0 | Не возвращает адресуемый entity_id |
sketch_add_arc |
Добавить дугу по центру, радиусу и углам | 🟡 частично | Advanced | P0 | Не возвращает адресуемый entity_id |
sketch_add_ellipse |
Добавить эллипс | 🟡 частично | Advanced | P0 | Не возвращает адресуемый entity_id |
sketch_add_polyline |
Добавить цепочку отрезков | 🟡 частично | Core | P0 | Не возвращает идентификаторы отдельных сегментов |
sketch_add_polygon |
Добавить правильный многоугольник | 🟡 частично | Advanced | P0 | Не возвращает идентификаторы отдельных сегментов |
sketch_add_spline |
Добавить сплайн | 🟡 частично | Advanced | P0 | Не возвращает адресуемый entity_id |
sketch_add_point |
Добавить опорную точку | 🟡 частично | Advanced | P0 | Не возвращает адресуемый entity_id |
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 | P1 | Выбор по точке неоднозначен, одна операция работает с одним ребром |
chamfer_edge |
Снять фаску с ребра, выбранного точкой | 🟡 частично | Advanced | P1 | Выбор по точке неоднозначен, одна операция работает с одним ребром |
fillet_edge_index |
Скруглить ребро по текущему индексу | 🟡 частично | Advanced | P0 | Индекс не связан с ревизией и устаревает после изменения |
chamfer_edge_index |
Снять фаску с ребра по текущему индексу | 🟡 частично | Advanced | P0 | Индекс не связан с ревизией и устаревает после изменения |
shell |
Создать оболочку с удалением выбранных граней | 🟡 частично | Advanced | P0 | Выбор граней основан на нестабильных индексах |
rib |
Создать ребро жёсткости по эскизу | ✅ реализован | Advanced | — | — |
sweep |
Построить тело перемещением профиля по траектории | ✅ реализован | Advanced | — | — |
loft |
Построить тело по сечениям | ✅ реализован | Advanced | — | — |
linear_pattern |
Создать линейный массив операций | ✅ реализован | Advanced | — | — |
circular_pattern |
Создать круговой массив операций | ✅ реализован | Advanced | — | — |
mirror_operation |
Создать зеркальную копию операций | ✅ реализован | Advanced | — | — |
mirror_body |
Зеркально скопировать тела | 🟡 частично | Advanced | P1 | Действует сразу на все тела; нельзя выбрать набор тел и режим замены/копии |
hole |
Создать простое отверстие | 🟡 частично | Core | P0 | Не возвращает идентификатор операции для последующего изменения или удаления |
draft |
Создать уклон выбранных граней | 🟡 частично | Advanced | P0 | Выбор граней основан на нестабильных индексах |
hole_counterbore |
Создать отверстие с цилиндрическим углублением | 🟡 частично | Advanced | P0 | Не возвращает идентификатор операции |
hole_countersink |
Создать отверстие с коническим углублением | 🟡 частично | Advanced | P0 | Не возвращает идентификатор операции |
hole_conic |
Создать коническое отверстие | 🟡 частично | Advanced | P0 | Не возвращает идентификатор операции |
rebuild |
Перестроить активную модель | 🟡 частично | Core | P0 | Нельзя указать документ и получить единую ревизию результата |
create_variable |
Создать переменную модели | ✅ реализован | Advanced | — | — |
set_variable |
Изменить выражение переменной и перестроить модель | 🟡 частично | Advanced | P0 | Для создаваемых сервером эскизов изменение значения не управляет геометрией |
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 | Нет управления вариантами и диагностикой дерева |
Прямое и историческое редактирование
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
move_face |
Смещать грань вдоль нормали | 🟡 частично | Core | P0 | Только выбор по точке; нет селектора с ревизией и идентификатора созданной операции |
split_solid_by_plane |
Рассечь тело плоскостью | 🟡 частично | Advanced | P0 | Нельзя выбрать исходное тело устойчивым идентификатором |
move_body |
Переместить тело на вектор | 🟡 частично | Advanced | P0 | Использует нестабильный индекс, нет поворота и общей матрицы placement |
boolean_union |
Объединить тела | 🟡 частично | Advanced | P1 | Всегда объединяет все тела; нет выбора операндов и идентификатора результата |
copy_body |
Копировать выбранное тело с преобразованием | ⬜ не реализован | Advanced | P1 | Нет симметричной операции к перемещению и удалению |
delete_body |
Удалить выбранное тело | ⬜ не реализован | Core | P0 | Нет полного жизненного цикла многотельной модели |
boolean_subtract |
Вычесть выбранные тела-инструменты из целевого тела | ⬜ не реализован | Advanced | P1 | Отсутствует типовая булева операция |
boolean_intersect |
Оставить пересечение выбранных тел | ⬜ не реализован | Advanced | P1 | Отсутствует типовая булева операция |
transform_body |
Задать перенос и поворот тела по устойчивому идентификатору | ⬜ не реализован | Advanced | P1 | Текущий перенос покрывает только вектор и индекс |
Инспекция, выбор объектов и измерения
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
describe_model |
Получить структурный паспорт активной модели | 🟡 частично | Core | P0 | Нет document_id, ревизии и полного адресного списка объектов |
list_features |
Перечислить дерево операций и основные параметры | 🟡 частично | Core | P0 | Не все созданные операции имеют стабильные feature_id; нет зависимостей и состояния исключения |
list_bodies |
Перечислить тела | 🟡 частично | Core | P0 | Возвращает индексы без ревизии вместо устойчивых идентификаторов |
list_variables |
Перечислить переменные и вычисленные значения | ✅ реализован | Advanced | — | — |
describe_face |
Описать грань по текущему индексу | 🟡 частично | Core | P0 | Индекс не защищён от изменения топологии |
describe_edge |
Описать ребро по текущему индексу | 🟡 частично | Core | P0 | Индекс не защищён от изменения топологии |
measure |
Измерить расстояние и угол между гранями, рёбрами или вершинами | 🟡 частично | Core | P0 | Принимает vertex, но list_vertices отсутствует; все индексы без ревизии |
get_part_info |
Получить объём, массу, площадь и центр масс | ✅ реализован | Core | — | — |
list_components |
Перечислить компоненты верхнего уровня сборки | 🟡 частично | Core | P0 | Недостаточен для управления: нет рекурсии, устойчивых идентификаторов, placement и состояния сопряжений |
list_faces |
Перечислить грани и их типы | 🟡 частично | Core | P0 | Индексы действуют только до следующего изменения геометрии |
list_edges |
Перечислить рёбра и их типы | 🟡 частично | Core | P0 | Индексы действуют только до следующего изменения геометрии |
get_bounding_box |
Получить габарит модели | ✅ реализован | Core | — | — |
model_snapshot |
Получить растровый снимок модели | ✅ реализован | Optional | — | — |
validate_part |
Найти ошибки и необходимость перестроения детали или сборки | ✅ реализован | Core | — | — |
get_model_revision |
Получить монотонную ревизию структуры и топологии модели | ⬜ не реализован | Core | P0 | Нужна для обнаружения устаревших ссылок |
list_vertices |
Перечислить вершины с координатами и селекторами | ⬜ не реализован | Core | P0 | Замыкает входной контракт измерения вершин |
resolve_selector |
Найти объект по геометрическому селектору и вернуть совпадение в текущей ревизии | ⬜ не реализован | Core | P0 | Нет устойчивого повторного выбора после перестроения |
validate_selector |
Проверить, что ссылка относится к текущей ревизии и однозначному объекту | ⬜ не реализован | Core | P0 | Мутации могут примениться не к тому объекту |
Сборки
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
assembly_add_component |
Вставить деталь или подсборку и задать исходное положение | 🟡 частично | Core | P0 | Возвращает индекс и имя, но не устойчивый component_id |
assembly_add_mate |
Создать сопряжение между гранями компонентов | 🟡 частично | Core | P0 | Только coincidence/distance, выбор по точкам, нет mate_id |
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_add_concentric_mate |
Создать соосное сопряжение цилиндрических объектов | ⬜ не реализован | Core | P1 | Критично для валов, отверстий и крепежа |
assembly_add_oriented_mate |
Создать parallel, perpendicular, angle или tangency сопряжение | ⬜ не реализован | Advanced | P1 | Требуется расширение типовых связей и отдельная проверка вариантов |
assembly_check_interference |
Найти пересечения компонентов и оценить объём коллизий | ⬜ не реализован | Core | P0 | Нет проверки физической корректности сборки |
validate_assembly |
Проверить нерешённые, конфликтующие и избыточные сопряжения | ⬜ не реализован | Core | P0 | Текущая общая проверка не даёт сборочный диагноз |
Чертежи и оформление
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
drawing_create_standard_views |
Создать набор основных ассоциативных видов | 🟡 частично | Core | P0 | Возвращает номера, но нет стабильных view_id, инвентаризации и удаления |
drawing_fill_title_block |
Заполнить основные поля штампа | 🟡 частично | Core | P1 | Поддерживает только три поля и не читает текущее содержимое |
drawing_add_linear_dimension |
Создать линейный размер | 🟡 частично | Core | P0 | Нет идентификатора, чтения, изменения, удаления и надёжной ассоциативной привязки |
drawing_add_diametral_dimension |
Создать диаметральный размер | 🟡 частично | Core | P0 | Ассоциация только с окружностью; нет адресного жизненного цикла и привязки к дуге |
drawing_add_radial_dimension |
Создать радиальный размер | 🟡 частично | Core | P0 | Ассоциация только с окружностью; нет адресного жизненного цикла и привязки к дуге |
drawing_add_angular_dimension |
Создать угловой размер | 🟡 частично | Core | P0 | Свободное размещение без ассоциации с двумя линиями и без annotation_id |
drawing_add_rough |
Создать обозначение шероховатости | 🟡 частично | Advanced | P1 | Нет ассоциации с геометрией и annotation_id |
drawing_add_text |
Создать текстовую надпись | 🟡 частично | Core | P0 | Нет annotation_id, чтения, изменения и удаления |
drawing_set_technical_requirements |
Заменить блок технических требований | ✅ реализован | Advanced | — | — |
drawing_set_sheet_format |
Задать формат и ориентацию листа | 🟡 частично | Core | P1 | Можно изменить известный номер, но нельзя перечислить, добавить или удалить листы |
drawing_add_leader |
Создать выноску с одной ветвью и текстом | 🟡 частично | Advanced | P1 | Нет annotation_id, ассоциации, нескольких ветвей и специальных вариантов |
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 | P0 | Новый документ не получает стабильный document_id; параметры импорта ограничены |
export_step |
Экспортировать активную 3D-модель в STEP | 🟡 частично | Core | P0 | Нельзя указать документ и выбрать отдельные тела или компоненты |
import_model |
Импортировать распространённый нейтральный или собственный 3D-формат по явному format |
⬜ не реализован | Advanced | P2 | Дополнительные поддерживаемые форматы требуют поформатной проверки |
export_model |
Экспортировать документ или выбранные тела в распространённый 3D-формат | ⬜ не реализован | Advanced | P2 | Нужна матрица форматов и проверяемый отчёт преобразования |
import_drawing |
Импортировать 2D-обменный формат в новый документ | ⬜ не реализован | Advanced | P2 | Нужна поформатная проверка слоёв, масштаба и единиц |
export_drawing |
Экспортировать выбранные листы в 2D-обменный, растровый или печатный формат | ⬜ не реализован | Advanced | P1 | Нет внешнего выпуска комплекта чертежей |
export_mesh |
Экспортировать выбранные тела в полигональный формат с параметрами точности | ⬜ не реализован | Optional | P2 | Требуется проверка доступных форматов и единиц |
Управление состоянием, восстановление и надёжность агентской работы
| Метод | Назначение | Статус | Необходимость | Приоритет | Пробел / ограничение |
|---|---|---|---|---|---|
transaction_begin |
Начать атомарную группу изменений и вернуть transaction_id |
⬜ не реализован | Core | P0 | Частично выполненная серия мутаций остаётся в документе |
transaction_commit |
Зафиксировать группу после проверок | ⬜ не реализован | Core | P0 | Нет явной границы успешной серии действий |
transaction_rollback |
Откатить группу при ошибке или провале валидации | ⬜ не реализован | Core | P0 | Нет безопасного автоматического восстановления |
checkpoint_create |
Создать именованный снимок состояния документа | ⬜ не реализован | Core | P0 | Нужен надёжный рубеж перед рискованной операцией |
checkpoint_restore |
Восстановить документ из checkpoint и вернуть новую ревизию | ⬜ не реализован | Core | P0 | Нет восстановления после цепочки успешных, но неверных мутаций |
undo |
Отменить последнее изменение указанного документа | ⬜ не реализован | Advanced | P1 | Нет интерактивного пошагового исправления |
redo |
Повторить отменённое изменение указанного документа | ⬜ не реализован | Advanced | P1 | Нет симметрии undo/redo |
operation_cancel |
Запросить отмену длительной операции и сообщить фактический результат | ⛔ ограничен платформой | Optional | P2 | Надёжная остановка уже начавшейся операции не подтверждена; требуется техническое исследование |
session_recover |
Восстановить внешний контекст после сбоя: документы, активность, ревизии и адреса | ⬜ не реализован | Core | P0 | Сессионные идентификаторы теряются при сбросе или переподключении |
Приоритизированный перечень пробелов
P0 — замыкание автономного цикла
- Multi-document и явный контекст:
list_documents,document_activate,document_describe; существующиеdocument_create,document_open,document_save_as,document_save,document_close,document_activeдолжны возвращать или приниматьdocument_id. - Адресуемые эскизы:
list_sketches,describe_sketch,list_sketch_entities,update_sketch_entity,delete_sketch_entity,delete_sketch; все существующиеsketch_add_*должны возвращатьentity_id. - Историческое редактирование:
describe_feature,update_feature,delete_feature; отверстия и иные операции должны возвращатьfeature_id. - Устойчивый выбор:
get_model_revision,list_vertices,resolve_selector,validate_selector; это также замыкает веткуvertexметодаmeasure. - Многотельность:
delete_bodyи выбор тел устойчивыми идентификаторами в существующих direct-edit операциях. - Сборки:
describe_assembly,describe_component,assembly_set_component_placement,assembly_remove_component,list_mates,assembly_update_mate,assembly_remove_mate,assembly_check_interference,validate_assembly. - Чертёжный CRUD:
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. - Восстановление:
transaction_begin,transaction_commit,transaction_rollback,checkpoint_create,checkpoint_restore,session_recover. - Параметрический контур:
sketch_set_driving_dimensionостаётся платформенно ограниченным и требует отдельного решения до признания сценария полным.
P1 — типовые профессиональные сценарии
- Управление деревом и вариантами:
set_feature_suppressed,document_set_properties. - Полный многотельный контур:
copy_body,transform_body,boolean_subtract,boolean_intersect; расширениеboolean_unionиmirror_bodyвыбором операндов. - Сборочные связи:
assembly_add_concentric_mate,assembly_add_oriented_mate,assembly_set_component_suppressed. - Профессиональное оформление:
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с выбором листов и проверяемым отчётом. - Пошаговое исправление:
undo,redo.
P2 — расширение охвата
- Дополнительные представления:
drawing_create_local_view. - Дополнительные форматы:
import_model,export_model,import_drawing,export_meshпосле поформатной проверки. - Длительные операции:
operation_cancelпосле подтверждения надёжного внешнего поведения.
Итоговая оценка
Текущий контракт силён в создании 3D-геометрии, структурном чтении детали, STEP-обмене и первичном создании сборок и чертежей. Он ещё не является полным автономным CAD-контуром: активный документ остаётся глобальным неявным состоянием; созданные сущности эскиза, отверстия, компоненты, сопряжения, виды и аннотации недостаточно адресуемы; индексы топологии не связаны с ревизией; отсутствуют update/delete для большинства семейств и безопасное восстановление. Все пять сквозных сценариев поэтому остаются частичными или неполными.