Files
kompas3d-mcp/docs/AGENT_CAD_TOOL_CATALOG.md
T

47 KiB
Raw Blame History

Каталог внешнего 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 для большинства семейств и безопасное восстановление. Все пять сквозных сценариев поэтому остаются частичными или неполными.