Математические функции в iLogic

iLogic предлагает набор математических функций, которые можно добавлять в правила. В диалоговом окне редактирования правил iLogic используйте один из следующих способов доступа к математическим функциям:

Стандартные математические функции

В стандартной библиотеке математических функций VB.NET содержится большинство математических функций, используемых в iLogic:

IsNumeric PI
MinOfMany Sqrt
MaxOfMany Abs
Round Sign
Округление с точностью до десятичной дроби Int
Округлить до значения, ближайшего к значению приращения Фиксация
Округлить с повышением до значения приращения 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(значение) = 1

Если значение отрицательное, то Sign(значение) = -1

Если значение равно нулю, то Sign(значение) = 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(аргумент1, аргумент2) Возвращает результат от возведения аргумента 1 в степень, выраженную аргументом 2.

Pow(2, 2) = 2 2 = 4

Pow(2, 3) = 2 3 = 8

Pow(3, 2) = 3 2 = 9

Функции сравнения

Функция Цель Примеры:
Min(аргумент1, аргумент2) Возвращает меньший из двух аргументов.

Min(2, 4) = 2

Min(9, 4) = 4

Min(Sqrt(2), Sqrt(3)) = 1.4142.....

Max(аргумент1,аргумент2) Возвращает больший из двух аргументов.

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). Если разность между аргументами меньше значения допуска, функция возвращает логическое значение "Истина". Если разность между аргументами превышает значение допуска, функция возвращает логическое значение "Ложь".

If a = 10.00 and 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