From ddc71a8ac059e10289c6658c7328858ad8dbcdbe Mon Sep 17 00:00:00 2001 From: Shahovalov MIkhail Date: Tue, 26 May 2026 23:07:09 +0300 Subject: [PATCH] =?UTF-8?q?fix(feature):=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=20sweep=20=D0=BF=D0=BE=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= =?UTF-8?q?=20Codex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - описание sweep смягчено (несовместимость → ошибка Create) - тест: проверка габарита цилиндра 10x10x50 (подтверждает ось) Co-Authored-By: Claude Opus 4.7 (1M context) --- src/Kompas.Mcp.Host/Tools/FeatureTools.cs | 2 +- tests/Kompas.Mcp.Tests/Integration/FeatureOpsTests.cs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Kompas.Mcp.Host/Tools/FeatureTools.cs b/src/Kompas.Mcp.Host/Tools/FeatureTools.cs index cd050e3..497d5a2 100644 --- a/src/Kompas.Mcp.Host/Tools/FeatureTools.cs +++ b/src/Kompas.Mcp.Host/Tools/FeatureTools.cs @@ -114,7 +114,7 @@ public sealed class FeatureTools(KompasSession session, PartModeler modeler) } [McpServerTool(Name = "sweep")] - [Description("Кинематическая операция: переместить замкнутый профиль (эскиз profileSketchId) вдоль траектории (эскиз pathSketchId), образуя сплошное тело. Профиль и траектория — на разных плоскостях (обычно перпендикулярных); начало траектории должно совпадать с плоскостью профиля. Возвращает id операции.")] + [Description("Кинематическая операция: переместить замкнутый профиль (эскиз profileSketchId) вдоль траектории (эскиз pathSketchId), образуя сплошное тело. Профиль и траектория должны быть совместимы: на разных плоскостях (обычно перпендикулярных), начало траектории — на плоскости профиля; иначе операция вернёт ошибку построения. Возвращает id операции.")] public async Task Sweep(int profileSketchId, int pathSketchId) { await session.ConnectAsync(); diff --git a/tests/Kompas.Mcp.Tests/Integration/FeatureOpsTests.cs b/tests/Kompas.Mcp.Tests/Integration/FeatureOpsTests.cs index c5c457c..ce102b4 100644 --- a/tests/Kompas.Mcp.Tests/Integration/FeatureOpsTests.cs +++ b/tests/Kompas.Mcp.Tests/Integration/FeatureOpsTests.cs @@ -105,6 +105,12 @@ public sealed class FeatureOpsTests var v = (await _query.GetPartInfoAsync()).Volume; var expected = Math.PI * 25 * 50; Assert.InRange(v, expected * 0.95, expected * 1.05); + + // Габарит подтверждает ось: цилиндр R5 вдоль Z → ≈10×10×50. + var box = await _query.GetBoundingBoxAsync(); + Assert.InRange(box.SizeX, 10 * 0.95, 10 * 1.05); + Assert.InRange(box.SizeY, 10 * 0.95, 10 * 1.05); + Assert.InRange(box.SizeZ, 50 * 0.95, 50 * 1.05); } finally { await _docs.CloseAsync(save: false); } }