iLogic 提供了一组可以添加到规则中的数学函数。
在 iLogic“编辑规则”对话框中,使用以下方法之一访问数学函数:
标准的 VB.NET 数学库提供了 iLogic 中使用的大多数数学函数:
IsNumeric | PI |
MinOfMany | Sqrt |
MaxOfMany | Abs |
Round | Sign |
Round decimal precision | Int |
Round Closest to Increment | Fix |
Round Up to Increment | Log10 |
Round Down to Increment | Ln |
Ceil | Pow |
Floor | Min |
Sin | Max |
Cos | CDbl |
Tan | EqualWithinTolerance |
iLogic 提供了一些数学函数。以下函数可模拟可在标准 Inventor 参数表达式中使用的函数:
Ceil (same as Math.Ceiling) Sign0(a) = 1 if a > 0.0, = 0 otherwise Ln (same as Math.Log)
因为某些 Inventor 函数与具有相同名称的 VB.NET 标准数学函数不同,因此当抓取这些函数以在 iLogic 规则中使用时,会对它们进行转换:
Sin(0) = 0 | Cos(PI) = -1 |
Sin(PI) = 0 | Tan(0) = 0 |
Sin(PI/2) = 1 | Tan(PI/4) = 1 |
Cos(0) = 1 | PI = 3.1415926...... |
Cos(PI/2) = 0 |
Sin()、Cos() 和 Tan() 是标准的三角函数,它们使用以弧度(而非度)表示的参数。
如果您在“编辑规则”对话框中对三角公式使用“捕获当前状态”选项,则不会将该公式转换为 VB.NET 代码。而该公式将保持为 Inventor 公式。您可以手动编辑该公式,以将其更改为 VB.NET 公式(使用以弧度单位表示的角度)。
若要从度转换为弧度,请使用以下公式:
弧度 = 度 * (PI/180)
函数 | 目的 | 示例 |
---|---|---|
Abs() | 返回参数的绝对值。 |
Abs(10) = 10 Abs(-9.87) = 9.87 |
Sqrt() | 返回参数的平方根。 |
Sqrt(25) = 5 Sqrt(100) = 10 Sqrt(3) = 1.732051 |
Sign() | 返回指示参数符号的数值。 |
如果值为正,则 Sign(value) = 1 如果值为负,则 Sign(value) = -1 如果值为零,则 Sign(value) = 0 |
Round() | 将参数舍入为整数,或者舍入为带有指定小数位数的数值。 |
Syntax: Round(argument, optional # of decimal places desired) Round(2.55689) = 3 Round(2.55689, 1) = 2.6 Round(2.55689, 3) = 2.557 Round(PI, 4) = 3.1416 |
Ceil() | 将参数舍入为最接近的大于参数的整数。 |
Ceil(2.56) = 3 Ceil(Sqrt(3))= 2 |
Floor() | 将参数舍入为最接近的小于参数的整数。 |
Floor(1.789) = 1 Floor(PI) = 3 |
Log10() | 返回参数以 10 为底的对数。 |
Log10(10) = 1 Log10(100) = 2 Log10(15) = 1.176091 |
Ln() | 返回参数的自然对数(以 e 为底的对数)。 |
Ln(5) = 1.609438 Ln(37) = 3.610918 |
Pow(argument1, argument2) | 返回 argument1 的 argument2 次幂的结果。 |
Pow(2, 2) = 2 2 = 4 Pow(2, 3) = 2 3 = 8 Pow(3, 2) = 3 2 = 9 |
函数 | 目的 | 示例 |
---|---|---|
Min(argument1, argument2) | 返回两个参数中较小的一个。 |
Min(2, 4) = 2 Min(9, 4) = 4 Min(Sqrt(2), Sqrt(3)) = 1.4142..... |
Max(argument1, argument2) | 返回两个参数中较大的一个。 |
Max(2, 4) = 4 Max(9, 4) = 9 Sqrt(3)) = 1.73205..... |
MinOfMany( ,,, ) | 返回众多参数中最小的一个。 |
MinOfMany(2,4,3,6,7,8) = 2 MinOfMany(9,4,5,67,3,5) = 3 MinOfMany(Sqrt(2), Sqrt(3), Sin(PI/2)) = 1 |
MaxOfMany( ,,, ) | 返回众多参数中最大的一个。 |
MaxOfMany(2,4,3,6,7,8) = 8 MaxOfMany(9,4,5,67,3,5) = 67 MaxOfMany(Sqrt(2), Sqrt(3), Sin(PI/ignored>/2)) = 1.73205..... |
EqualWithinTolerance(a, b, 0.001) | 比较两个参数(由 a 和 b 表示)的值,并将差值与公差值进行比较(此处将公差值指定为 0.001)。如果差值小于公差,则函数将返回布尔值 True。如果差值大于公差,则函数将返回布尔值 False。 |
If a = 10.00 and b=10.01 EqualWithinTolerance(a, b, 0.015) = True [Abs(a-b) is less than the tolerance value of 0.015 in] EqualWithinTolerance(a, b, 0.001) = False [Abs(a-b) is greater than the tolerance value of 0.001] |
EqualWithinTolerance(a,b) | 使用默认公差 0.0000001 |