feat: drawing_add_linear_dimension — упрочнение по ревью Codex реализации
#4: отклонение нулевого NominalValue после Update (ориентация несовместима с точками, напр. horizontal на вертикали |X2-X1|=0) — откат dim.Delete + ошибка. #3: Parallel протестирован — работает БЕЗ явного Angle (КОМПАС авто-вычисляет угол по точкам; (0,0)-(30,40)→50). #7: rollback-ветка покрыта тестом нулевой проекции. #8: контракт «первый несистемный вид» — осознанный (задокументирован). Тесты: DrawingDimensionTests 5→7 (+parallel, +нулевая проекция/откат). Итого 131 unit + 72 integration = 203. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -118,6 +118,12 @@ public sealed class DrawingService
|
||||
|
||||
// NominalValue читаем ТОЛЬКО после успешного Update и Valid.
|
||||
var value = ((IDimensionText)dim).NominalValue;
|
||||
// Нулевое значение — ориентация несовместима с точками (напр. horizontal для точек на одной
|
||||
// вертикали: |X2-X1|=0). RequireDistinctPoints это не ловит — точки различны по Y.
|
||||
if (Math.Abs(value) < 1e-6)
|
||||
throw new InvalidOperationException(
|
||||
"Размер измерил нулевое значение — выбранная ориентация несовместима с точками " +
|
||||
"(например, horizontal для точек на одной вертикали; используйте vertical/parallel).");
|
||||
return new DrawingDimensionResult { Value = value, ViewNumber = view.Number };
|
||||
}
|
||||
catch
|
||||
|
||||
Reference in New Issue
Block a user