iLogic 中的數學函數

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 數學函數

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) 比較兩個參數 (由 ab 表示) 的值 ,並將差值與公差值進行比較 (此處將公差值指定為 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