Рекомендации по использованию функций IF в уравнениях

При использовании функции IF и назначении значения для Global Variable или значения для сравнения можно получить неожиданный результат из-за выполнения в уравнениях расчетов с плавающей точкой.

SOLIDWORKS использует расчеты с плавающей точкой для сравнения значений. Например, если указать для Global Variable значение 2.2, SOLIDWORKS может оценить его как 2.200001 или 2.1999998. В таких случаях при сравнении возвращается значение 0 (False) вместо 1 (True).

Чтобы избежать этой проблемы, используйте в уравнении сравнения значение допуска. В приведенном ниже примере создается допуск 0.0000001.

В разделе Значение/уравнения создайте выражение IF следующим образом.

= iif ( abs ("GV" - 2.2) <= "tolerance", 1, 0)

В функции сравнения IF Test with tolerance разность положительного абсолютного значения Global VariableGV и равного ему числа меньше или равна tolerance. Таким образом, уравнение дает значение 1 (ожидаемый результат).
Обратите внимание, что Test without tolerance дает значение 0 (неожиданный результат).

Для получения положительного значения операции вычитания с целью сравнения с допуском используется функция abs() (абсолютная величина). Если один или оба средства сравнения в уравнении имеют отрицательное значение, используйте функцию abs(), чтобы получить нужную логику.