变量公式中的函数
变量公式中的函数
您可以使用函数计算参数变量的值。变量公式总是以等号 (=) 开头。
有关更多信息,请参见 使用参数变量设置对象属性 。
算术运算符
使用算术运算符合并那些返回数值的表达式。您可以使用以下算术运算符:
运算符 |
描述 |
说明 |
---|---|---|
+ |
加 |
也用于创建参数字符串。 |
- |
减 |
|
* |
乘 |
乘比除快。 =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 必须为以下值之一:
|
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) 函数位于 变量 对话框的 公式 框中。函数从 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) |
返回斜边
|
=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 值 |
=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() |
将数据转换为整数 |
对计算截面尺寸尤为有用: 如果精度在 选项 对话框中设置为 0,则 =int(100.0132222000) 返回 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(值, 单位) |
转换长度值和角度值。可用单位有:
|
如果在 选项 对话框中,长度单位设置为 mm,且精度设置为 2,则 =vwu(4.0,"in") 会返回 101.60 mm 如果在 选项 对话框中,角度设置为度,且精度设置为 2,则 =vwu(2.0,"rad") 会返回 114.59 度 |
单位取决于 文件菜单 > 设置 > 选项 > 单位和精度 中的设置。
字符串运算
使用字符串运算可以操作字符串。在变量公式中,字符串必须位于引号内。
您可以使用以下字符串运算:
运算 |
描述 |
示例 (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) |
返回从第 n 个(从零开始)字符开始的字符串的 x 个字符。如果不设置最后一个参数 (x),则返回字符串的最后部分。 |
=mid(P1,2,3) 返回 "100" |
reverse(字符串) |
反转给定字符串。 |
=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。
三角函数
使用三角函数计算角度。您可以使用以下三角函数:
函数 |
描述 |
示例 |
---|---|---|
sin() |
返回正弦值 |
=sin(d45) 返回 0.71 |
cos() |
返回余弦值 |
=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 |
在变量公式中使用三角函数时,需要包含一个前缀来定义单位。如果不包含前缀, 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
如果使用两个梁,则 倾斜 实际上是梁框架接合到另一个梁中的水平歪斜,梁相对于主零件的垂直倾斜角度实际上是 歪斜 角度。
侧视图 |
顶视图 |
- 歪斜
- 倾斜