@
feat(features): скругление и фаска ребра (fillet_edge / chamfer_edge) PartModeler.FilletEdgeAsync / ChamferEdgeAsync через API5 o3d_fillet/o3d_chamfer: ребро выбирается по точке (общий хелпер SelectEdgeByPoint поверх EntityCollection(o3d_edge).SelectByPoint), добавляется в def.array(), радиус/катет задаются (ksFilletDefinition.radius, ksChamferDefinition.SetChamferParam). Новые MCP-инструменты: fillet_edge, chamfer_edge. Тест Fillet_and_chamfer_edges: цилиндр → скругление верхнего ребра R3 + фаска нижнего 2×2, проверка успеха, уменьшения объёма и снимка (визуально подтверждено). Презентация: 25 инструментов, 17 тестов. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> @
This commit is contained in:
@@ -55,6 +55,24 @@ public sealed class FeatureTools(KompasSession session, PartModeler modeler)
|
||||
return $"Вырез вращением (cut) создан, id={id}.";
|
||||
}
|
||||
|
||||
[McpServerTool(Name = "fillet_edge")]
|
||||
[Description("Скруглить ребро детали, выбранное по точке (мировые координаты x,y,z в мм, точка должна лежать на ребре), радиусом radius (мм). Сделайте model_snapshot, прикиньте точку на ребре. Возвращает id операции.")]
|
||||
public async Task<string> FilletEdge(double x, double y, double z, double radius)
|
||||
{
|
||||
await session.ConnectAsync();
|
||||
var id = await modeler.FilletEdgeAsync(x, y, z, radius);
|
||||
return $"Скругление R{radius} создано на ребре в точке ({x}, {y}, {z}), id={id}.";
|
||||
}
|
||||
|
||||
[McpServerTool(Name = "chamfer_edge")]
|
||||
[Description("Снять фаску с ребра детали, выбранного по точке (мировые координаты x,y,z в мм, точка должна лежать на ребре), катетом distance (мм). Сделайте model_snapshot, прикиньте точку на ребре. Возвращает id операции.")]
|
||||
public async Task<string> ChamferEdge(double x, double y, double z, double distance)
|
||||
{
|
||||
await session.ConnectAsync();
|
||||
var id = await modeler.ChamferEdgeAsync(x, y, z, distance);
|
||||
return $"Фаска {distance}×{distance} создана на ребре в точке ({x}, {y}, {z}), id={id}.";
|
||||
}
|
||||
|
||||
[McpServerTool(Name = "rebuild")]
|
||||
[Description("Перестроить активный документ.")]
|
||||
public async Task<string> Rebuild()
|
||||
|
||||
Reference in New Issue
Block a user