Files
kompas3d-mcp/docs/AGENT_CAD_TOOL_CATALOG.md
T

48 KiB
Raw Blame History

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