在ProE关系式中我们可以使用系统函数,ProE对数学函数有强大的支持能力,通过这些函数我们可以来进行一些特定的运算得到所期望的值,这里就对一些比较常用的系统函数进行一个概括总结。

  1、数学函数

  在ProE中,我们可以使用灵活的数学函数,常用的函数列表如下:

  sin()、cos()、tan()函数:

  这三个都是数学上的三角函数,分别使用角度的度数值来求得角度对应的正弦、余弦和正切值,比如:

  A=sin(30),A=0.5

  B=cos(30),B=0.866

  C=tan(30),C=0.577

  asin()、acos()、atan()函数:这三个是上面三个三角函数的反函数,通过给定的实数值求得对应的角度值,如:

  A=asin(0.5),A=30

  B=acos(0.5),B=60

  C=atan(0.5),C=26.6

  log():求得10为底的对数值,如:A=log(1),A=0

  A=log(10),A=1

  A=log(5),A=0.6989

  ln():求得以自然数e为底的对数值,e是自然数,值是2.718...,如:A=ln(1),A=0

  A=ln(5),A=1.609

  exp():求得以自然数e为底的开方数,如:A=exp(2),A=e^2=7.387

  abs():求得给定参数的绝对值,如:A=abs(-1.6),A=1.6

  B=abs(3.5),B=3.5

  max()、min():求得给定的两个参数之中的最大最小值,如:A=max(3.8,2.5),A=3.8

  B=min(3.8,2.5),B=2.5

  mod():求第一个参数除以第二个参数得到的余数,如:

  A=mod(20,6),A=2

  B=mod(20.7,6.1),B=2.4

  sqrt():开平方,如:A=sqrt(100),A=10;

  B=sqrt(2),B=1.414

  pow():指数函数,如A=pow(10,2),A=100

  B=pow(100,0.5),B=10

  ceil():不小于其值的最小整数

  floor():不超过其值的最大整数

  ceil(10.2)值为11

  floor(10.2)=11

  也可以使用指定小数部分位数的ceil和floor函数,如:

  ceil(10.255,2)=10.26

  floor(10.255,1)=10.2

  floor(10.255,2)=10.26

  2、字符串函数:

  string_length():字符串长度求值

  用法:String_length(Parameter name or string),括弧内参数名或字符串,字符串要用" "括起,空格亦算一个字符。例:strlen1=string_length("material"),则strlen1=8

  rel_model_name():提取当前零件的文件名称用法:rel_model_name()注意括号内为空的,返回目前模型名称。

  rel_model_type():提取当前零件的文件类型用法:rel_model_type()

  如:当前模型为装配图

  parttype=rel_model_type(),parttype="ASSEMBLY"。

  itos():将整数换成字符串用法:Itos(integer)整数,若为实数则舍去小数点。如:

  S1=Itos(123),S1="123"

  S2=itos(123.57),S2="123"

  intl=123.5,S3=itos(intl),S3="123"

  extract():提取字符用法:extract(string,position,length)

  evalGraph():图形X值对应的Y值提取函数用法:evalGraph(Graph_name,x_value),其中Graph_name是指控制图形(Graph)的名字,要用双引号括起,x_value是Graph中的定义域,函数返回Graph中x对应的y值。如:

  sd5=evalGraph(“sec”,3)

  下面都是使用参数来设计的具体例子:

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(1)

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(2)

  下图是点按照线长阵列,默认情况下,点的数量需要我们自己确定,下面的图通过函数floor函数和分析参数实现点的数量随着曲线的变化自动匹配,修改线的形状和长度后,点的个数会自动匹配:

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(3)

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(4)

  下面是通过extract字符提取函数实现文字的阵列:

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(5)

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(6)

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(7)

  下面举个例子说明Mod函数的使用:

  利用可变截面扫描的函数和关系式,可以通过实现常见的周期性变化,比如正弦变化、余弦变化,但对于一般性的形状是无法实现的。

  如何在Pro/E可变扫描中循环利用已有的图形(Graph)以实现更一般化的周期性形状变化?

  要实现循环利用图形,那么在可变扫描过程中,必须有方法在某个值后归零然后重新计算图形对应的值,mod()函数是非常恰当的实现方式,比如,我们的图形X定义域为0~10,要在可变扫描过程中循环利用5次,我们很容易推导出如下的关系式(为了方便,我做了一个标准的类似公式一样的通式):

  sd#=EvalGraph("Graph",mod(N*X_value*trajpar,X_value))*K

  上面的关系式说明:

  N:表示循环周期的次数

  X_value:表示图形的X定义域

  K:缩放倍数

  也可以用以下的关系式控制,道理类似:

  sd#=EvalGraph("Graph",N*trajpar-floor(N*trajpar))*K----用此关系式来控制时,图形的定义域为0~1。

  上面的关系式说明:

  N:表示循环周期的次数

  K:缩放倍数

  第一种方式要直观、也容易理解:

  在整个可变扫描过程中,trajpar是从0到1变化,所以N*X_value*trajpar的变化就是0到N*X_value,mod(N*X_value*trajpar,X_value)就是这0到N*X_value的变化要对X_value进行求余,换句话说,当变化到X_value的倍数的时候我们的mod()函数值就会归0,从而实现图形的循环利用,floor()函数的原理也是类似的。

  注意点,循环利用的图形必须要符合以下两点:

  1、图形Graph的起点和终点Y值必须相等;

  2、图形 Graph必须是单一段(多段相切线条组合成的形状,可采用转换成样条的方式来转化成单根线条);

  如下图示意:

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(8)

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(9)

需要视频教程以及学习礼包的同学注意啦!请私信或者评论回复“领取资料”即可获取以上教程!

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(10)

creoproe自学教程(ProeCreo设计进阶关系式函数的使用)(11)

,