feat: drawing_add_diametral_dimension — упрочнение по ревью Codex реализации
#2: инвариант диаметра value>0 (value<=0||!IsFinite, не Abs<1e-6). #3: сообщение create_standard_views обобщено (номера видов для инструментов размеров). #4a: ToRadians проверяет конечность результата (переполнение). #5d: тест viewNumber:999 (вид не найден). #6: комментарий DimensionType переформулирован (COM-дефолт). Тесты: DrawingDiametralTests 4→5. Итого 141 unit + 77 integration = 218. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -158,7 +158,8 @@ public sealed class DrawingService
|
||||
try
|
||||
{
|
||||
dim.Xc = xc; dim.Yc = yc; dim.Radius = radius; dim.Angle = angleRad;
|
||||
// DimensionType (стиль линии) не задаём — принимаем COM-дефолт (стандартный стиль).
|
||||
// DimensionType (стиль размерной линии) не задаём — оставляем COM-дефолт (полярность bool
|
||||
// не подтверждена; дефолт даёт валидный размер с верным значением — проверено спайком).
|
||||
((IDimensionText)dim).AutoNominalValue = true;
|
||||
|
||||
if (!dim.Update())
|
||||
@@ -167,8 +168,8 @@ public sealed class DrawingService
|
||||
throw new InvalidOperationException("Диаметральный размер построен невалидным.");
|
||||
|
||||
var value = ((IDimensionText)dim).NominalValue; // диаметр = 2·radius
|
||||
if (Math.Abs(value) < 1e-6)
|
||||
throw new InvalidOperationException("Диаметральный размер измерил нулевое значение.");
|
||||
if (value <= 0 || !double.IsFinite(value)) // инвариант диаметра: строго положительный
|
||||
throw new InvalidOperationException($"Диаметральный размер измерил некорректное значение ({value}).");
|
||||
return new DrawingDimensionResult { Value = value, ViewNumber = view.Number };
|
||||
}
|
||||
catch
|
||||
|
||||
Reference in New Issue
Block a user