跳转至

公式及函数

在龙宫STC中,您可在公式字段中中可直接进行输入函数,使用函数计算公式的值。本章节提供目前支持的函数说明。


算术运算符

执行两个变量或值的运算。

运算符 描述 备注
+ 可用于函数之间的运算和字符串之间的运算
-
*
/
% 3%2余1,值就=1

比较运算符

用于逻辑语句的判断,从而确定给定的两个值或变量是否相等。 给定A=2

运算符 描述 比较 结果 备注
== 等于 A==1
A==2
false
ture
=== 恒等于(值和类型均相等) A==='2'
A===2
false
ture
!= 不等于 A!=2
A!=4
false
ture
!== 不恒等于(值和类型均不等) A!==2
A!=='2'
false
ture
> 大于 A>3
A>1
false
ture
< 小于 A<1
A<3
false
ture
>= 大于等于 A>=3
A>=2
false
ture
<= 小于等于 A<=1
A<=2
false
ture

逻辑运算符

用来确定变量或值之间的逻辑关系。给定A=2,B=3

运算符 描述 示例 结果 备注
&& 和(两个条件均为真) (A==2&&B==2)
(A==2&&B==3)
false
true
|| 或(前后两个条件其一为真即可) (A==1||B==2)
(A==2||B==2)
false
true
! 非(两个条件均为假) !(A!=B)
!(A==B)
false
true

数学函数

用于执行数学任务的函数。

函数 描述 输入参数 公式 结果 示例
random 生成随机数 random() 生成[0,1)之间的随机数 公式:random()
值:0.873
round 对参数小数位
进行四舍五后取整
C1=8.37 round(C1) 8 C1=12.56
公式:round(C1)
值:13
ceil 对参数的小数位
进行上舍入后取整
C1=8.37 ceil(C1) 9 C1=9.1
公式:ceil(C1)
值:10
floor 对参数的小数位
进行下舍入后取整
C1=8.37 floor(C1) 8 C1=9.1
公式:ceil(C1)
值:9
trunc 截取参数的
整数部分
C1=3.141... trunc(C1) 3 C1=12.56...
公式:trunc(C1)
值:12
pow 对浮点数求幂 C1=2
C2=3
pow(C1,C2) 8 C1=2;C2=3
公式:pow(C1,C2)
值:8
log 生成参数的
自然对数
(底数为e)
C1=1 log(C1) 0 C1=1
公式:log(C1)
值:0
sqrt 取参数的平方根 C1=4 sqrt(C1) 2 C1=16
公式:sqrt(C1)
值:4
exp 生成以自然数e
为底数的指数
C1=
log(2)
exp(C1) 2 C1=2
公式:exp(C1)
值:7.389
abs 取参数的绝对值 C1=-8 abs(C1) 8 C1=-7
公式:abs(C1)
值:7
min 在参数组中取最小值 C1=1
C2=2
C3=3
...
min(C1,C2,C3,...) 1 C1=1;C2=2;C3=3;
公式:min(C1,C2,C3,)
值:1
max 在参数组中取最大值 C1=99
C2=98
C3=97
...
max(C1,C2,C3,...) 99 C1=99;C2=98;C3=97;
公式:min(C1,C2,C3,)
值:99
sum 对参数求和 C1=2
C2=3
sum(C1,C2) 5 C1=3;C2=4
公式:sum(C1,C2)
值:7
sqsum 对参数的平方求和 C1=2
C2=3
sqsum(C1,C2) 13 C1=3;C2=4
公式:sqsum(C1,C2)
值:25
ave 对参数求平均值 C1=2
C2=3
ave(C1,C2) 2.5 C1=3;C2=4
公式:ave(C1,C2)
值:3.5
sqave 对参数的平方求平均值 C1=2
C2=3
sqave(C1,C2) 6.5 C1=3;C2=4
公式:sqave(C1,C2)
值:12.5
hypot 返回斜边的值 C1=3
C2=4
hypot(C1,C2) 5 C1=5;C2=12
公式:hypot(C1,C2)
值:13

三角函数

用于执行三角函数计算的函数。

