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 содержит некоторые собственные математические функции. Следующие функции эмулируют функции, доступные в стандартных параметрических формулах 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 |