Функции в формулах переменных

Tekla Structures
2021
Tekla Structures

Арифметические операторы

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

Оператор

Описание

Примечания

+

сложение

Также используется для создания строк параметров.

-

вычитание

*

умножение

Умножение осуществляется быстрее, чем деление.

=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 должен иметь одно из следующих значений:

  • 0 (номинальный диаметр)
  • 1 (фактический диаметр)
  • 2 (масса)
  • 3 (минимальный радиус)
  • 4 (радиус крюка 1)
  • 5 (угол крюка 1)
  • 6 (длина крюка 1)
  • 7 (радиус крюка 2)
  • 8 (угол крюка 2)
  • 9 (длина крюка 2)
  • 10 (радиус крюка 3)
  • 11 (угол крюка 3)
  • 12 (длина крюка 3)
  • 13 (площадь)

fRebarCatalogValue("A500HW", "10", 1, 2)

возвращает размер, назначение и массу объекта с маркой арматурного стержня A500HW.

ASCII-файл в качестве ссылочной функции

Для получения данных можно ссылаться на файлы ASCII. Tekla Structures ищет эти файлы в следующем порядке:

  1. папка модели

  2. ..\TeklaStructuresModels\<model>\CustomComponentDialogFiles\

  3. Папка проекта (задается расширенным параметром XS_PROJECT)

  4. Папка компании (задается расширенным параметром XS_FIRM)

  5. Системная папка (задается расширенным параметром XS_SYSTEM)

Для чтения файлов используется следующий формат:

fVF("filename", "key_value_of_row", column_number)

  • Значение ключа строки представляет собой уникальное текстовое значение.

  • Номер столбца — это порядковый номер, отсчитываемый от 1.

Можно задать символ, используемый для разделения данных: fVF(data file, lookup value, column#[, separator character]).

  • Разделитель столбцов может быть произвольным. Это обеспечивает поддержку пробелов в именах, профилях, формах и т. д., а также использование списков расстояний в качестве входных данных.

  • В качестве входных данных можно использовать пустые строки.

  • В качестве разделителя может использоваться только один символ. Более сложные разделители, например "/+/", использовать нельзя, потому что в качестве разделителя столбцов будет рассматриваться только первый символ.

Пример

В поле Формула диалогового окна Переменные введена функция =fVF("Overlap.dat", "MET-202Z25", 5). Эта функция получает значение 16.0 для профиля MET-202Z25 из файла Overlap.dat.

  1. Значение ключа строки (MET-202Z25)

  2. Номер столбца (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)

Возвращает гипотенузу.

  1. сторона1

  2. гипотенуза

  3. сторона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(значение, единица)

Преобразует значения длин и углов. Доступные единицы:

  • "ft" ("feet", "foot")

  • "in" ("inch", "inches")

  • "m"

  • "cm"

  • "mm"

  • "rad"

  • "deg"

=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»

replace(исходная строка, старая подстрока, новая подстрока)

Заменяет все указанные подстроки другой строкой.

=replace(P1," ","") удаляет все знаки пробела из строки

Пример 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

Наклон и скос относительно балки, примыкающей к колонне.

Вид сбоку

Вид сверху

  1. колонна
  2. балка
  3. Наклон
  4. Скос

Пример 2

При работе с двумя балками наклон — это фактически горизонтальный скос балки, примыкающей к другой балке, а вертикальный наклон балки относительно главной детали — это фактически угол скоса.

Вид сбоку

Вид сверху

  1. Скос
  2. Наклон
Was this helpful?
Previous
Next