Méthode recommandée pour les fonctions IF dans les équations

Lorsque vous utilisez la fonction IF et affectez une valeur à la Global Variable ou à la valeur à comparer, vous pouvez obtenir un résultat inattendu en raison du calcul à virgule flottante effectué par les équations.

SOLIDWORKS utilise les calculs à virgule flottante pour comparer les valeurs. Par exemple, si vous spécifiez une Global Variable de 2.2, SOLIDWORKS peut l'évaluer comme 2,2000001 ou 2,1999998. Dans ce cas, la comparaison renvoie 0 (Faux) au lieu de 1 (Vrai).

Pour éviter ce problème, utilisez une valeur de tolérance dans votre équation de comparaison. Dans cet exemple, vous créez une tolérance de 0,0000001.

Sous Valeur/Equations, créez l'instruction IF comme suit :

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

Dans la fonction DE COMPARAISON IF, Test with tolerance, la valeur absolue positive de la Global VariableGV moins elle-même est inférieure ou égale à tolerance, ainsi, l'équation Equivaut à 1, le résultat attendu.
Notez que le Test without tolerance, de manière inattendue, Equivaut à 0.

Vous utilisez la fonction abs() (absolu) pour obtenir la valeur positive de l'opération de soustraction à comparer à la tolérance. Si l’un des comparateurs de l'équation , ou les deux, ont une valeur négative, utilisez la fonction abs() pour obtenir la logique souhaitée.