在ProE中,我们的关系可以直接很多系统已经预定义好的函数,通过这些函数我们可以来进行一些特定的运算得到所期望的值,下面我们就对一些常用函数进行一个概括和总结,方便大家在使用的时候查阅。
1.数学函数在proe中,我们可以使用丰富的数学函数,常用的函数列表如下:sin()、cos()、tan()函数这三个都是数学上的三角函数,分别使用角度的度数值来求得角度对应的正弦、余弦和正切值,比如:A=sin(30) A=0.5⎝B=0.866⎝B=cos(30)⎝C=tan(30) C=0.577asin()、acos()、atan()函数这三个是上面三个三角函数的反函数,通过给定的实数值求得对应的角度值,如: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)] / 2cosh / 双曲余弦:cosh(x) = [e^x + e^(-x)] / 2tanh / 双曲正切: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()函数求得以自然数e为底的开方数,如:⎝A=exp(2) A=e^2=7.387...;abs()函数求得给定参数的绝对值,如⎝A=abs(-1.6) A=1.6⎝B=abs(3.5) B=3.5max()、min()函数求得给定的两个参数之中的最大最小值,如A=max(3.8,2.5) A=3.8⎝⎝B=min(3.8,2.5) B=2.5mod()函数求第一个参数除以第二个参数得到的余数,如:⎝A=mod(20,6) A=2⎝B=mod(20.7,6.1) B=2.4sqrt()函数开平方,如:⎝A=sqrt(100) A=10;⎝B=sqrt(2) B=1.414...pow()函数指数函数,如⎝A=pow(10,2) A=100B=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).| |参数名或数值. 要保留的小数位(可省略)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)-->11floor(10.255,1)-->10.2Len1=ceil(20.5) ==>Len1=21Len2=floor(-11.3) ==>Len2=-12Len=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() /* 获得文件名=>FileNameStrLen=string_length(FileName) /* 计算文件名长度=>StrLenProject_No=extract(FileName,1,4) /* 提取第1~4个字符=>Project_NoPart_No=extract(FileName,6,4) /* 提取第6~9个字符=>Part_NoPart_Name=extract(FileName,11,StrLen-10) /*提取第10以后的字符=>Part_Nameexists( )测试项目存在与否用法:exists(Item) Item可以是参数或尺寸.例:If exists(d5) 检查零件内是否有d5尺寸.If exists("material") 检查零件内是否有material参数.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上的比例值。
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的搜索匹配值的实例了。