Share

Math Functions Reference (iLogic)

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:

  • Expand the Math node under the System tab in the Snippets area of the iLogic Edit Rule dialog.
  • Right-click in the rule text area, and select Math Functions.

Standard Math functions

The standard VB.NET Math library provides most of the Math functions used in iLogic:

IsNumericPI
MinOfManySqrt
MaxOfManyAbs
RoundSign
Round decimal precisionInt
Round Closest to IncrementFix
Round Up to IncrementLog10
Round Down to IncrementLn
CeilPow
FloorMin
SinMax
CosCDbl
TanEqualWithinTolerance

iLogic Math functions

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 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:

  • The function sign becomes sign0 in the rule.
  • The function log becomes log10 in the rule.

Trigonometric functions

Sin(0) = 0Cos(PI) = -1
Sin(PI) = 0Tan(0) = 0
Sin(PI/2) = 1Tan(PI/4) = 1
Cos(0) = 1PI = 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)

Other Math functions

FunctionPurposeExamples
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

Comparison functions

FunctionPurposeExamples
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 

Was this information helpful?