mikhail
230c534403
fix(host): корректный возврат снимка через ImageContentBlock.FromBytes
...
- Data хранит base64-байты; сырые PNG-байты надо отдавать через FromBytes,
иначе изображение портится на проводе (0x89 -> U+FFFD)
- проверено сквозным прогоном по MCP-протоколу: connect -> document_create ->
sketch_create -> add_circle -> close -> extrude_boss -> model_snapshot,
получен валидный PNG (~19 КБ) цилиндра
- docs/OPEN_QUESTIONS.md: конкурентность вызовов MCP и нюанс FromBytes
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-26 00:04:31 +03:00
mikhail
68855c218e
feat(host): MCP-сервер на stdio + 18 инструментов
...
- Program.cs: Host + DI (KompasDispatcher/Session/DocumentService/PartModeler/
SnapshotService), MCP на stdio, логи в stderr
- Tools: System (connect/status/set_visible), Documents (create/open/save/
save_as/close/active), Sketch (create/add_line/circle/rectangle/close),
Features (extrude_boss/extrude_cut/rebuild), Vision (model_snapshot -> ImageContentBlock)
- KompasSession: SetVisibleAsync + кэш LastInfo
- smoke: tools/list по stdio возвращает все 18 инструментов
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:57:56 +03:00
mikhail
af6adc390e
feat(core): PartModeler — эскизы и выдавливание (цикл моделирования)
...
- BasePlane (XOY/XOZ/YOZ) + маппинг в Obj3dType
- PartModeler (API5 ksPart): OpenSketch/AddLine/AddCircle/AddRectangle/CloseSketch,
Extrude (boss/cut, blind/throughAll), Rebuild; реестр эскизов и операций по id
- tests: построение цилиндра со сквозным отверстием + снимок (визуально проверено)
Полный цикл "эскиз -> выдавливание -> эскиз -> сквозной вырез -> снимок" работает.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:52:55 +03:00
mikhail
d4502409de
feat(core): SnapshotService — рендер 3D-модели в PNG (S4, "зрение агента")
...
- RasterImageFormat (PNG/JPG/BMP/...) + MIME-типы + парсинг
- SnapshotService: ksDocument3D.SaveAsToRasterFormat -> временный файл -> байты
(resultArrayBytes при заданном имени файла не заполняется; рендер в файл надёжен)
- tests: снимок активной детали возвращает валидный PNG (визуально проверено)
- docs/OPEN_QUESTIONS.md: зафиксирован нюанс resultArrayBytes
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:48:35 +03:00
mikhail
f0995a67e6
feat(core): DocumentService — create/open/save/close (API7)
...
- KompasDocumentType (Part/Assembly/Drawing/Fragment/Specification/Text)
+ маппинг в DocumentTypeEnum и парсинг строк (ru/en)
- DocumentInfo (Name/PathName/Type)
- DocumentService: Create/Open/Save/SaveAs/Close/GetActive через IDocuments
- tests: интеграция документов (create part/fragment, SaveAs .scratch, close) — зелёные
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:45:28 +03:00
mikhail
0038790902
feat(core): STA dispatcher + KOMPAS connection session (S3)
...
- KompasDispatcher: выделенный STA-поток + очередь задач, InvokeAsync<T>,
inline-выполнение вложенных вызовов, корректный Dispose
- NativeMethods: attach к запущенному COM (CLSIDFromProgID + GetActiveObject,
замена отсутствующего в .NET 8 Marshal.GetActiveObject)
- KompasSession: подключение через API5 (KompasObject) -> API7 (IApplication),
attach/launch, версия/редакция, освобождение COM на STA-потоке
- tests: 5 unit-тестов диспетчера + 3 интеграционных теста подключения (зелёные)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:42:52 +03:00
mikhail
1be3f4d8f9
build: project skeleton (Core / Host / Tests) + MCP SDK
...
- src/Kompas.Mcp.Core: classlib с ссылками на interop-сборки КОМПАС
- src/Kompas.Mcp.Host: console, ModelContextProtocol 1.3.0 + Hosting
- tests/Kompas.Mcp.Tests: xUnit, ссылка на Core
- все проекты унаследовали net8.0-windows/x64 из Directory.Build.props
- docs/OPEN_QUESTIONS.md: журнал спорных решений
- .gitignore: добавлен .scratch/
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:39:04 +03:00
mikhail
6cf9cee49d
chore: add .gitattributes (line-ending normalization, binary DLLs)
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:28:52 +03:00
mikhail
3a98afc67f
chore: initial skeleton + KOMPAS connection spike (S1/S2)
...
Зафиксирован фундамент проекта MCP-сервера КОМПАС-3D:
- docs/: ARCHITECTURE.md, IMPLEMENTATION_PLAN.md, presentation.html
- tools/kdoc.py: навигатор по справке SDK
- libs/kompas-interop/: вендорские interop-сборки КОМПАС из SDK
- src/Kompas.Mcp.ConnectSpike: net8.0-windows консоль, доказывает
работу COM-интеропа и attach/launch подключения к КОМПАС
(IApplication, версия 24.0)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 23:28:29 +03:00