函数 描述 输入参数 公式 结果 示例
sin 取参数的正弦值 C1=90 sin(C1) 1 C1=30
公式:sin(C1)
值:0.5
cos 取参数的余弦值 C1=90 cos(C1) 0 C1=60
公式:cos(C1)
值:0.5
tan 取参数的正切值 C1=45 tan(C1) 1 C1=30
公式:tan(C1)
值:0.577
sinh 取参数的双曲正弦值 C1=1 sinh(C1) 1.175 C1=2
公式:sinh(C1)
值:3.627
cosh 取参数的双曲余弦值 C1=1 cosh(C1) 1.543 C1=2
公式:cosh(C1)
值:3.762
tanh 取参数的双曲正切值 C1=0.5 tanh(C1) 0.462 C1=1
公式:tanh(C1)
值:0.762
asin 取参数的反正弦值 C1=0.5 asin(C1) 0.524 C1=0.8
公式:asin(C1)
值:0.927
asinh 取参数的双曲反正弦值 C1=0.5 asinh(C1) 0.481 C1=0.4
公式:asinh(C1)
值:0.39
acos 取参数的反余弦值 C1=0.5 acos(C1) 1.047 C1=0.99
公式:sin(C1)
值:0.142
acosh 取参数的双曲反余弦值 C1=1 acosh(C1) 0 C1=2
公式:acosh(C1)
值:1.317
atan 取参数的反正切值 C1=30 atan(C1) 1.537 C1=60
公式:stan(C1)
值:1.554
atan2 取参数比值的反正切值 C1=30
C2=1
atan2(C1,C2) 1.537 C1=30;C2=0.5
公式:atan2(C1,C2)
值:1.554

请注意

系统会自动帮您区分弧度制和角度值,您可以直接在函数的括号内输入角度或数值。


参考函数

用于引用参考对象的值。

函数 描述 输入参数 公式 结果 示例
par 返回引用对象的通用属性值 rid;通用属性名称 par(rid,"通用属性名称") 对应rid中通用属性名称的值 输入:梁(624)
等级:253
par(624,"class")
值=253
prf 返回引用对象的自身属性值 rid; 自身属性名称 prf(rid,"自身属性名称") 对应rid中自身属性名称的值 输入:梁(624)
腹板厚度:5
prf(624,"s")
值=5
ui 返回组件中
指定名称的
UI控件的值
(在UI编辑器查看名称)
名称:UI值
参数=10
ui('$main.UI值')
注意:"$main"是控件名称的上一级名称,有多个级别时以('xx.xx.xx')的方式输入
10 UI控件的
名称:input1
参数=5
公式:ui('$main.input1')
值:5
fread
(输入字段格式)
从指定文件读取数据 文件名(相对模型);
行首字段;
列数(从0开始)
fread('文件名','行首字段',列数) 对应行列的字符串 输入:
列表位置
列表

fread('text','FH100*20',1)
值=12
fread
(输入行列格式)
从指定文件读取数据 文件名(相对模型);
行数(从0开始);
列数(从0开始)
fread('文件名',行数,列数) 对应行列的字符串 输入:
列表位置
列表

fread('text',4,1)
值=12

提示

  • 在引用属性值时您可以通过两种不同输入方式来引用需要的值。
    简易输入方式:
  • prf(rid,"h")-->获取对应rid零件的高度。
  • prf(rid,"b")-->获取对应rid零件的宽度。
  • prf(rid,"b1")-->获取对应rid零件的宽度1。
  • prf(rid,"b2")-->获取对应rid零件的宽度2。
  • prf(rid,"t1")-->获取对应rid零件的翼缘(板)厚度1。
  • prf(rid,"t2")-->获取对应rid零件的翼缘(板)厚度2。
  • prf(rid,"s")-->获取对应rid零件的腹板厚度。
  • prf(rid,"wh1")-->获取对应rid零件的腹板宽度1。
  • prf(rid,"wh2")-->获取对应rid零件的腹板宽度2。
  • prf(rid,"r1")-->获取对应rid零件的圆半径1。
  • prf(rid,"r2")-->获取对应rid零件的圆半径2。
  • prf(rid,"fs1")-->获取对应rid零件的斜率1。
  • prf(rid,"fs2")-->获取对应rid零件的斜率2。
    标准输入方式:
  • prf(rid,"shapeHeight")-->获取对应rid零件的高度。
  • prf(rid,"shapeWidth")-->获取对应rid零件的宽度。
  • prf(rid,"shapeFlangeWidth1")-->获取对应rid零件的宽度1。
  • prf(rid,"shapeFlangeWidth2")-->获取对应rid零件的宽度2。
  • prf(rid,"shapeFlangeThickness1")-->获取对应rid零件的翼缘(板)厚度1。
  • prf(rid,"shapeFlangeThickness2")-->获取对应rid零件的翼缘(板)厚度2。
  • prf(rid,"shapeWebThickness")-->获取对应rid零件的腹板厚度。
  • prf(rid,"shapeWebHeight1")-->获取对应rid零件的腹板宽度1。
  • prf(rid,"shapeWebHeight2")-->获取对应rid零件的腹板宽度2。
  • prf(rid,"shapeRoundingRadius1")-->获取对应rid零件的半径1。
  • prf(rid,"shapeRoundingRadius2")-->获取对应rid零件的半径2。
  • prf(rid,"shapeFlangeSlopeRatio1")-->获取对应rid零件的斜率1。
  • prf(rid,"shapeFlangeSlopeRatio2")-->获取对应rid零件的斜率2。

