Статус: v3+ работает — эскиз→операции→STEP→сборка→move_face→структурный осмотр→богатые эскизы→shell+rib+sweep+loft+массивы+зеркало+hole+draft+переменные (67 инструментов)

КОМПАС-3D MCP-сервер
управление CAD языком LLM

MCP-сервер, который превращает операции КОМПАС-3D — создание документов, эскизы, 3D-операции, параметры — в инструменты для языковой модели. Под капотом — COM Automation API АСКОН.

.NET 8 · C# транспорт stdio COM Automation · API7 / API5 Windows x64 КОМПАС-3D v24 Home 👁 зрение агента
Возможности

Что умеет MCP-сервер

Инструменты сгруппированы вокруг живого инженерного цикла моделирования — от подключения к КОМПАС до построения и опроса детали.

🔌

Подключение к КОМПАС

Attach к запущенному или launch нового экземпляра по ProgID, переход на API7 через ksGetApplication7(), управление видимостью окна.

📄

Документы

Создание, открытие, сохранение и закрытие деталей, сборок, чертежей и фрагментов через IDocuments.

✏️

Эскизы

Эскиз на плоскости или грани, примитивы (линия, окружность, дуга, прямоугольник), безопасный цикл BeginEdit → EndEdit.

🧊

3D-операции

Выдавливание и вырез, вращение, перестроение. Управление направлением, глубиной и типом окончания (ksEndTypeEnum).

🔍

Структурный осмотр

describe_model — паспорт детали (МЦХ, тела, дерево, переменные) одним вызовом. describe_face · describe_edge · measure. Предпочтительнее снимка — без расхода токенов изображения.

🎯

Выборка и запросы

Перечисление граней, рёбер и компонентов сборки с классификацией; МЦХ, габарит. list_faces · list_edges · list_components.

📦

STEP импорт / экспорт

Импорт .step/.stp в новый документ (деталь или сборка, создание файлов компонентов); экспорт в AP203/AP214/AP242 через встроенный конвертер КОМПАС.

✂️

Прямое редактирование

move_face: сдвинуть грань на N мм вдоль нормали (наружу или внутрь). Работает на импортированной B-rep через FaceMover API7.

👁️

Зрение агента

Рендер модели в PNG через временный файл и возврат как image-контент MCP — агент видит результат. Fallback после describe_model для визуально-пространственных вопросов.

Ядро сценария

Цикл «эскиз → операция → эскиз»

Главный пользовательский поток v1 — итеративное параметрическое моделирование с визуальной проверкой: рисуем профиль, превращаем в объём, смотрим на результат, выбираем грань, рисуем следующий профиль.

01

Документ

создать деталь (part)

02

Эскиз

на плоскости XOY, профиль

03

Выдавить

boss-операция → тело

04 👁

Снимок

агент видит результат

05

Выбрать грань

по точке на теле

06

Вырез

новый эскиз → cut

Повторять со зрением — снимок → новая грань → новый эскиз → новая операция → снова снимок, пока деталь не готова

Технологии

Стек решения

Выбор обоснован первоклассным COM-интеропом .NET и официальным C# MCP SDK — подробности в документе архитектуры.

Платформа
.NET 8C# · win-x64
MCP SDK
ModelContextProtocolтранспорт stdio
Интероп
COM AutomationAPI7 + API5 (.tlb)
Потоки
STA-потокнасос сообщений
Прогресс

TODO проекта

Честный срез состояния: фундамент подготовки готов, реализация сервера — впереди.

Общий прогрессv3+: STEP · move_face · структурный осмотр · богатые эскизы (пакет A) · shell+rib+sweep+loft (пакет B) · массивы+зеркало (пакет C) · переменные (пакет D start) · offset-plane (пакет E start) · hole (API7) · draft (API5) · навык kompas-3d · 67 инструментов · 116 тестов

Подготовка ГОТОВО

Исследование, документация и инструменты разработчика

  • Исследование SDK и COM API (API5/API7, паттерны подключения)
  • CLAUDE.md — гайд по репозиторию и API
  • Навигатор по справке: kdoc.py (навык kompas-sdk-research) + индекс на 26k стр.
  • Документ архитектуры docs/ARCHITECTURE.md
  • Выбор стека: .NET/C#, stdio, цикл «эскиз↔операция»
  • Решение о визуальной обратной связи (зрение агента, рендер в растр)

