IF
関数を使用してグローバル変数
に値を割り当てたり、比較する値を割り当てると、浮動小数点演算が関係式で実行されるため予期しない結果になる場合があります。
SOLIDWORKS では、浮動小数点演算を使用して値を比較します。たとえば、2.2 のグローバル変数
を指定した場合、SOLIDWORKS はその値を 2.2000001 または 2.1999998 と評価することがあります。このような場合は比較で 1(True)ではなく 0(False)が返されます。
この問題を回避するには、比較式で公差値を使用します。この例では、0.0000001 の公差を作成します。

値/関係式(Value/Equations)で、IF ステートメントを次のように作成します。
= iif ( abs ("GV" - 2.2) <= "tolerance", 1,
0)
比較の IF 関数
Test with
tolerance では、
グローバル変数
GV からこの変数自体を引いた正の絶対値は、
tolerance 以下であるため、この関係式の
評価結果(Evaluates to)は
1 となり、予期される結果になります。
Test without
tolerance の評価結果(Evaluates to)は予期せず 0 になることに注意してください。
減算演算の正の値を取得して公差と比較するには、abs()
(絶対値)関数を使用します。関係式の 1 つまたは両方の比較基準に負の値がある場合は、abs()
関数を使用して目的のロジックを取得します。