ProE WildFire4.0野火4关系中常用函数详解
在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
sinh()、cosh()、tanh()函数
在数学中,双曲函数类似于常见的(也叫圆函数的)三角函数。基本双曲函数是双曲正弦“sinh”,双曲余弦“cosh”,从它们导出双曲正切“tanh”等。
sinh / 双曲正弦:      sinh(x) = [e^x - e^(-x)] / 2
cosh / 双曲余弦:      cosh(x) = [e^x + e^(-x)] / 2
tanh / 双曲正切:      tanh(x) = sinh(x) / cosh(x)=[e^x - e^(-x)] / [e^x + e^(-x)]
函数使用实数作为输入值       
log()函数
求得10为底的对数值,如:
A=log(1) ? A=0;
A=log(10) ? A=1;
A=log(5) ? A=;
ln()函数
求得以自然数e为底的对数值,e是自然数,值是;如:
A=ln(1) ? A=0;
A=ln(5) ? A=;
exp()函数
求得以自然数e为底的开方数,如:
A=exp(2) ? A=e^2=;
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=
pow()函数
指数函数,如
A=pow(10,2) ? A=100
B=pow(100,0.5) ? B=10
ceil()和floor()
均可有一个附加参数,用它可指定舍去的小数位.
ceil(parameter_name or number, number_of_dec_places).
floor(parameter_name or number, number_of_dec_places).
|                        |
参数名或数值.          要保留的小数位(可省略)
number_of_ded_places:它的取值的不同可有不同的结果.
i)可以为数值亦可为参数,若为实数则取整.
ii)若number_of_dec_place>8,则不作任何处理,用原值
若number_of_dec_place≦8,则舍去其后的小数位,则进位
例如: 
Ceil(10.2)-->11          比10.2大的最小整数为11.
floor(-10.2)-->-11      比-10.2小的最大整数为-11.
floor(10.2)-->1
0          比10.2小的最大整数为10.
Ceil(10.255,2)-->10.26.          比10.255大的最小符合数.
Ceil(10.255,0)-->11
floor(10.255,1)-->10.2
Len1=ceil(20.5)        ==>Len1=21
Len2=floor(-11.3)      ==>Len2=-12
Len=Len1+Len2          ==>Len=9
字符串函数:
string_length(  )
用法:String_length(Parameter name or string).
参数名或字符串
例: 
strlen1=string_length("material")  则 strlen1=8
若material="steel",strlen2=string_length(material),则strlen2=5,字符串要用"  "括起,
空格亦算一个字符.
rel_model_name(  )
用法:rel_model_name(  )  注意括号内为空的,返回目前模型名称.
例:
当前模型为-part1,则
partName=rel_model_name(  )==>partName="part1"
如在装配图中,则需加上进程号(session Id),例如
partName=rel_model_name:2(  )
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"
search(  )  查字符串,返回位置值
用法:search(string,substring).
string:原字符串
substring:要的字符串.
查到则返回位置,否则返回0,第一个字符位置值为1,依此类推.
例 :
Parstr=abcdef.则
Where=search(parstr,"bcd"")==>Where=2.
Where=search(parstr,"bed")==>where=0(没查到).
extract(  )  提取字符串
用法:extract(string,position,length)
|      |        |
原字符串  提取位  提取字符数
position:大于0而小于字符串长度.
length:  position+length-1 不能大于字符串长度.
例:
new=extraecl("abcded",2,3)==>new="bcd".
其含义是: 从"abcdef"串的第2个字符(b)开始取出3个字符.
________________________________________
下例演示在PROE关系由标准文件名(bxxx-2xxx-xxx)分离出项目号,零件号及零件名:
FileName=rel_modle_name()        /* 获得文件名=>FileName
StrLen=string_length(FileName)    /* 计算文件名长度=>StrLen
Project_No=extract(FileName,1,4) /* 提取第1~4个字符=>Project_No
Part_No=extract(FileName,6,4)    /* 提取第6~9个字符=>Part_No
Part_Name=extract(FileName,11,StrLen-10) /*提取第10以后的字符=>Part_Name
exists(  )  测试项目存在与否
用法:exists(Item)  Item可以是参数或尺寸.
例:
If exists(d5)    检查零件内是否有d5尺寸.查符合两个条件之一的字符串函数
If exists("material")  检查零件内是否有material参数.
o evalgraph()计算函数
用法:evalgraph(graph_n
ame,x_value),其中graph_name是指控制图表(graph)的名字,要用双引号括起,x_value是graph中的横坐标值。函数返回graph中x对应的y值。如
sd5=evalgraph(“sec”,3)
evalgraph只是proe提供的一个用于计算图表graph中的横坐标对应纵坐标的值的一个函数,你可以用在任何场合。如图,假设我们有一条名字为“graph“的图表graph,我们要计算它在横坐标x处对应的值,那么就可以用evalgraph(“graph”,x)来获得,函数返回的就是这条graph在x处的纵坐标值。
o trajparf_of_pnt(  )返回指定点在曲线中的位置比例。
用法:trajpar_of_pnt(curve_name,point_name)其中curve_name是曲线的名称而point_name则为点的名字。两个参数都需要用“”来括起。函数返回的是点在曲线上的比例值,可能等于trajpar也可能是1-trajpar。视乎曲线的起点如何。
ratio=trajpar_of_pnt(“wire”,”pnt1”)
ratio的值等于点pnt1在曲线wire上的比例值。
lookup_inst()
从族表中搜索符合条件的实例并返回实例名
格式:lookup_inst ("普通模型名",匹配方式, “参数1”, 匹配值1, “参数2”, 匹配值2,...)
通过使用 lookup_inst 函数,可以根据设计标准自动替换族表驱动的元件。使用此函数,可以搜索元件族表以查符合搜索参数值的实例。如果 lookup 函数不到匹配的实例,则返回普通模型的名称。
“普通模型名”――带有.prt或.asm后缀的普通模型名称
“匹配模式”可以选择下面的三种方式之一
?        -1,查实例对应的参数值小于或等于所给定的匹配值的最接近族表实例
?        0,查实例对应参数值精确等于所给定的匹配值的族表实例
?        1,查实例对应的参数值大于或等于所给定的匹配值的最接近族表实例
我们来看一个简单的例子,比如对下面这么一个螺钉的族表
如果我们使用这么一条关系式来获取想要的模型:
snow=lookup_inst("screw_plus.prt",-1,"DIA",2.2,"LENGTH",7)
那么因为当前的匹配模式是-1,查比匹配值小的最接近实例,很显然SCREW_PLUS_M2X6这个实例是我们想到的实例,因此snow的值就是”SCREW_PLUS_M2X6”.而如果匹配方式改为0,因为没有对
应的精确模型,关系将返回普通模型的名称,也就是snow的当前值是”SCREW_PLUS”;把匹配模式改为1,那么snow的当前值将会变为“SCREW_PLUS_3X8”,因为DIA=3和LENGTH=8的实例是最接近DIA=2.2和LENGTH=7的搜索匹配值的实例了。
应用这个函数,我们可以方便地根据给定的条件选用适合的族表实例,这在一些参数化的装配场合尤其有用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。