fix: правки типов отверстий по ревью Codex

- глухая цековка: проверка depth > spotDepth (несовместимая геометрия) — P2
- описание sinkAngle: строго 0 < sinkAngle < 180 (соответствие валидации) — P3
- описание hole_counterbore: требование depth > spotfaceDepth для глухого
This commit is contained in:
2026-05-27 12:04:28 +03:00
parent aec2f1e52f
commit aeb5d58820
2 changed files with 4 additions and 2 deletions
@@ -40,6 +40,8 @@ public sealed class HoleService
throw new ArgumentOutOfRangeException(nameof(spotDiameter), "Диаметр цековки должен быть больше диаметра отверстия.");
if (!double.IsFinite(spotDepth) || spotDepth <= 0)
throw new ArgumentOutOfRangeException(nameof(spotDepth), "Глубина цековки должна быть > 0.");
if (!throughAll && double.IsFinite(depth) && depth <= spotDepth)
throw new ArgumentOutOfRangeException(nameof(depth), "Глубина глухого отверстия должна быть больше глубины цековки.");
HoleCore(x, y, z, diameter, depth, throughAll, ksHoleTypeEnum.ksHTCounterbore, hole =>
{
var p = hole.HoleParameters as ISpotfacingHoleParameters
+2 -2
View File
@@ -213,7 +213,7 @@ public sealed class FeatureTools(KompasSession session, PartModeler modeler, Hol
}
[McpServerTool(Name = "hole_counterbore")]
[Description("Отверстие с ЦЕКОВКОЙ (цилиндрическое уширение сверху — под винт с цилиндрической головкой) на грани в точке (x,y,z — центр). diameter — диаметр отверстия (мм). depth/throughAll — как у hole. spotfaceDiameter — диаметр цековки (мм, больше diameter), spotfaceDepth — глубина цековки (мм). Направление в тело — авто.")]
[Description("Отверстие с ЦЕКОВКОЙ (цилиндрическое уширение сверху — под винт с цилиндрической головкой) на грани в точке (x,y,z — центр). diameter — диаметр отверстия (мм). depth/throughAll — как у hole (для глухого depth должен быть больше spotfaceDepth). spotfaceDiameter — диаметр цековки (мм, больше diameter), spotfaceDepth — глубина цековки (мм). Направление в тело — авто.")]
public async Task<string> HoleCounterbore(
double x, double y, double z,
[Description("Диаметр отверстия, мм")] double diameter,
@@ -229,7 +229,7 @@ public sealed class FeatureTools(KompasSession session, PartModeler modeler, Hol
}
[McpServerTool(Name = "hole_countersink")]
[Description("Отверстие с ЗЕНКОВКОЙ (коническое уширение сверху — под винт с потайной головкой) на грани в точке (x,y,z — центр). diameter — диаметр отверстия (мм). depth/throughAll — как у hole. sinkDiameter — диаметр зенковки (мм, больше diameter), sinkAngle — угол конуса зенковки (градусы, 0..180; типично 90). Направление в тело — авто.")]
[Description("Отверстие с ЗЕНКОВКОЙ (коническое уширение сверху — под винт с потайной головкой) на грани в точке (x,y,z — центр). diameter — диаметр отверстия (мм). depth/throughAll — как у hole. sinkDiameter — диаметр зенковки (мм, больше diameter), sinkAngle — угол конуса зенковки (градусы, строго 0 < sinkAngle < 180; типично 90). Направление в тело — авто.")]
public async Task<string> HoleCountersink(
double x, double y, double z,
[Description("Диаметр отверстия, мм")] double diameter,