- Главная
- Tekla Structures
- Create models
- Custom components
- Add variables to a custom component
- Функции в формулах переменных
Функции в формулах переменных
Функции в формулах переменных
Используйте функции, чтобы вычислить значения для параметрических переменных. Формулы переменных всегда начинаются со знака равенства (=).
Дополнительные сведения см. в разделе Задание свойств объектов с помощью параметрических переменных.
Арифметические операторы
Арифметические операторы используются для объединения выражений, возвращающих числовые значения. Можно использовать следующие арифметические операторы.
Оператор |
Описание |
Примечания |
---|---|---|
+ |
сложение |
Также используется для создания строк параметров. |
- |
вычитание |
|
* |
умножение |
Умножение осуществляется быстрее, чем деление. =D1*0.5 вычисляется быстрее, чем =D1/2 |
/ |
деление |
Логические операторы и операторы сравнения
Логические операторы и операторы сравнения используются внутри выражений if. Можно использовать выражения if-then-else , чтобы проверить условие и задать значение в зависимости от результата.
Например:
=if (D1>200) then 20 else 10 endif
В выражениях с оператором if (если) можно использовать следующие операторы.
Оператор |
Описание |
Пример |
---|---|---|
== |
обе стороны равны |
|
!= |
стороны не равны |
|
< |
левая сторона меньше |
|
<= |
левая сторона меньше или равна правой стороне |
|
> |
правая сторона меньше |
|
>= |
правая сторона меньше или равна левой стороне |
|
&& |
логическое И оба условия должны быть истинны |
=if (D1==200 && D2<40) then 6 else 0 endif Если D1 равна 200, а D2 меньше 40, результат равен 6; в противном случае результат равен 0. |
|| |
логическое ИЛИ только одно условие должно быть истинно |
=if (D1==200 || D2<40) then 6 else 0 endif Если D1 равна 200 или D2 меньше 40, результат равен 6; в противном случае результат равен 0. |
Ссылочные функции
С помощью опорных функций можно ссылаться на свойство другого объекта, например на толщину пластины второстепенной детали. Tekla Structures ссылается на объект на системном уровне, поэтому, если свойство объекта изменится, изменится и значение ссылочной функции.
Доступны следующие ссылочные функции.
Функция |
Описание |
Пример |
---|---|---|
fTpl("template attribute", "object GUID") |
Возвращает значение атрибута шаблона для объекта с заданным идентификатором GUID. |
=fTpl("WEIGHT","ID50B8559A-0000-010B-3133-353432373038") Возвращает значение веса объекта с идентификатором GUID ID50B8559A-0000-010B-3133-353432373038. |
fP("user-defined attribute", "object GUID") |
Возвращает значение определенного пользователем атрибута для объекта с заданным идентификатором GUID. |
=fP("comment", "ID50B8559A-0000-010B-3133-353432373038") возвращает определенный пользователем атрибут comment объекта с идентификатором GUID ID50B8559A-0000-010B-3133-353432373038. |
fValueOf("parameter") |
Возвращает значение параметра. |
Если уравнение имеет вид =P2+"*"+P3 , результат равен P2*P3. В уравнении =fValueOf("P2")+"*"+fValueOf("P3") , где P2=780 и P3=480, результат равен 780*480. |
fRebarCatalogValue(BarGrade, BarSize, Usage, FieldName) |
Возвращает значение арматурных стержней объекта из каталога. Значение для Usage может быть 2 ("Стяжка") или 1 ("Главн."). Для FieldName указывается одно из следующих значений.
|
fRebarCatalogValue("A500HW", "10", 1, 2) Возвращает размер, сферу применения и вес объекта с маркой арматурного стержня A500HW. |
ASCII-файл в качестве ссылочной функции
Можно ссылаться на ASCII-файлы для получения данных. Tekla Structures ищет файлы в следующем порядке:
модель
..\TeklaStructuresModels\<model>\CustomComponentDialogFiles\
проект (задается расширенным параметром XS_PROJECT )
компания (задается расширенным параметром XS_FIRM )
система (задается расширенным параметром XS_SYSTEM )
Для чтения файлов используется следующий формат:
fVF("filename", "key_value_of_row", column_number)
Значение ключа строки представляет собой уникальное текстовое значение.
Номер столбца — это порядковый номер, отсчитываемый от 1.
В файле ASCII вводите пробел в конце каждой строки. В противном случае информация не будет считываться правильно.
Пример
Функция =fVF("Overlap.dat", "MET-202Z25", 5) указана в окне Формула диалогового окна Переменные. Функция получает значение 16.0 для профиля MET-202Z25 из файла Overlap.dat.
Значение ключа строки (MET-202Z25)
Номер столбца (5)
Математические функции
Создавайте более сложные математические выражения с помощью математических функций. Доступны следующие функции.
Функция |
Описание |
Пример |
---|---|---|
fabs(параметр) |
Возвращает абсолютное значение параметра. |
Функция =fabs(D1) возвращает значение 15. if D1 = -15 |
exp(степень) |
Возвращает e в указанной степени. e — эйлерово число. |
Функция =exp(D1) возвращает значение 7,39. if D1 = 2 |
ln(параметр) |
Возвращает натуральный логарифм параметра (по основанию e ). |
Функция =ln(P2) возвращает значение 2,71. if P2 = 15 |
log(параметр) |
Возвращает логарифм значения параметра (по основанию 10). |
Функция =log(D1) возвращает значение 2. if D1=100 |
sqrt(параметр) |
Возвращает квадратный корень значения параметра. |
Функция =sqrt(D1) возвращает значение 4. if D1 = 16 |
mod(делимое, делитель) |
Возвращает остаток деления. |
Функция =mod(D1, 5) возвращает значение 1. if D1 = 16 |
pow(основание, степень) |
Возвращает основание, возведенное в указанную степень. |
Функция =pow(D1, D2) возвращает значение 9. if D1 = 3 and D2 = 2 |
hypot(сторона1, сторона2) |
Возвращает гипотенузу.
|
Функция =hypot(D1, D2) возвращает значение 5. if D1 = 3 and D2 = 4 |
n!(параметр) |
Возвращает факториал значения параметра. |
Функция =n!(P2) возвращает значение 24. if P2 = 4 (1*2*3*4) |
round(параметр, точность) |
Возвращает значение параметра, округленное до заданной точности. |
Функция =round(P1, 0.1) возвращает значение 10,600. if P1 = 10.567 |
PI |
Возвращает значение пи с точностью до 31 десятичного знака |
Функция =PI возвращает значение 3,1415926535897932384626433832795. |
Статистические функции
Статистические функции позволяют суммировать числа, вычислять среднее и округлять значения. Можно использовать следующие статистические функции.
Функция |
Описание |
Пример (P1 = 1.4 P2 = 2.3) |
---|---|---|
ceil() |
Возвращает наименьшее целое число, которое больше или равно значению параметра. |
Функция =ceil(P1) возвращает значение 2. |
floor() |
Возвращает наибольшее целое число, которое меньше или равно значению параметра. |
Функция =floor(P1) возвращает значение 1. |
min() |
Возвращает наименьший параметр. |
Функция =min(P1, P2) возвращает значение 1,4. |
max() |
Возвращает наибольший параметр. |
Функция =max(P1, P2) возвращает значение 2,3. |
sum() |
Возвращает сумму значений параметров. |
Функция =sum(P1, P2) возвращает значение 3,7. |
sqsum() |
Возвращает сумму квадратов значений параметров: (параметр1)2 + (параметр2)2. |
Функция =sqsum(P1, P2) возвращает значение 7,25. |
ave() |
Возвращает среднее значений параметров. |
Функция =ave(P1, P2) возвращает значение 1,85. |
sqave() |
Возвращает среднее квадратов значений параметров. |
Функция =sqave(P1, P2) возвращает значение 3,625. |
Пример: статистические функции ceil и floor
В этом примере доступны следующие параметрические переменные.
Длина балки: P1 = 3500
Расстояние между стойками: P2 = 450
P1 / P2 = 7.7778
С помощью статистических функций ceil и floor можно округлить значение, а затем использовать его в качестве количества стоек.
Функция =ceil(P1/P2) возвращает значение 8.
Функция =floor(P1/P2) возвращает значение 7.
Функции преобразования типов данных
С помощью функций преобразования типов данных конвертируйте значения соответствующим образом. Доступны следующие функции преобразования типов данных.
Функция |
Описание |
Пример |
---|---|---|
int() |
Преобразует данные в целое число. |
Этой функцией особенно удобно пользоваться для вычисления размеров профилей: Функция =int(100.0132222000) возвращает значение 100, если для десятичных разрядов в диалоговом окне Параметры выбрано значение 0. |
double() |
Преобразует данные в число с двойной точностью. |
|
string() |
Преобразует данные в строку. |
|
imp() |
Преобразует британские единицы. Эта функция используется в вычислениях вместо британских единиц. Непосредственно использовать британские единицы в вычислениях нельзя. |
В следующих примерах в диалоговом окне Параметры в качестве единицы длины выбраны миллиметры, а количество десятичных разрядов задано равным 2. Функция =imp(1,1,1,2) преобразует значение 1 фут 1 1/2 дюйма в значение 342,90 мм. Функция =imp(1,1,2) преобразует значение 1 1/2 дюйма в значение 38,10 мм. Функция =imp(1,2) преобразует значение 1/2 дюйма в значение 12,70 мм. Функция =imp(1) преобразует значение 1 дюйм в значение 25,40 мм. =3’/3" неверно. =imp(36)/imp(3) верно. |
vwu (значение, единица) |
Преобразует значения длин и углов. Доступные единицы:
|
Функция =vwu(4.0,"in") возвращает значение 101,60 мм, если в диалоговом окне Параметры в качестве единицы длины выбраны миллиметры, а для десятичных разрядов задано значение 2. Функция =vwu(2.0,"rad") возвращает значение 114,59 градусов, если в диалоговом окне Параметры в качестве единицы угла выбраны градусы, а для десятичных разрядов задано значение 2. |
Единицы измерения зависят от настроек, выбранных в меню Файл > Настройки > Параметры > Единицы и десятичные разряды .
Операции над строками
Строковые операции можно использовать для манипулирования символьными строками. В формулах переменных строки должны быть заключены в кавычки.
Доступны следующие операции над строками.
Операция |
Описание |
Пример (P1 = "PL100*10") |
---|---|---|
match(параметр1, параметр2) |
Возвращает значение 1, если значения параметров равны; в противном случае возвращает значение 0. В функции match можно также использовать подстановочные символы * , ? и [ ]. |
Функция =match(P1, "PL100*10") возвращает значение 1. Принимает все профили с именем, начинающимся с PFC: =match(P4, "PFC*") Принимает профили с именем, начинающимся с PFC, и значением высоты, начинающимся с 2, 3, 4 или 5: =match(P4, "PFC[2345]*") Принимает профили с именем, начинающимся с PFC, значением высоты 200, 300, 400 или 500 и значением ширины, начинающимся с 7: =match(P4, "PFC[2345]00?7*") |
length(параметр) |
Возвращает число символов в значении параметра. |
Функция =length(P1) возвращает значение 8. |
find(параметр, строка) |
Возвращает порядковый номер (начиная с нуля) указанного символа и значение –1, если указанный символ не найден в значении параметра. |
Функция =find(P1, "*") возвращает значение 5. |
getat(параметр, n) |
Возвращает n-й (отсчитываемый от нуля) символ значения параметра. |
Функция =getat(P1, 1) возвращает значение "L". |
setat(параметр, n, символ) |
Заменяет n-й (отсчитываемый от нуля) символ параметра указанным символом. |
Функция =setat(P1, 0, "B") возвращает значение "BL100*10". |
mid(строка, n, x) |
Возвращает x символов из строки начиная с n-го (отсчитываемого от нуля) символа. Если последний аргумент (x) отсутствует, возвращает последнюю часть строки. |
Функция =mid(P1,2,3) возвращает значение "100". |
reverse(строка) |
Обращает данную строку. |
Функция =reverse(P1) возвращает значение "01*001LP". |
Пример 1
Чтобы определить размер профиля PL100*10 с двумя переменными P2=100 и P3=10 введите следующую формулу:
="PL"+P2+"*"+P3
Пример 2
Tekla Structures обрабатывает интервалы между болтами как строки. Чтобы задать расстояние между болтами, выберите в столбце Тип значения вариант Список расстояния и введите следующую формулу:
=P1+" "+P2
Результатом является 100 200, если P1=100 ( длина ) и P2=200 ( длина ).
Тригонометрические функции
Вычисляйте углы с помощью тригонометрических функций. В формулах можно использовать следующие тригонометрические функции.
Функция |
Описание |
Пример |
---|---|---|
sin() |
Возвращает значение синуса. |
Функция =sin(d45) возвращает значение 0,71. |
cos() |
Возвращает значение косинуса. |
Функция =cos(d45) возвращает значение 0,71. |
tan() |
Возвращает значение тангенса. |
Функция =tan(d45) возвращает значение 1,00. |
asin() |
Функция, обратная к sin(); возвращает значение в радианах. |
=asin(1) возвращает 1.571 рад |
acos() |
Функция, обратная к cos(); возвращает значение в радианах. |
=acos(1) возвращает 0 рад |
atan() |
Функция, обратная к tan(); возвращает значение в радианах. |
=atan(1) возвращает 0.785 рад |
sinh() |
Возвращает значение гиперболического синуса. |
Функция =sinh(d45) возвращает значение 0,87. |
cosh() |
Возвращает значение гиперболического косинуса. |
Функция =cosh(d45) возвращает значение 1,32. |
tanh() |
Возвращает значение гиперболического тангенса. |
Функция =tanh(d45) возвращает значение 0,66. |
atan2() |
Возвращает угол, тангенс которого равен отношению двух чисел. Единицы измерения возвращаемого значения — радианы. |
Функция =atan2(1,3) возвращает значение 0,32. |
При использовании в формулах переменных тригонометрических функций необходимо включать префикс для определения единицы измерения. При отсутствии префикса Tekla Structures использует радианы как единицы измерения по умолчанию.
Префикс d означает градусы. Например, sin(d180).
Префикс r означает радианы (по умолчанию). Например, sin(r3.14) или sin(3.14).
функция промышленного размера
В пользовательских компонентах можно использовать функцию промышленного размера для выбора подходящего размера пластины (обычно толщины пластины) из выпускаемых размеров. Например, толщина пластины должна соответствовать стенке балки.
Функция |
Описание |
Пример |
---|---|---|
fMarketSize(материал, толщина, шаг) |
Возвращает следующий доступный промышленный размер из файла marketsize.dat на основе указанной пользователем толщины. Следует указать следующий путь к файлу в папке: ..\environments\your_environment\profil. Или же его сохранить его в системной папке. В качестве шага указывается число для определения приращения до следующего размера (по умолчанию 0). |
=fMarketSize("S235JR", 10, 0) |
Пример
В этом примере показаны следующие данные в marketsize.dat :
S235JR,6,9,12,16,19,22 SS400,1.6,2.3,3.2,4.5,6,9,12,16,19,22,25,28,32,38 DEFAULT,6,9,12,16,19,22,25,28,32,38
Первый элемент в строке — это сорт материала, после которого идут доступные толщины пластин в миллиметрах. В строке DEFAULT перечислены значения толщины, доступные для всех других сортов материалов.
На основе указанных выше данных функция =fMarketSize("S235JR",10,0) возвратила бы значения 12, а функция =fMarketSize("S235JR",10,1) — 16 (значение на размер выше).
Функции условия обвязки
Функции конструктивных условий возвращают углы наклона, уклона и поворота второстепенной балки относительно главной детали (колонны или балки). Можно использовать следующие функции конструктивных условий:
Функция |
Описание |
Пример |
---|---|---|
fAD("skew", GUID) |
Возвращает угол наклона второстепенной детали с заданным идентификатором GUID. |
Функция =fAD("skew","ID50B8559A-0000-010B-3133-353432373038") возвращает значение 45. ID50B8559A-0000-010B-3133-353432373038 — это идентификатор GUID второстепенной детали, находящейся под углом 45 градусов к главной детали. |
fAD("slope", GUID) |
Возвращает угол уклона второстепенной детали с заданным идентификатором GUID. |
=fAD("slope","ID50B8559A-0000-010B-3133-353432373038") |
fAD("cant", GUID) |
Возвращает угол повернутой второстепенной детали с заданным идентификатором GUID. |
=fAD("cant","ID50B8559A-0000-010B-3133-353432373038") |
Эти функции не возвращают положительных и отрицательных значений уклона и наклона. Поэтому эти функции не позволяют определить уклон вверх или вниз и наклон вправо или влево.
Максимальный возвращаемый угол наклона равен 45 градусам.
Tekla Structures вычисляет углы в двумерном пространстве, поэтому наклон и уклон не пересекаются. Например, угол наклона не учитывается при вычислении угла уклона, то есть значение угла уклона не изменяется в зависимости от поворота второстепенной детали вокруг основной.
Чтобы определить истинный уклон в 3D-модели вместе с наклоном, можно использовать следующую математическую формулу:
TRUE_SLOPE = atan( tan(SLOPE) * cos(SKEW))
Пример 1
Уклон и наклон определяются относительно балки, врубленной в колонну.
Вид сбоку |
Вид сверху |
- Колонна
- Балка
- Уклон
- Наклон
Пример 2
При работе с двумя балками уклон — это фактически горизонтальный наклон балки, врубленной в другую балку, а вертикальный уклон балки относительно главной детали — это наклон.
Вид сбоку |
Вид сверху |
- Наклон
- Уклон