您可以使用函数计算参数化变量的值。变量公式总是以等号 (=) 开头。
更多信息请参阅 使用参数变量设置对象属性。
全部展开全部折叠
算术运算符
使用算术运算符合并那些返回数值的表达式。
运算符 | 描述 | 说明 |
|---|
+ | 加法 | 也用于创建参数字符串。 |
- | 减法 | |
* | 乘法 | 乘法比除法快。 =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")
返回 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 ("Tie") 或 1 ("Main")。
FieldName 必须是以下之一:
0 NominalDiameter 1 ActualDiameter 2 Weight 3 MinRadius 4 Hook1Radius 5 Hook1Angle 6 Hook1Length 7 HookRadius 8 Hook2Angle 9 Hook2Length 10 Hook3Radius 11 Hook3Angl 12 Hook3Length 13 Area
| fRebarCatalogValue("A500HW", "10", 1, 2)
返回钢筋等级为 A500HW 的对象的尺寸、用法和重量。 |
ASCII 文件作为参考函数
您可以参考 ASCII 文件来获取数据。 Tekla Structures 按以下顺序搜索文件:
模型文件夹
..<model folder>\CustomComponentDialogFiles
项目文件夹 (XS_PROJECT)
公司文件夹 (XS_FIRM)
系统文件夹 (XS_SYSTEM)
配置文件数据库文件夹 (XS_PROFDB)
<model folder>\cr (冷轧部件)
使用的参数是:文件名、行的键值、列号、分隔符、允许空列。读取文件的格式如下:
fVF("filename", "key_value_of_row", column_number, "separator(s)", FALSE)
某行的键值:用于选择文件中的行的唯一键值字符串。搜索区分大小写。该字符串不能包含空格、制表符或任何指定的分隔符。
列号:从 1 开始的索引,用于从所选行中选择值。索引 1 对应于键值。
分隔符:可选参数。分隔符由一个或多个用于分隔数据的字符组成。默认分隔符是空格和制表符。
指定的字符序列将被解释为一组字符,每个字符被视为单独的分隔符,而不是一个组。使用“\t”来表示制表符。例如,“ \t”表示空格和制表符将被视为分隔符,“,.;”表示逗号、点和分号将被视为分隔符。
允许空列:可选参数。允许空列的默认值是 FALSE。
如果设置为 TRUE,则解析该函数时将考虑文件行中的空条目。如果缺失或设置为 FALSE,则删除空条目。
示例
=fVF("Overlap.dat", "MET-202Z25", 5) 函数位于变量对话框的公式框中。函数从 Overlap.dat 文件,为截面 MET-202Z25 获取值 16.0。

