1、在ProE中,我们的关系可以直接很多系统已经预定义好的函数,通过这些函数我们可以来进行一些特定的运算得到所期望的值,下面我们就对一些常用函数进行一个概括和总结,方便大家在使用的时候查阅。 1.数学函数 在proe中,我们可以使用丰富的数学函数,常用的函数列表如下: sin()、cos()、tan()函数 这三个都是数学上的三角函数,分别使用角度的度数值来求得角度对应的正弦、余弦和正切值,比如: A=sin(30) A=0.5è B=0.866èB=cos(30) èC=tan(30) C=0.577 asin()、acos()、atan()函
2、数 这三个是上面三个三角函数的反函数,通过给定的实数值求得对应的角度值,如: A=asin(0.5) A=30è B=60èB=acos(0.5) C=26.6èC=atan(0.5) sinh()、cosh()、tanh()函数 在数学中,双曲函数类似于常见的(也叫圆函数的)三角函数。基本双曲函数是双曲正弦“sinh”,双曲余弦“cosh”,从它们导出双曲正切“tanh”等。 sinh / 双曲正弦: sinh(x) = [e^x - e^(-x)] / 2 cosh / 双曲余弦: cosh(x) = [e^x + e^(-x)]
3、/ 2 tanh / 双曲正切: tanh(x) = sinh(x) / cosh(x)=[e^x - e^(-x)] / [e^x + e^(-x)] 函数使用实数作为输入值 log()函数 求得10为底的对数值,如: A=log(1) A=0;è A=1;èA=log(10) èA=log(5) A=0.6989...; ln()函数 求得以自然数e为底的对数值,e是自然数,值是2.718...;如: A=ln(1) A=0;è èA=ln(5) A=1.609...; exp()函数 求得以自然数
4、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(10
5、0) A=10; èB=sqrt(2) B=1.414... pow()函数 指数函数,如 èA=pow(10,2) A=100 B=10èB=pow(100,0.5) ceil()和floor() 均可有一个附加参数,用它可指定舍去的小数位. ceil(parameter_name or number, number_of_dec_places). floor(parameter_name or number, number_of_dec_places). |
6、 | 参数名或数值. 要保留的小数位(可省略) 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.
7、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)
8、 ==>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),则s
9、trlen2=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_mo
10、del_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( ) 查找字符串,返回位置值
11、 用法: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,
12、length) | | | 原字符串 提取位 提取字符数 position:大于0而小于字符串长度. length: position+length-1 不能大于字符串长度. 例: new=extraecl("abcded",2,3)==>new="bcd". 其含义是: 从"abcdef"串的第2个字符(b)开始取出3个字符. ________________________________________ 下
13、例演示在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 Pa
14、rt_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_name,x_value),其中graph_name是指控制图表(graph)的
15、名字,要用双引号括起,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
16、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,...) 通过使用 lo
17、okup_inst 函数,可以根据设计标准自动替换族表驱动的元件。使用此函数,可以搜索元件族表以查找符合搜索参数值的实例。如果 lookup 函数找不到匹配的实例,则返回普通模型的名称。 “普通模型名”——带有.prt或.asm后缀的普通模型名称 “匹配模式”可以选择下面的三种方式之一 Ø -1,查找实例对应的参数值小于或等于所给定的匹配值的最接近族表实例 Ø 0,查找实例对应参数值精确等于所给定的匹配值的族表实例 Ø 1,查找实例对应的参数值大于或等于所给定的匹配值的最接近族表实例 我们来看一个简单的例子,比如对下面这么一个螺钉的族表
18、 如果我们使用这么一条关系式来获取想要的模型: 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的搜索匹配值的实例了。 应用这个函数,我们可以方便地根据给定的条件选用适合的族表实例,这在一些参数化的装配场合尤其有用。






