2 Commits
55 changed files with 504 additions and 585 deletions
+3 -3
View File
@@ -16,9 +16,9 @@ STEP/STL, осмотр и измерение модели — плюс два н
(`SDK\Samples\CSharp.zip`, каталог `Common`); при первом запуске они распаковываются
в `%LOCALAPPDATA%\kompas-mcp\interop\<ключ>`. Если SDK не установлен, укажите каталог
с этими сборками в переменной окружения `KOMPAS_INTEROP_DIR`;
- **[.NET Runtime](https://dotnet.microsoft.com/download/dotnet) 8 или новее, x64** — сервер
- **[.NET Runtime](https://dotnet.microsoft.com/download/dotnet) 10 или новее, x64** — сервер
поставляется framework-dependent (2,3 МБ вместо 34), поэтому рантайм берётся с машины.
Проверить: `dotnet --list-runtimes` должен показать `Microsoft.NETCore.App 8.x` или новее;
Проверить: `dotnet --list-runtimes` должен показать `Microsoft.NETCore.App 10.x` или новее;
- чекаут и рабочие файлы — вне синхронизируемых папок OneDrive.
Запускать КОМПАС заранее не нужно: сервер присоединится к открытому окну, а если его нет —
@@ -48,7 +48,7 @@ STEP/STL, осмотр и измерение модели — плюс два н
| | |
|---|---|
| **MCP-сервер `kompas`** | 74 инструмента: документы, эскизы, выдавливание/вращение/по сечениям/по траектории, оболочка, рёбра, уклон, скругления и фаски, массивы и зеркало, отверстия, булевы операции, прямое редактирование B-rep, переменные и параметризация, **исполнения** (несколько геометрий одной модели в одном файле), внешний вид (цвет, прозрачность, текстуры), сборки и сопряжения (в том числе по вспомогательным плоскостям и осям), 2D-чертежи (виды, размеры, обозначения, тех. требования), STEP/STL, осмотр (`describe_model`, `list_faces`, `list_edges`, `measure`) |
| **MCP-сервер `kompas`** | 78 инструментов: документы, эскизы, выдавливание/вращение/по сечениям/по траектории, оболочка, рёбра, уклон, скругления и фаски, массивы и зеркало, отверстия, булевы операции, прямое редактирование B-rep, переменные и параметризация, **исполнения** (несколько геометрий одной модели в одном файле), внешний вид (цвет, прозрачность, текстуры), сборки и сопряжения (в том числе по вспомогательным плоскостям и осям), 2D-чертежи (виды, размеры, обозначения, тех. требования), STEP/STL, осмотр (`describe_model`, `list_faces`, `list_edges`, `measure`) |
| **Навык `kompas-3d`** | методика построения: порядок работы, выбор подхода, проверенные приёмы и ловушки |
| **Навык `kompas-fdm-design`** | проектирование под FDM/FFF-печать: нависания, толщины стенок, зазоры и посадки, ориентация, бобышки и защёлки |
| **Команда `/kompas:doctor`** | диагностика установки |
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "kompas",
"displayName": "КОМПАС-3D",
"version": "0.4.0",
"version": "0.6.0",
"description": "Управление КОМПАС-3D из Claude Code: детали, сборки, чертежи, STEP — через MCP-сервер",
"author": {
"name": "Shahovalov Mikhail",
+2 -2
View File
@@ -13,9 +13,9 @@
сервера не входят и берутся из установки (`SDK\Samples\CSharp.zip`, каталог `Common`). При первом
запуске они распаковываются в `%LOCALAPPDATA%\kompas-mcp\interop\<ключ>`; если SDK не установлен,
укажите каталог с этими сборками в переменной окружения `KOMPAS_INTEROP_DIR`;
- [**.NET Runtime**](https://dotnet.microsoft.com/download/dotnet) **8 или новее, x64** — сервер
- [**.NET Runtime**](https://dotnet.microsoft.com/download/dotnet) **10 или новее, x64** — сервер
поставляется framework-dependent, рантайм берётся с машины. Проверка: `dotnet --list-runtimes`
показывает `Microsoft.NETCore.App 8.x` или новее;
показывает `Microsoft.NETCore.App 10.x` или новее;
- чекаут репозитория и рабочие файлы — вне синхронизируемых папок OneDrive.
## Установка
+1 -1
View File
@@ -4,7 +4,7 @@ Codex не знает ни маркетплейсов, ни `${CLAUDE_PLUGIN_ROO
к каталогу плагина.
1. Склонировать `https://git.shahovalov.ru/mikhail/kompas-plugin.git` — сервер лежит внутри,
в `plugin/bin/`, собирать ничего не нужно (требуется .NET Runtime 8+ x64).
в `plugin/bin/`, собирать ничего не нужно (требуется .NET Runtime 10+ x64).
2. Вставить `config.snippet.toml` в `~/.codex/config.toml`, заменив `<PLUGIN>` на абсолютный путь
к каталогу `plugin/` клона. Лаунчер `scripts/launch-kompas-mcp.ps1` — тот же, что у плагина
Claude Code.
+1 -1
View File
@@ -1,7 +1,7 @@
# Подключение к opencode
1. Склонировать `https://git.shahovalov.ru/mikhail/kompas-plugin.git` — сервер лежит внутри,
в `plugin/bin/` (требуется .NET Runtime 8+ x64).
в `plugin/bin/` (требуется .NET Runtime 10+ x64).
2. Слить `opencode.json` со своим конфигом opencode, заменив `<PLUGIN>` на абсолютный путь к
каталогу `plugin/` клона. Используется тот же лаунчер `scripts/launch-kompas-mcp.ps1`.
3. Навыки: скопировать `plugin/skills/{kompas-3d,kompas-fdm-design}` в каталог навыков агента
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4 -3
View File
@@ -1,14 +1,15 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"tfm": "net10.0",
"rollForward": "LatestMajor",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
"version": "10.0.0"
},
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
"CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
}
}
}
+2 -2
View File
@@ -28,9 +28,9 @@ description: "Диагностика установки плагина КОМП
`/plugin update kompas@kompas-plugin`, затем `/reload-plugins`.
4. **.NET Runtime.** Сервер поставляется framework-dependent, поэтому рантайм нужен на машине:
`dotnet --list-runtimes` должен показать строку `Microsoft.NETCore.App 8.<любая>` или новее
`dotnet --list-runtimes` должен показать строку `Microsoft.NETCore.App 10.<любая>` или новее
(x64). Ни одной подходящей строки или самой команды `dotnet` нет — это и есть причина сбоя
пункта 3: попроси пользователя поставить .NET Runtime 8 или новее с
пункта 3: попроси пользователя поставить .NET Runtime 10 или новее с
https://dotnet.microsoft.com/download/dotnet (нужен именно x64; Desktop Runtime не обязателен).
5. **КОМПАС-3D установлен и, возможно, уже запущен.** Сервер подключается к КОМПАС лениво — не при
+1 -1
View File
@@ -40,7 +40,7 @@ catch {
# Самая частая причина здесь — отсутствующий .NET Runtime: сервер поставляется
# framework-dependent, и без рантайма apphost падает именно тут.
[Console]::Error.WriteLine("kompas-mcp launcher: не удалось запустить сервер: $($_.Exception.Message)")
[Console]::Error.WriteLine("kompas-mcp launcher: если .NET Runtime не установлен — https://dotnet.microsoft.com/download/dotnet (нужен .NET 8 или новее, x64)")
[Console]::Error.WriteLine("kompas-mcp launcher: если .NET Runtime не установлен — https://dotnet.microsoft.com/download/dotnet (нужен .NET 10 или новее, x64)")
exit 1
}
+5 -4
View File
@@ -153,6 +153,8 @@ variables | errors | components` (`sections` сужает и ответ, и об
| Переменное сечение: хвост, гребень, переход круга в квадрат | `loft` по сечениям на смещённых плоскостях (`mode=boss` приклеивает к телу) |
| Труба, поручень, кант по кривой | `sweep(profileSketchId, pathSketchId)` — профиль и траектория на разных плоскостях |
| Тонкая стенка, ободок по контуру | эскиз + `extrude(thinThickness, thinSide)` |
| Наклонная полка, скос, элемент под углом | `sketch_create(plane, planeAngle, planeAxis)` или `planePoints` (три вершины) + `extrude`; сторону берёт нормаль из ответа — `help(topic="auxiliary-planes")` |
| Резьба на валу или в отверстии (M10, M8×1) | `thread` на цилиндрической грани — условное изображение, тело не режет; в отверстии сначала `hole` под сверло (M10 → Ø8.5), потом `thread` — `help(topic="threads")` |
Их **сочетают в одной детали**: корпусные объёмы — примитивами, сложные контуры — эскизами.
@@ -321,8 +323,8 @@ variables | errors | components` (`sections` сужает и ответ, и об
файл детали не меняется — но он перекрывает ВСЕ акценты детали (надпись станет цвета
компонента). Нужны акценты — оставь компоненту наследуемый цвет. Грань или тело ВНУТРИ
компонента из сборки не красятся: акценты, общие для всех экземпляров, задают в файле детали.
- **Передача дальше**: STEP несёт цвета и прозрачность — ответ `export_model` их перечисляет; STL
цветов не несёт.
- **Передача дальше**: STEP несёт цвета и прозрачность, но не текстуры и вырезы; STL не несёт
оформления вовсе. Ответ `export_model` перечисляет попавшие цвета и называет, что потеряно.
- **Отделка по материалу**: металл — `finish="metal"` (`silver`, `gold`), пластик — `satin` или
`matte`, `glossy` — умолчание КОМПАС.
- **Текстура — там, где она что-то говорит**: накатка на рукоятке (`texture="diamond knurl"`,
@@ -336,8 +338,7 @@ variables | errors | components` (`sections` сужает и ответ, и об
на снимке, не трогая массу и топологию. Нужны настоящие отверстия под крепёж или DFM — это
`hole`/`pattern`, вырез их не заменяет. Рисунок «не тем боком» — `textureAngle`, сдвиг —
`textureOffset` (оба вместе с повтором имён `texture` и `cutout` — повернётся только то, что
названо в вызове; поворот 0…180°). Смена рисунка плитку и раскладку сохраняет. В STEP уходят
только цвета — текстуры и вырезы остаются в `.m3d`.
названо в вызове; поворот 0…180°). Смена рисунка плитку и раскладку сохраняет.
- **Проверка — глазами**: `model_snapshot(view="iso")` после раскраски; что окрашено на самом
деле — `describe_model(sections=appearance)`. Прозрачность снимок не рисует — её видно только
в разделе `appearance`.
@@ -38,9 +38,11 @@
| «сдвинуть грань на N мм» | `move_face` | это он и есть |
| «диаметр отверстия (бобышки) должен стать D» | **`resize_face`** | задаётся ДИАМЕТР, ось не двигается; `move_face` сдвинул бы стенку на (D−d)/2, и это пришлось бы считать самому |
| «грань должна встать НА объект: на плоскость, на грань соседнего тела» | **`replace_face`** | расстояние считает КОМПАС; `move_face` требует вычислить его заранее |
| «убрать отверстие / скругление / фаску» с импорта (дефичеринг) | **`remove_face`** | соседние грани затягивают место сами; заливка отверстия телом и вычитание — лишние операции. `saveBody=false` оставляет дыру (тело-оболочка, объём 0) — нужен только если надо именно её |
| «увеличить / уменьшить деталь целиком», компенсация усадки (1.004) | **`scale_body`** | `scale` равномерно или `scaleX/Y/Z`; центр — начало координат либо `x,y,z`; объём сверяется ×kx·ky·kz. Размеры эскизов и переменные остаются прежними — масштабируется тело |
| вставка N мм в призматическую ножку | `split_solid_by_plane` → `move_body` → `move_face` (мост) → `boolean` | цепочка проверена end-to-end: проставка 39.45 → 41.45 мм |
`resize_face` и `replace_face` требуют КОМПАС v25; на версиях старше они отвечают отказом с
`resize_face`, `replace_face` и `remove_face` требуют КОМПАС v25; на версиях старше они отвечают отказом с
номером установленной версии, и тогда остаётся `move_face` с арифметикой.
**Проверяйте прямое редактирование РАЗНОСТЬЮ ОБЪЁМОВ против аналитической формулы** — объём и так
+4 -4
View File
@@ -1,6 +1,6 @@
{
"version": "0.4.0",
"tag": "v0.4.0",
"sourceSha": "f1ecc6ff5a923d524a7aa8dc7b97c538d9cf1bb3",
"built": "2026-10-15T03:15:33Z"
"version": "0.6.0",
"tag": "v0.6.0",
"sourceSha": "dc42ccb36e9032ad6871c1835102cef24474406d",
"built": "2026-10-27T17:31:07Z"
}