При использовании функции 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 Variable
GV и равного ему числа меньше или равна
tolerance. Таким образом, уравнение
дает значение 1 (ожидаемый результат).
Обратите внимание, что Test without
tolerance дает значение 0 (неожиданный результат).
Для получения положительного значения операции вычитания с целью сравнения с допуском используется функция abs()
(абсолютная величина). Если один или оба средства сравнения в уравнении имеют отрицательное значение, используйте функцию abs()
, чтобы получить нужную логику.