Mejores prácticas para las funciones IF en las ecuaciones

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 globalGV 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.