Фундамент v1 ГОТОВО

Скелет сервера и связь с КОМПАС

  • Спайки S1–S4: interop, подключение, STA, рендер
  • Решение Core/Host/Tests, Directory.Build.props, git
  • Маппинг перечислений (enum ↔ строка)
  • STA-диспетчер (выделенный поток, очередь задач)
  • MCP-хост на stdio, логи в stderr
  • Подключение по ProgID (attach/launch)

Инструменты v3+ ГОТОВО

67 инструментов, отдаются по MCP-протоколу

  • System: connect · status · set_visible
  • Documents: create · open · save · save_as · close · active
  • Sketch: create · on_face (точка/индекс) · on_offset_plane (смещённая плоскость) · add line/circle/arc/arc_3points/rectangle/axis/ellipse/polyline/polygon/spline/point · close
  • Features: extrude · revolve · fillet_edge/chamfer_edge (точка + индекс) · shell (оболочка) · rib (ребро жёсткости) · sweep (кинематическая) · loft (по сечениям) · linear_pattern · circular_pattern · mirror_operation · mirror_body · hole (API7) · draft (уклон, API5) · rebuild
  • Edit: move_face · split_solid_by_plane · move_body · boolean_union
  • Inspection: describe_model · list_features · list_bodies · list_variables · describe_face · describe_edge · measure
  • Vision: model_snapshot 👁️ (fallback)
  • Query: get_part_info · get_bounding_box · list_faces · list_edges · list_components
  • Variables: create_variable · set_variable · delete_variable (пакет D)
  • Conversion: import_step · export_step
  • пакет D продолжение (параметрические эскизы, API2D) · пакет E (ось, угловая плоскость)

Качество и поставка В РАБОТЕ

Тесты, сборка, интеграция с клиентом

  • Unit-тесты — без COM: диспетчер, enum-маппинг, StepFormat, InspectionText
  • Интеграционные тесты с КОМПАС: подключение, документы, снимок, цикл, STEP round-trip, сборка, move_face, инспекция
  • Итого 116 тестов зелёных (69 unit + 47 integration)
  • Сборка kompas-mcp.exe, README с конфигом клиента
  • Навык kompas-3d (методика) + полигон usecases/
  • In-process тест MCP-клиента, релизный publish
Дорожная карта

После v1

Наращиваем покрытие API волнами — от простых операций к параметрике, черчению и сборкам.

v1 · готово ✓

Цикл моделирования

Документы, эскизы, выдавливание/вырез, снимок модели

v2 · готово ✓

Операции, выборка, STEP

Эскиз на грани · вращение · скругление/фаска · list_faces/edges · import_step · export_step · list_components · навык kompas-3d

v3 · готово ✓

B-rep + структурный осмотр

move_face (сдвиг грани на N мм) · describe_model · list_features · list_bodies · list_variables · describe_face · describe_edge · measure

пакет A · готово ✓

Богатые эскизы

arc · arc_3points · ellipse · polyline · polygon · spline · point (+7 инструментов); PartModeler разбит на partial-классы; SketchGeometry

пакет B · готово ✓

Формообразующие операции

shell ✓ · rib ✓ · sweep ✓ · loft ✓ (по сечениям) · offset-plane ✓ (пакет E)

пакет C · готово ✓

Массивы и зеркало

linear_pattern ✓ · circular_pattern ✓ · mirror_operation ✓ · mirror_body ✓ · hole ✓ (API7)

draft · готово ✓

Уклон

draft ✓ (API5 ksInclineDefinition, o3d_incline=42) · 64 инструмента · 115 тестов

пакет D start · готово ✓

Переменные модели

create_variable · set_variable · delete_variable (API5 VariableService) · list_variables исправлен · 67 инструментов · 116 тестов

далее · в работе

пакет D продолжение + пакет E

параметрические эскизы (API2D) · вспомогательная геометрия (ось, угловая плоскость)