MCP-сервер, который превращает операции КОМПАС-3D — создание документов, эскизы, 3D-операции, параметры — в инструменты для языковой модели. Под капотом — COM Automation API АСКОН.
Инструменты сгруппированы вокруг живого инженерного цикла моделирования — от подключения к КОМПАС до построения и опроса детали.
Attach к запущенному или launch нового экземпляра по ProgID, переход на API7
через ksGetApplication7(), управление видимостью окна.
Создание, открытие, сохранение и закрытие деталей, сборок, чертежей и фрагментов
через IDocuments.
Эскиз на плоскости или грани, примитивы (линия, окружность, дуга,
прямоугольник), безопасный цикл BeginEdit → EndEdit.
Выдавливание и вырез, вращение, перестроение. Управление направлением, глубиной и
типом окончания (ksEndTypeEnum).
describe_model — паспорт детали (МЦХ, тела, дерево, переменные) одним вызовом.
describe_face · describe_edge · measure.
Предпочтительнее снимка — без расхода токенов изображения.
Перечисление граней, рёбер и компонентов сборки с классификацией; МЦХ, габарит.
list_faces · list_edges · list_components.
Импорт .step/.stp в новый документ (деталь или сборка, создание файлов компонентов); экспорт в AP203/AP214/AP242 через встроенный конвертер КОМПАС.
move_face: сдвинуть грань на N мм вдоль нормали (наружу или внутрь).
Работает на импортированной B-rep через FaceMover API7.
Рендер модели в PNG через временный файл и возврат как image-контент MCP — агент видит
результат. Fallback после describe_model для визуально-пространственных вопросов.
Главный пользовательский поток v1 — итеративное параметрическое моделирование с визуальной проверкой: рисуем профиль, превращаем в объём, смотрим на результат, выбираем грань, рисуем следующий профиль.
создать деталь (part)
на плоскости XOY, профиль
boss-операция → тело
агент видит результат
по точке на теле
новый эскиз → cut
↻ Повторять со зрением — снимок → новая грань → новый эскиз → новая операция → снова снимок, пока деталь не готова
Выбор обоснован первоклассным COM-интеропом .NET и официальным C# MCP SDK — подробности в документе архитектуры.
Честный срез состояния: фундамент подготовки готов, реализация сервера — впереди.
kdoc.py (навык kompas-sdk-research) + индекс на 26k стр.docs/ARCHITECTURE.mdSystem: connect · status · set_visibleDocuments: create · open · save · save_as · close · activeSketch: create · on_face (точка/индекс) · on_offset_plane (смещённая плоскость) · add line/circle/arc/arc_3points/rectangle/axis/ellipse/polyline/polygon/spline/point · closeFeatures: extrude · revolve · fillet_edge/chamfer_edge (точка + индекс) · shell (оболочка) · rib (ребро жёсткости) · sweep (кинематическая) · loft (по сечениям) · linear_pattern · circular_pattern · mirror_operation · mirror_body · hole (API7) · hole_counterbore (цековка, API7) · hole_countersink (зенковка, API7) · hole_conic (коническое, API7) · draft (уклон, API5) · rebuildEdit: move_face · split_solid_by_plane · move_body · boolean_unionInspection: describe_model · list_features · list_bodies · list_variables · describe_face · describe_edge · measureVision: model_snapshot 👁️ (fallback)Query: get_part_info · get_bounding_box · list_faces · list_edges · list_componentsVariables: create_variable · set_variable · delete_variable (пакет D)Conversion: import_step · export_stepAssembly: assembly_add_component (вставка компонента .m3d/.a3d в сборку, API7) · assembly_add_mate (сопряжения coincidence/distance, API7)Drawing: drawing_create_standard_views (стандартные ассоциативные виды чертежа, API7) · drawing_fill_title_block (основная надпись/штамп: обозначение, наименование, материал, API7) · drawing_add_linear_dimension (линейный размер на виде, ISymbols2DContainer, API7) · drawing_add_diametral_dimension (диаметральный размер Ø, IDiametralDimension, API7) · drawing_add_radial_dimension (радиальный размер R, IRadialDimension, API7) · drawing_add_angular_dimension (угловой размер, IAngleDimension, angleType=min/max/more, API7) · drawing_add_rough (знак шероховатости, IRough/IRoughParams, signType=delete/without/none, API7) · drawing_add_text (свободный текст на виде, IDrawingContainer/IDrawingText, API7) · drawing_set_technical_requirements (тех. требования документа, IDrawingDocument/TechnicalDemand, API7)kompas-mcp.exe, README с конфигом клиентаkompas-3d (методика) + полигон usecases/Наращиваем покрытие API волнами — от простых операций к параметрике, черчению и сборкам.
Документы, эскизы, выдавливание/вырез, снимок модели
Эскиз на грани · вращение · скругление/фаска · list_faces/edges · import_step · export_step · list_components · навык kompas-3d
move_face (сдвиг грани на N мм) · describe_model · list_features · list_bodies · list_variables · describe_face · describe_edge · measure
arc · arc_3points · ellipse · polyline · polygon · spline · point (+7 инструментов); PartModeler разбит на partial-классы; SketchGeometry
shell ✓ · rib ✓ · sweep ✓ · loft ✓ (по сечениям) · offset-plane ✓ (пакет E)
linear_pattern ✓ · circular_pattern ✓ · mirror_operation ✓ · mirror_body ✓ · hole ✓ (API7)
draft ✓ (API5 ksInclineDefinition, o3d_incline=42) · 64 инструмента · 115 тестов
create_variable · set_variable · delete_variable (API5 VariableService) · list_variables исправлен · 67 инструментов
hole_counterbore (ksHTCounterbore) · hole_countersink (ksHTCountersinking) · hole_conic (ksHTConic, IConicHoleParameters) · HoleCore рефакторен (configure-колбэк) · 70 инструментов · 119 тестов
assembly_add_component (API7 IParts7.AddFromFile + IPlacement3D)
assembly_add_mate (coincidence/distance, API7 IMateConstraints3D) · IntegrationTestBase · 72 инструмента · 156 тестов
drawing_create_standard_views (AddStandartViews, API7) · drawing_fill_title_block (IStamp.Text[id].Str, API7) · 74 инструмента · 188 тестов
drawing_add_linear_dimension (ISymbols2DContainer/LineDimensions.Add/ILineDimension, локальная СК вида, API7) · ViewNumbers в результате видов · 75 инструментов · 203 теста
drawing_add_diametral_dimension (ISymbols2DContainer.DiametralDimensions.Add/IDiametralDimension, Xc/Yc/Radius/Angle рад, API7) · RequireSymbols2DContainer общий хелпер · DimensionAngles.ToRadians · 76 инструментов · 218 тестов
drawing_add_radial_dimension (IRadialDimension, DimensionType=true, API7) · drawing_add_angular_dimension (IAngleDimension, angleType=min/max/more, AngleDimensionType enum, API7) · базовое семейство размеров завершено · 78 инструментов · 241 тест
drawing_add_rough (IRough/IRoughParams, signType=delete/without/none, API7) · drawing_add_text (IDrawingContainer/IDrawingText/IText, API7) · drawing_set_technical_requirements (IDrawingDocument/TechnicalDemand, уровень документа, API7) · DrawingAnnotationResult · RoughSignType enum · 81 инструмент · 267 тестов
Ассоциативная привязка размеров и шероховатости к геометрии (BaseObject) · рамка/формат · выноски (Leaders) · обозначения баз (Bases) · допуски формы (Tolerances) · пакет E (ось, угловая плоскость) · прочие типы сопряжений (parallel/perpendicular/concentric/angle/tangency) · пакет D параметрика — параметрические эскизы недоступны через COM API