Best practice per le funzioni IF nelle equazioni

Quando si utilizza la funzione IF e si assegna un valore alla Variabile globale o al valore da confrontare, si potrebbe ottenere un risultato imprevisto a causa della matematica a virgola mobile eseguita dalle equazioni.

SOLIDWORKS utilizza la matematica a virgola mobile per confrontare i valori. Ad esempio, se si specifica una Variabile globale di 2.2, SOLIDWORKS potrebbe valutarla come 2,2000001 o 2,1999998. In tali casi, il confronto restituisce 0 (False) invece di 1 (True).

Per evitare questo problema, utilizzare un valore di tolleranza nell'equazione di confronto. In questo esempio, si crea una tolleranza di 0,0000001.

In Valore/equazioni, creare l'istruzione IF nel modo seguente:

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

Nella funzione di confronto IF, Test with tolerance, il valore assoluto positivo della Variabile globaleGV meno lo stesso valore è uguale o inferiore alla tolerance, quindi l'equazione viene Valutata su 1, il risultato previsto.
Si noti che Test without tolerance restituisce inaspettatamente Valuta a 0.

Si utilizza la funzione abs() (assoluta) per ottenere il valore positivo dell'operazione di sottrazione da confrontare con la tolleranza. Se uno o entrambi i comparatori dell'equazione hanno un valore negativo, utilizzare la funzione abs() per ottenere la logica desiderata.