调试函数

函数 描述 输入参数 公式 结果
print 将输入参数对象的值打印到组件运行结果界面 rid print(rid) 在组件运行结果界面可看到打印的rid值
dump 将输入参数对象的详细信息打印到组件运行结果界面 rid print(rid) 在组件运行结果界面可看到打印的rid的详细信息

数据类型转换函数

可以转换数据显示和类型的函数,给定C1=100.12345

函数 描述 示例 结果
toFixed 把数字转换为结果的小数点后有指定位数的数字 C1.toFixed(2) 100.12
toPrecision 把数字的值转换为指数计数法,结果的小数点后有指定位数 C1.toPrecision(3) 1.00e+2

倾斜角度函数

用于求零件间的倾斜角度。

函数 描述 输入参数 公式 结果 示例
skew 生成水平倾斜角度 rid0;rid1 skew(rid0,rid1) rid0和rid1之间的水平倾斜角度 柱:rid100
梁:rid200
倾斜45°
skew(100,200)
值=45
slope 生成竖直倾斜角度 rid0;rid1 slope(rid0,rid1) rid0和rid1之间的竖直倾斜角度 柱:rid100
梁:rid200
倾斜45°
slope(100,200)
值=45
cant 生成旋转角度 rid0;rid1 cant(rid0,rid1) rid0和rid1之间的旋转角度 柱:rid100
梁:rid200
旋转45°
cant(100,200)
值=45

字符串运算

用于处理文本(字符串)的运算方法。

运算 描述 输入参数 公式 结果
length 返回字符串的个数 C1=PL10*30 C1.length 7
indexOf 返回某个指定的字符串值在字符串中首次出现的位置
(从0开始)
C1=PL10*30 C1.indexOf('L') 1
charAt 返回在指定位置的字符
(从0开始)
C1=PL10*30 C1.charAt(1) L

提示

  • 双引号“”和单引号‘’代表空字符串。
  • 在进行字符串与字符串拼接、数值与数值拼接、字符串与数值拼接等操作时,在最前方添加空字符串可得到正确拼接结果。例如,当C1=10;C2=20;C3=30时,在公式中输入:'' + C1 + C2 + C3,可得到值为102030。

控制结构语句

用于计算后输出最后的值。

语句 描述 参数 公式 结果 示例
if 判断输出 A,B,C,D if(A==B) C;else D; C或D A=1
if(A==1) 0; else 1;
值=0
for 循环输出 i for(i=A;i<B;i++) i; B-1 for(i=1;i<10;i++) i;
值=9

值的类型

用于区分不同类型的值。值和类型不符会导致值显示错误

类型 描述 备注
文本 该变量的公式结果是文本类型 可以调用字符串运算中的函数
值要用双引号"value"或单引号'value'括起来
数值 该变量的公式结果是数值类型 可以使用算术运算符进行计算
整数 以整数格式显示公式的内容 可对公式进行运算,在值内显示结果,只取整数部分
数值队列 以数字队列格式显示公式内容 可显示数列
公式:10 20 30
值:10 20 30
整数队列 以整数队列格式显示公式内容 可显示数列,只取整数部分