Cuando utiliza la función IF
y asigna un valor a la variable global
o al valor con el que desea comparar, puede obtener un resultado inesperado debido a los cálculos de punto flotante realizados por las ecuaciones.
SOLIDWORKS utiliza cálculos de punto flotante para comparar valores. Por ejemplo, si especifica una variable global
de 2.2, SOLIDWORKS podría evaluarla como 2.2000001 o 2.1999998. En estos casos, la comparación devuelve 0 (Falso) en lugar de 1 (Verdadero).
Para evitar este problema, utilice un valor de tolerancia en su ecuación de comparación. En este ejemplo, se crea una tolerancia de 0.0000001.

En Valor/Ecuaciones, cree la declaración IF de la siguiente manera:
= iif ( abs ("GV" - 2.2) <= "tolerance", 1,
0)
En la función IF de comparación,
Test with
tolerance, el valor absoluto positivo de la
variable global
GV menos el propio valor es menor o igual a
tolerance, por lo que la ecuación
Evaluar a 1 es el resultado esperado.
Tenga en cuenta que el Test without
tolerance inesperadamente se Evalúa a 0.
Puede utilizar la función abs()
(absoluto) para obtener el valor positivo de la operación de sustracción para compararlo con la tolerancia. Si uno o ambos comparadores en la ecuación tienen un valor negativo, puede utilizar la función abs()
para obtener la lógica deseada.