iLogic provides a set of Math functions that can be added to rules. In the iLogic Edit Rule dialog box, use one of the following methods to access the Math functions:
The standard VB.NET Math library provides most of the Math functions used in 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 provides some Math functions. The following functions emulate the functions available in standard Inventor parameter equations:
Ceil (same as Math.Ceiling) Sign0(a) = 1 if a > 0.0, = 0 otherwise Ln (same as Math.Log)
Because certain Autodesk Inventor functions differ from the VB.NET standard Math functions of the same name, they are converted when captured for use in an iLogic rule:
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(), and Tan() are standard trigonometric functions with arguments expressed in radians (not degrees):
If you use the Capture Current State option on a trigonometric formula in the Edit Rule dialog box, it is not be converted to VB.NET code. Instead, the formula is left as an Inventor formula. You can edit the formula manually to change it into a VB.NET formula (with angles in radian units).
To convert from degrees to radians, use the following formula:
radians = degrees *(PI/180)
Function | Purpose | Examples |
---|---|---|
Abs() | Return the absolute value of the argument. |
Abs(10) = 10 Abs(-9.87) = 9.87 |
Sqrt() | Return the square root of the argument. |
Sqrt(25) = 5 Sqrt(100) = 10 Sqrt(3) = 1.732051 |
Sign() | Return a number indicating the sign of the argument. |
If the value is positive, Sign(value) = 1 If the value is negative, Sign(value) = -1 If the value is zero, Sign(value) = 0 |
Round() | Round the argument to a whole number (integer), or to a specified number of decimal places. |
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() | Round the argument to the next higher integer. |
Ceil(2.56) = 3 Ceil(Sqrt(3))= 2 |
Floor() | Round the argument to the next lower integer. |
Floor(1.789) = 1 Floor(PI) = 3 |
Log10() | Return the base 10 logarithm of the argument. |
Log10(10) = 1 Log10(100) = 2 Log10(15) = 1.176091 |
Ln() | Return the natural logarithm of the argument. (base e logarithm). |
Ln(5) = 1.609438 Ln(37) = 3.610918 |
Pow(argument1, argument2) | Return the result of raising argument1 to the exponent of argument2. |
Pow(2, 2) = 2 2 = 4 Pow(2, 3) = 2 3 = 8 Pow(3, 2) = 3 2 = 9 |
Function | Purpose | Examples |
---|---|---|
Min(argument1, argument2) | Return the lesser of the two arguments. |
Min(2, 4) = 2 Min(9, 4) = 4 Min(Sqrt(2), Sqrt(3)) = 1.4142..... |
Max(argument1,argument2) | Return the greater of the two arguments. |
Max(2, 4) = 4 Max(9, 4) = 9 Sqrt(3)) = 1.73205..... |
MinOfMany( ,,, ) | Return the lesser of many arguments. |
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( ,,, ) | Return the largest of many arguments. |
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) | Compares the values of two parameters (represented by a and b) and compares the difference to the tolerance value (specified here as 0.001). If the difference is less than the tolerance, the function returns the Boolean value True. If the difference is greater than the tolerance, the function returns the Boolean value 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) | Use a default tolerance of 0.0000001 |