行的键值 (MET-202Z25)
列编号 (5)
有关更多信息,请参阅 如何从自定义组件中的文本文件读取数据 支持文章。
数学函数
使用数学函数可以创建更复杂的数学表达式。
函数 | 描述 | 示例 |
|---|
fabs(参数) | 返回参数的绝对值 | =fabs(D1) 返回 15
如果 D1 = -15 |
exp(幂) | 返回 e 的幂 e 是欧拉数。 | =exp(D1) 返回 7.39
如果 D1 = 2 |
ln(参数) | 返回参数的自然对数(底数 e) | =ln(P2) 返回 2.71
如果 P2 = 15 |
log(参数) | 返回参数的对数(底数为 10) | =log(D1) 返回 2
如果 D1=100 |
sqrt(参数) | 返回参数的平方根 | =sqrt(D1) 返回 4
如果 D1 = 16 |
mod(被除数,除数) | 返回除法的模数 | =mod(D1, 5) 返回 1
如果 D1 = 16 |
pow(基数,幂) | 返回底数的指定幂 | =pow(D1, D2) 返回 9
如果 D1 = 3 且 D2 = 2 |
hypot(边 1,边 2) | 返回斜边 
(1):边 1 (2):斜边 (3):边 2 | =hypot(D1, D2) 返回 5
如果 D1 = 3 且 D2 = 4 |
n!(参数) | 返回参数的阶乘 | =n!(P2) 返回 24
如果 P2 = 4 (1*2*3*4) |
round(参数,精度) | 返回四舍五入到指定精度的参数 | =round(P1, 0.1) 返回 10.600
如果 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 / P2 = 7.7778
可以使用 ceil 和 floor 统计函数舍入值,然后使用舍入后的值作为梁支柱数:
=ceil(P1/P2) 返回 8
=floor(P1/P2) 返回 7
数据类型转换函数
使用数据类型转换函数可以将值转换为其他数据类型。转换函数在三种支持的数据类型之间执行转换:整数、双精度数和字符串。
函数 | 描述 | 示例 |
|---|
int() | 将数据转换为整数 | 对计算截面尺寸尤为有用: =int(100.0132222000) 如果在 选项 对话框中将小数设置为 0,则返回 100
|
double() | 将数据转换为双精度数 | |
string() | 将数据转换为字符串 | |
imp() | 转换英制单位 在计算中使用此函数而不使用英制单位。不能直接在计算中使用英制单位。 | 对于以下示例,在 选项 对话框中,长度单位设置为 mm,小数位数设置为 2。 =imp(1,1,1,2) 意味着 1 英尺 1 1/2 英寸会返回 342.90 mm
=imp(1,1,2) 意味着 1 1/2 英寸会返回 38.10 mm
=imp(1,2) 意味着 1/2 英寸会返回 12.70 mm
=imp(1) 意味着 1 英寸会返回 25.40 mm
=3’/3" 不可能,但 =imp(36)/imp(3) 是可以的
|
vwu(value, unit) | 转换长度值和角度值。可用单位有: "ft" ("feet", "foot") "in" ("inch", "inches") "m" "cm" "mm" "rad" "deg"
| =vwu(4.0,"in") 如果在 选项 对话框中将长度单位设置为毫米并将小数位数设置为 2,则返回 101.60 毫米
=vwu(2.0,"rad") 如果在 选项 对话框中将角度设置为度,并将小数设置为 2,则返回 114.59 度
请注意,Tekla Structures 会自动用角度乘以 PI/180,将其从度数转换为弧度。 为了确保正确计算角度,请使用 vwu("rad") 将弧度转换为度数。这允许 Tekla Structures 在计算过程中将它们转换回弧度。 |
注:
单位取决于文件菜单 > 设置 > 选项 > 单位和精度中的设置。
字符串运算
使用字符串运算可以操作字符串。在变量公式中,字符串必须位于引号内。
运算 | 描述 | 示例 (P1 = "PL100*10") |
|---|
match(parameter1, parameter2) | 如果参数相等则返回 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(parameter) | 返回参数中的字符数。 | =length(P1) 返回 8
|
find(parameter, string) | 返回指定字符串的次序编号(从零开始),如果从参数中未找到指定字符串,则返回 -1。 | =find(P1, "*") 返回 5
|
getat(parameter, n) | 返回参数中的第 n 个(从零开始)字符。 | =getat(P1, 1) 返回“L”
|
setat(parameter, n, character) | 将参数中的第 n 个(从零开始)字符设置为指定字符。 | =setat(P1, 0, "B") 返回“BL100*10”
|
mid(string, n, x) | 返回从第 n 个(从零开始)字符开始的字符串的 x 个字符。如果不设置最后一个参数 (x),则返回字符串的最后部分。 | =mid(P1,2,3) 返回“100”
|
reverse(string) | 反转给定字符串。 | =reverse(P1) 返回“01*001LP”
|
示例 1
要用两个变量 P2 = 100 和 P3 = 10 定义截面尺寸 PL100*10,应输入以下公式:
="PL"+P2+"*"+P3
示例 2
Tekla Structures 将螺栓间距作为字符串处理。要定义螺栓间距,应将值类型设置为距离列表并输入如下所示的公式:
=P1+" "+P2
如果 P1 = 100(长度)且 P2 = 200(长度),则结果将为 100 200。
三角函数
使用三角函数计算角度。
注:
在变量公式中使用三角函数时,需要包含前缀来定义单位。如果不包含前缀,Tekla Structures 使用弧度作为默认单位。
函数 | 描述 | 示例 |
|---|
sin() | 返回正弦值 | =sin(d45) 返回 0.71
|
余弦() | 返回余弦值 | =cos(d45) 返回 0.71
|
tan() | 返回正切值 | =tan(d45) 返回 1.00
|
asin() | sin() 的反函数,返回以弧度为单位的值 | =asin(1) 返回 1.571 rad
|
acos() | cos() 的反函数,返回以弧度为单位的值 | =acos(1) 返回 0 rad
|
atan() | tan() 的反函数,返回以弧度为单位的值 | =atan(1) 返回 0.785 rad
|
sinh()函数 | 返回双曲正弦值 | =sinh(d45) 返回 0.87
|
cosh() | 返回双曲余弦值 | =cosh(d45) 返回 1.32
|
tanh() | 返回双曲正切值 | =tanh(d45) 返回 0.66
|
atan2() | 返回以两个数字的商为正切的角度。返回弧度值 | =atan2(1,3) 返回 0.32
|
市售尺寸函数
在自定义组件中使用市售尺寸函数,可以从可用市售尺寸中选择合适的板尺寸(通常为板厚度)。例如,板的厚度应与梁的腹板匹配。
函数 | 描述 | 示例 |
|---|
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
如果使用两个梁,则倾斜实际上是梁框架接合到另一个梁中的水平歪斜,梁相对于主零件的垂直倾斜角度实际上是歪斜角度。
梁到梁侧视图 | 梁到梁顶面视图 |
|---|

| 
|
歪斜
斜面