@
feat(query): габариты детали (get_bounding_box) QueryService.GetBoundingBoxAsync через API5 ksPart.GetGabarit(full=false) → габаритный параллелепипед (мм) + размеры по осям. Помогает агенту оценить протяжённость модели и подбирать точки для select-by-point (грани/рёбра). Новый инструмент get_bounding_box; запись BoundingBox. Тест: цилиндр R10×H20 → X,Y ∈ [-10;10], Z ∈ [0;20] (расширен QueryTests). Презентация: 26 инструментов. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> @
This commit is contained in:
@@ -18,4 +18,14 @@ public sealed class QueryTools(KompasSession session, QueryService query)
|
||||
return $"Объём: {i.Volume:F2} мм³; масса: {i.Mass:F4} кг; площадь: {i.Area:F2} мм²; " +
|
||||
$"центр масс: ({i.CenterX:F2}, {i.CenterY:F2}, {i.CenterZ:F2}).";
|
||||
}
|
||||
|
||||
[McpServerTool(Name = "get_bounding_box")]
|
||||
[Description("Габариты активной детали: координаты габаритного параллелепипеда (мм) и его размеры. Помогает оценить протяжённость модели и подобрать точки для выбора граней/рёбер.")]
|
||||
public async Task<string> GetBoundingBox()
|
||||
{
|
||||
await session.ConnectAsync();
|
||||
var b = await query.GetBoundingBoxAsync();
|
||||
return $"Габарит: X [{b.MinX:F2}; {b.MaxX:F2}], Y [{b.MinY:F2}; {b.MaxY:F2}], Z [{b.MinZ:F2}; {b.MaxZ:F2}]; " +
|
||||
$"размеры (Д×Ш×В): {b.SizeX:F2} × {b.SizeY:F2} × {b.SizeZ:F2} мм.";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user