方程式中 IF 函数的最佳实践

当您使用 IF 函数并为全局变量或要与之比较的值分配值时,可能会因为方程式完成的浮点数学运算而获得意外结果。

SOLIDWORKS 使用浮点数学运算来比较值。例如,如果您指定全局变量 2.2,SOLIDWORKS 可能会将其计算为 2.2000001 或 2.1999998。在这种情况下,比较返回 0 (False),而不是 1 (True)。

为避免出现此问题,请在比较方程式中使用公差值。在此示例中,您创建的公差为 0.0000001。

数值/方程式下,按如下方式创建 IF 语句:

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

在比较 IF 函数 Test with tolerance 中,全局变量GV 减去自身的正绝对值小于或等于 tolerance,因此方程式计算为 1,即预期结果。
请注意,Test without tolerance 意外计算为 0

您可以使用 abs()(绝对)函数来获取减运算的正值,以便与公差进行比较。如果方程式中的一个或两个比较器都有负值,请使用 abs() 函数来获取所需的逻辑。