mikhail
b73748f84b
@
...
feat(query): инструмент get_part_info (МЦХ детали)
QueryService через IMassInertiaParam7: объём, масса, площадь, центр масс.
Единицы выставляются детерминированно (мм/кг) через LengthUnits/MassUnits —
иначе КОМПАС отдаёт значения в единицах отображения МЦХ (по умолчанию см/г).
Calculate() возвращает FALSE даже при успехе → опираемся на свойство Actual.
Интеграционный тест: цилиндр R10×H20 → V≈6283 мм³, S≈1885 мм², m≈0.049 кг, Zc=10 мм.
Находка задокументирована в OPEN_QUESTIONS; презентация обновлена (19 инструментов, 14 тестов).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
@
2026-05-26 09:35:57 +03:00
mikhail
60cf26f739
refactor(core): правки по код-ревью (COM-утечки, безопасный shutdown, типобезопасность)
...
- PartModeler: ResetAsync/Dispose освобождают RCW и чистят реестр эскизов/операций;
Editor освобождается после EndEdit (C1)
- DocumentTools: сброс реестра при create/open/close — нет устаревших id (C2)
- DocumentService: освобождение транзитных IDocuments/IKompasDocument (m9)
- KompasSession.Dispose: ограниченное ожидание 5с вместо вечного блока (M3)
- PartModeler.ExtrudeAsync: убран dynamic -> конкретные definition-типы;
throughAll только для cut (M4)
- FeatureTools.extrude_cut: дефолт throughAll=false, без подмены depth (m7)
- tests: регрессия на сброс реестра (старый id недействителен)
- docs/OPEN_QUESTIONS.md: итоги ревью (исправлено/отложено)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-26 09:18:52 +03:00
mikhail
09ef56f6bc
docs: README + актуализация CLAUDE.md и презентации (v1 готов)
...
- README.md: требования, сборка/запуск, конфиг MCP-клиента, инструменты, тесты
- CLAUDE.md: раздел Current state переписан под реализованный v1 + команды + ключевые факты
- presentation.html: статус/прогресс (72%), TODO (фундамент и инструменты — готово), roadmap v1 ✓
- 12 тестов зелёные (5 unit + 7 integration)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-26 00:07:22 +03:00
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
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
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
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