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 Variable
GV 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.