iLogic 提供了一組可以加入至規則的數學函數。在 iLogic 的「編輯規則」對話方塊中,可以使用以下一種方法來存取數學函數:
標準 VB.NET 數學資源庫提供了在 iLogic 中使用的大部分數學函數:
IsNumeric | PI |
MinOfMany | Sqrt |
MaxOfMany | Abs |
Round | Sign |
捨入小數精確度 | Int |
捨入到最接近的增量 | Fix |
進位到增量 | Log10 |
捨去到增量 | 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)
由於某些 Autodesk 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() | 將引數捨入為整數,或者捨入為帶有指定小數位數的數值。 |
語法:Round(引數, 所需的小數位數 [可選]) 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。 |
如果 a = 10.00,b = 10.01 EqualWithinTolerance(a, b, 0.015) = True [Abs(a-b) 小於公差值 0.015 英吋] EqualWithinTolerance(a, b, 0.001) = False [Abs(a-b) 大於公差值 0.001] |
EqualWithinTolerance(a,b) | 使用預設公差 0.0000001 |