ProE 关系中使用的系统函数
by 无维网IceFai(黄光辉)
在proe 关系中,实际上系统也提供了丰富的系统函数以供用户调用,本文中将这些常用的函数做了整理,方便用户进行查阅。同时也对每个函数的使用方法和注意事项做了详细的解析。黄觉老婆
PROE 系统提供的函数如下:
cos() 求余弦值 log() 求对数值 sqrt() 开平方 sin() 求正弦值 ln() 自然对数值 pow() 指数 tan() 求正切值 exp() 自然数开方  acos() 求反余弦 abs() 求绝对值
asin() 求反正弦 ceil() 求不小于数  atan() 求反正切 floor()求不大于数  sinh() 双曲正弦 max() 求最大数  cosh() 双曲余弦 min() 求最小数  tanh() 双曲正切  mod() 求余
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)] / 2tanh / 双曲正切:      tanh(x) = sinh(x) / cosh(x)=[e^x - e^(-x)] / [e^x + e^(-x)]
I c e F a i 原创P r o E 教程 无维
W W W .5D C A D .C N
函数使用实数作为输入值
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 均可有一个附加参数,用它可指定舍去的小数位.
alanis morissetteI c e F a i 原创P r o E 教程 无维
W W W .5D C A D .C N
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)-->10          比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
z  bound()函数
用法:bound(x,first,last)
返回的是大于等于first 而小于等于last 并且等于或最接近x 的值。例: a=bound(3,1,8) 则 a=3  因为3在1和8之间,所以a=3 a=bound(8,1,4) 则 a=4  因为8>4,所以a=4为最接近结果 a=bound(1,5,12) 则a=5  因为1<5,所以a=5为最接近结果
注意,这个函数要求first 一定要小于等于last,否则会计算出错返回0值。
o string_length(  )
用法:String_length(Parameter name or string).                            参数名或字符串  例:
strlen1=string_length("material")  则 strlen1=8
若material="steel",strlen2=string_length(material),则strlen2=5,字符串要用"  "括起,        空格亦算一个字符.
o rel_model_name(  )
用法:rel_model_name(  )  注意括号内为空的,返回目前模型名称.  例:
I c e F a i 原创P r o E 教程 无维
W W W .5D C A D .C N
当前模型为-part1,则
partName=rel_model_name(  )==>partName="part1"    如在装配图中,则需加上进程号(session Id),例如    partName=rel_model_name:2(  )
o rel_model_type(  )  返回目前模型类型  用法: rel_model_type(  )  例:
如当前模型为装配图
我叫陈冠希
parttype=rel_model_type(  ) ==>parttype="ASSEMBLY".        若为一零件图则  ==>parttype="PART".
o exists(  )  测试项目存在与否
用法:exists(Item)  Item 可以是参数或尺寸.  例:
If exists(d5)    检查零件内是否有d5尺寸.
If exists("material")  检查零件内是否有material 参数.
o itos(  )  将整数换成字符串
用法: Itos(integer) 整数,若为实数则舍去小数点.  例:
S1=Itos(123)==>s1="123"      S2=itos(123.57)==>s2="123"
intl=123.5  s3=itos(intl)==>s3="123"
o search(  )  查字符串,返回位置值  用法:search(string,substring).        string:原字符串
substring:要的字符串.
李佳宁王俊凯婚纱照
查到则返回位置,否则返回0,第一个字符位置值为1,依此类推.    例 :
Parstr=abcdef.则
Where=search(parstr,"bcd"")==>Where=2.
Where=search(parstr,"bed")==>where=0(没查到).
周韦彤露卫生巾o extract(  )  提取字符串
用法:extract(string,position,length)                  |      |        |
原字符串  提取位  提取字符数        position:大于0而小于字符串长度.
length:  position+length-1 不能大于字符串长度.    例:
new=extract("abcded",2,3)==>new="bcd".
I c e F a i 原创P r o E 教程 无维
W W W .5D C A D .C N
其含义是: 从"abcdef"串的第2个字符(b)开始取出3个字符. 而如果site=extract(“www.5dcad”,4,5)则=>site=“5dcad”
下例演示在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
o evalgraph()计算函数
用法:evalgraph(graph_name,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 上的比例值。
o lookup_inst()从族表中搜索符合条件的实例并返回实例名 格式:lookup_inst ("普通模型名",匹配方式, “参数1”, 匹配值1, “参数2”, 匹配值2,...)
通过使用 lookup_inst  函数,可以根据设计标准自动替换族表驱动的元件。使用此函数,
I c e F a i 原创P r o E 教程 无维
W W W .5D C A D .C N