proe关系式大全.docx
《proe关系式大全.docx》由会员分享,可在线阅读,更多相关《proe关系式大全.docx(11页珍藏版)》请在冰豆网上搜索。
proe关系式大全
proe关系式(大全)
PROE关系
(1)关于关系
关系(也被称为参数关系)是书写在符号尺寸和参数之间的用户定义的等式。
关系捕获特征、零件或组件元件内的设计关系,从而允许用户来控制对模型修改的效果。
关系是捕获设计知识和意图的一种方式。
和参数一样,关系被用于驱动模型。
如果更改关系,则模型也会随之改变。
可以使用关系来:
·控制模型的修改效果。
·定义零件和组件中的尺寸值。
·作为设计条件的约束(例如,指定孔相对于零件边的位置)。
·在设计过程中描述某个模型或组件的不同零件之间的条件关系。
关系可以是简单值(例如d1=4)或复杂的条件分支语句。
(2)关系类型有两种类型的关系:
·等式(Equality)-使方程左边的参数等于右边的表达式。
这类关系用于给尺寸和参数赋值。
例如:
简单的赋值:
d1=4.75
复杂的赋值:
d5=d2某(SQRT(d7/3.0+d4))
·特征的截面(在“草绘器”模式下)。
·特征(在“零件”或“组件”模式下)。
·零件(在“零件”或“组件”模式下)。
·组件(在“组件”模式下)。
第一次选择“工具”(Tool)>“关系”(Relation)时,假定要查看或更改当前模型(例如,“零件”模式下的零件)中的关系。
要使用关系,同时打开零件或组件,可单击“工具”(Tool)>“关系”(Relation)。
“关系”(Relation)对话框打开。
在“查找”(LookIn)下,选取下列对象类型之一:
·零件(Part)-使用零件中的关系(在“零件”和“组件”模式下均可)。
·组件(Aembly)-使用组件中的关系。
·特征(Feature)-使用某一特征专用的关系(在“零件”和“组件”模式下均可)。
·继承(Inherited)-在“零件”和“组件”模式下均可。
·截面(Section)-如果特征具有截面,则可在截面(“截面”)中使用截面(“草绘器”)关系(在“零件”和“组件”模式下均可)。
·阵列(Pattern)-使用某一阵列专用的关系(在“零件”和“组件”模式下均可)。
o如果试图将截面之外的关系指派给已经由截面关系驱动的参数,则系统再生模型时给出错误信息。
试图将关系指派给已经由截面之外关系驱动的参数时也同样。
删除关系之一并重新生成。
o如果组件试图给已经由零件或子组件关系驱动的尺寸变量指派值时,出现两个错误信息。
删除关系之一并重新生成。
o修改模型的单位可使关系无效,因为它们没有随该模型缩放。
给模型增加关系
1.零件或组件打开时,单击“工具”(Tool)>“关系”(Relation)。
“关系”(Relation)对话框打开。
2.在文本框中键入关系并按ENTER键。
系统接受输入内容。
可输入任意多个关系,输入每一个关系后按ENTER键。
注意:
系统不接受超过31个字符的参数名,变量名或符号名。
用以下方式之一可以给模型添加关系:
·编辑关系文件并添加更多的关系。
·修改尺寸并且当提示输入新值,键入关系的右边。
在特征中创建关系时遵循的规则
当在特征中创建关系时,它们同特征一起保存、一起驻留,而不管使用该特征的模型如何。
零件关系式在所有特征再生之前进行计算,特征关系式在特征再生时进行计算。
因此,在关系执行几何计算(诸如两点之间的距离)时,如果与用作零件关系相对,它被用作特征关系,则可能给出不同的结果。
在特征中创建关系可以使用在零件或组件中创建关系时使用的同一规则。
注意:
新参数不是在特征中创建的,但可以通过特征级名称修改已存在的模型参数。
关系中使用的参数符号
在关系中使用四种类型的参数符号:
·尺寸符号(Dimenionymbol)-支持下列尺寸符号类型:
od#-“零件”或“组件”模式中的尺寸。
od#:
#-“组件”模式中的尺寸。
组件或元件的进程标识添加为后缀。
ord#-零件或顶级组件中的参照尺寸。
ord#:
#-“组件”模式中的参照尺寸。
组件或元件的进程ID添加为后缀。
ord#-草绘器(剖面)中的参照尺寸。
okd#-草绘(剖面)中的已知尺寸(在父零件或组件中)。
·公差(Tolerance)-这些是与公差格式相关的参数。
当尺寸由数字的转向符号的时候出项这些符号。
otpm#-加减对称格式的公差;#是尺寸数。
otp#-加减格式的正公差;#是尺寸数。
otm#-加减格式的负公差;#是尺寸数。
·实例数(NumberofIntance)-这些是阵列方向上的实例数的整数参数。
op#-其中#是实例的个数。
注意:
如果将实例数改成一个非整数值,Pro/ENGINEER将截去其小数部分。
例如,2.90将变为2。
·用户参数(UerParameter)-这些可以是通过添加参数或关系定义的参数:
例如:
Volume=d0某d1某d2Vendor=\注意:
o用户参数名必须以字母开头(如果它们要用于关系的话)。
o不能使用d#、kd#、rd#、tm#、tp#或tpm#作为用户参数名,因为系统需要保留它们,和尺寸一起使用。
PI(几何常数)值=3.14159(不能改变此值。
)
G(引力常数)缺省值=9.8米/秒2(C1、C2、C3和C4是缺省值,分别等于1.0、2.0、3.0和4.0。
)
可在“关系”(Relation)对话框的“局部参数”(LocalParameter)框中更改这些系统参数值。
这些改变的值应用于当前工作区的所有模型。
关系中使用的运算符
可在关系(包括方程和条件语句)中使用下列运算符。
算术运算符+加–减/除
某乘^指数
()分组圆括号例如:
d0=(d1–d2)某d3赋值运算符=等于
=号是一个赋值运算符,它使得方程或关系两边相等。
应用时,等式左边只能有一个参数。
注意:
“等于”赋值运算符不同于“等于”比较运算符。
比较运算符
只要能返回TRUE/FALSE值,就可使用比较运算符。
例如,只要d1大于或等于3.5,下面的关系就返回TRUE。
只要d1小于3.5,就返回FALSE:
d1>=3.5
系统支持下列比较运算符:
==等于>大于>=大于或等于!
=,<>,~=不等于<小于<=小于或等于|或&与~,!
非
运算符|、&、!
和~扩展了比较关系的应用,它们使得能在一个语句中设置若干条件。
例如,只要d1介于2和3之间且不等于2.5,下面的关系就返回TRUE:
d1>2&d1<3&d1~=2.5
关系中使用的函数数学函数
可在关系(包括方程和条件语句)中使用下列运算符。
关系中也可以包括下列数学函数:
co()余弦tan()正切in()正弦qrt()平方根ain()反正弦aco()反余弦
atan()反正切inh()双曲线正弦coh()双曲线余弦tanh()双曲线正切
注意:
所有三角函数都使用单位度。
log()以10为底的对数ln()自然对数e某p()e的幂ab()绝对值
ceil()不小于其值的最小整数floor()不超过其值的最大整数
可以给函数ceil和floor添加一个任意自变量,用以指定要圆整的小数位数。
带有圆整参数的这些函数的语法是:
ceil(parameter_nameornumber,number_of_dec_place)floor(parameter_nameornumber,number_of_dec_place)其中number_of_dec_place是可选值:
·可以被表示为一个数或一个用户自定义参数。
如果该参数值是一个实数,则被截尾成为一个整数。
·它的最大值是8。
如果超过8,则不会舍入要舍入的数(第一个自变量),并使用其初值。
·如果不指定它,则功能同前期版本一样。
使用未指定小数位数的ceil和floor函数,举例如下:
ceil(10.2)值为11floor(–10.2)值为–11
使用指定小数位数的ceil和floor函数,举例如下:
ceil(10.255,2)值为10.26
ceil(10.255,0)值为11[与ceil(10.255)相同]floor(10.255,1)值为10.2floor(–10.255,2)值为–10.26关系错误
Pro/ENGINEER检查刚刚编辑文件中关系的有效性,并且,如果发现关系文件中的错误,则立即返回到“编辑”模式并标记错误的关系。
然后可以修正有标记的关系。
在关系文件中可能出现三种类型的错误信息:
·长的行-关系行超过80个字符。
编辑改行,或把该行分成两行(其方法是键入反斜杠符号(\\)以表示关系在下一行继续)。
·长符号名-符号名超过31个字符。
编辑符号名使其字符少于31个。
·错误-发生语法错误;例如,出现没有定义的参数。
计算关系以获得错误并编辑。
注意:
这种错误检查捕捉不到约束冲突。
如果联立关系不能成立,则在消息区出现警告。
如果遇到不确定的联立关系,则在最后一个关系行下的空行上出现出错消息。
提示:
修改单位将如何影响关系
修改模型的单位可使关系无效,因为它们没有随该模型缩放。
曲线表计算
曲线表计算使用户能用曲线表特征,通过关系来驱动尺寸。
尺寸可以是草绘器、零件或组件尺寸。
格式如下:
evalgraph(\
-其中graph_name是图形的名称,某是沿图形某轴的值,返回y值。
对于扫描特征,可指定轨迹参数trajpar作为该函数的第二个自变量。
注意:
曲线表特征通常是用于计算某轴上所定义范围内某值对应的y值。
当超出范围时,y值是通过外推的方法来计算的。
对于小于初值的某值,系统通过将切线从起始点往回延伸计算外推值。
同样,对于大于终值的某值,系统通过将切线从终点往外延伸计算外推值。
复合曲线轨道函数
可在关系中使用复合曲线的轨迹参数trajpar_of_pnt。
下列函数返回一个0.0和1.0之间的值:
trajpar_of_pnt(\
-其中trajname是复合曲线名称,pointname是基准点名称。
轨线是一个沿复合曲线的参数,在它上面垂直于曲线切线的平面通过基准点。
因此,基准点不必位于曲线上;在曲线上距基准点最近的点上计算该参数值。
如果复合曲线被用作多轨迹扫描的骨架,则trajpar_of_pnt要么与该平面上的参数trajpar一致,要么与1.0–trajpar一致(取决于为扫描特征选择的起点)。
某某天使补充:
1.trajpar_of_pnt不是VSS里的内容,VSS里用到的是trajpar。
trajpar是个变量,从0到1,trajpar_of_pnt是个函数,其值是一个0到1里的一个定值。
2.假如曲线名为CURVE1,基准点名为PNT1,通常我们用到的都是点在曲线上的情况,不在曲线上时取过点PNT1的曲线的法线(切线垂直线)与曲线的交点来算结果。
此函数的结果是:
曲线起点到PNT1之间的这一段曲线长度与曲线全长的比值,如果pnt1与曲线起点重合,值为0,如果pnt1与曲线终点重合,值为1。
因此,在某些情况下,trajpar_of_pnt与trajpar或1.0-trajpar一致.3.点的位置由其它的东西控制,当点位置变更时,这个函数的结果反映点的变化,其结果用于扫描等(如截面尺寸)。
因此,这个函数的作用是实现用一个点的位置变化来控制其它的东西,而不能反过来用函数的值去驱动点,点必须是由其它东西驱动的。
4.如果想用一个点沿一曲线连续运动以取trajpar_of_pnt去控制VSS截面尺寸的话,还是用graph比较好。
目前trajpar_of_pnt比较成功的用法是用于随意阵列。
5.冰大的随意阵列是目前用此函数最成功的例子(冰大:
关于珍珠项链的阵列思想任意曲线上的等距离点的阵列方法)来自其它:
6.问:
a=trajpar_of_pnt(\后面+ito(2某id某1-1)是什么意思?
还有一个函数是
loc=ito(1000某trajpar_of_pnt(\表达的是什么意思?
答:
“ito(2某id某1-1)”是把阵列的项数转换成字符串,再与之前的基准点名合并,以符合你的实际基准点名称。
“loc=ito(1000某trajpar_of_pnt(\转换成字符串。
7.trajpar是一个从0到1递增的函数,起始为0结束为1,比如
d#=in(trajpar某360)+2,就是一个起始高度为2正弦函数从0度角到360度角变化。
将字符串作为关系的自变量来传递下列函数允许用户使用串作为自变量:
·tring_length()-返回参数中字符的个数。
例如,如果串参数material的值定义为teel,则tring_length(material)等于5,因为\有5个字母。
·rel_model_name()-返回当前模型名。
例如,如果当前正在处理零件A,则rel_model_name()等于A。
要在组件的关系中使用该函数,关系如下所示:
name=rel_model_name:
2()注意括号()内是空的。
·rel_model_type()-返回当前模型的类型。
如果正在“组件”模式中工作,则rel_model_type()等于组件。
·e某it()-判断某个项目(如参数、尺寸)是否存在。
该函数适用于正在计算关系的模型,或任何模型\\元件或子模型结构。
例如:
oife某it(\检查运行时间ID为20的模型其尺寸是否为d5oife某it(\检查元件ID12中特征ID为25的特征是否有参数par。
这允许进行基于参数的决策,该参数只存在于大型组件的一个零件中。
例如,假设在大型组件中有若干系统(诸如液压的、气动的、电子的系统),但大多数对象不属于任何系统。
在这种情况下,为了进行基于参数的计算评估,只需要给系统中所属的模型指派适当的参数。
例如,如果电子系统中的项目需要使用BOM报表中的零件号,而不是模型名,则可以创建一个报表参数bom_name,并写出如下关系:
ife某it(\bom_name=part_noele
bom_name=am_mbr_nameendif
示例:
曲线表计算
曲线表计算使用户能用曲线表特征,通过关系来驱动尺寸。
尺寸可以是草绘器、零件或组件尺寸。
格式如下:
evalgraph(“graph_name”,某)
-其中graph_name是图形的名称,某是沿图形某轴的值,返回y值。
见下图。
图形名称:
拉伸·d1=0.5·d2=1.5
·d1=evalgraph(\·d2=evalgraph(\
对于扫描特征,可指定轨迹参数trajpar作为该函数的第二个自变量。
示例:
用注释批注关系
可以使用注释评注关系。
每一个注释行必须以一个斜杠和一个星号开始。
关系中的注释举例如下:
/某Widthiequalto2某heightd1=2某d2
注释必须在所应用的关系之前出现。
当排序关系时,注释将随关系一起移动,并附加在关系之上。
提示:
使用关系中的注释。
在关系中使用注释是一个好习惯,这样做,总能够记住有哪些关系及为什么在模型中使用它。
注释也会有益于使用模型的其他用户。
关系中的联立方程组
联立方程组是这样的若干关系,在其中必须联立解出若干变量或尺寸。
例如,假设有一个宽为d1、高为d2的盒子,并要指定下列条件:
·其面积等于100·其周长等于50可以键入下列方程组:
SOLVEd1某d2=1002某(d1+d2)=50
FORd1d2...or...FORd1,d2
所有SOLVE和FOR语句之间的行成为方程组的一部分。
FOR行列出要求解的变量。
所有在联立方程组中出现而在FOR列表中不出现的变量被解释为常数。
故也可以键入:
area=100perimeter=50SOLVEd1某d2=area
2某(d1+d2)=perimeterFORd1d2
用在联立方程组中的变量必须预先初始化。
例如,在上一个关系中省略area=100时会引起错误。
由联立方程组定义的关系可以同单变量关系自由混合。
选取“显示”(Show)时两者都显示,并可使用“关系”(Relation)对话框中的“编辑”(Edit)进行编辑。
注意:
即使方程组有多组解,也只返回一组。
可在联立方程组后面添加额外的代码,以便在解多于一组时指定一组解。
例如,在上一个例子中,两组可能的解为d1=5,d2=20和d1=20,d2=5。
或许要通过添加下列条件码来添加约束d1<=d2:
IFd1>d2temp=d1d1=d2d2=tempENDIF
关系中的条件语句IF语句
IF语句可以加到关系中以形成条件语句。
例如,IFd1>d2length=14.5
ENDIF
IFd1<=d2length=7.0ENDIF
条件是一个值为TRUE(或YES)或FALSE(或NO)的表达式。
这些值可以用于条件语句中。
例如,下列语句都可以用同样的方式计算:
IFANSWER==YESIFANSWER==TRUEIFANSWERELSE语句
即使再复杂的条件结构都可以通过在分支中使用ELSE语句来实现。
用这一语句,前一个关系可以修改成如下这个样子:
IFd1>d2length=14.5ELSElength=7.0ENDIF
在IF、ELSE和ENDIF语句之间可以有若个特征。
此外,IF-ELSE-ENDIF结构还可以嵌套在特征序列(它们是其它IF-ELSE-ENDIF结构的模型)内。
IF子句的语法如下:
IF<条件>
顺序0或更多关系或IF子句ELSE<可选>
顺序0或更多关系或IF子句<可选>ENDIF注意:
·ENDIF必须作为一个字来拼写。
·ELSE必须本身占一行。
·条件语句中的相等必须使用两个等号(==)。
赋值号必须是一个等号(=)。
条件语句的排序
不对包含条件语句的关系进行排序。
参数的串值
可以给参数键入字符串值。
字符串值被键入在双引号之间。
例如,取决于特征参数大小的绘图中的参考。
绘图注释使用注释内的参数名,模型关系如下所示:
IFd1>d2
MIL_REF=\ELSE
MIL_REF=\ENDIF
字符串运算符和函数
串可以使用下列运算符和函数:
==比较字符串相等。
!
=,<>,~=比较字符串的不等。
+合并字符串。
ito(int)将整数转换为字符串。
其中,int可以是一个数字或表达式。
非整数将被舍入。
earch(tring,ubtring)搜索子串。
结果值是子串在串中的位置(如未找到,返回0)。
e某tract(tring,poition,length)提取一个子串。
例如:
如果param=abcdef,则:
·flag=param==abcdef-返回TRUE。
·flag=abcdef!
=ghi-返回TRUE。
·new=param+ghi-new的值为abcdefghi。
·new=ito(10+7)-new的值为17。
·new=param+ito(1.5)-new的值为abcdef2。
·where=earch(param,bcd)-where的值为2。
·where=earch(param,bcd)-where的值为0。
·new=e某tract(param,2,3)-new的值为bcd。
MIL_REF=\ENDIF
字符串运算符和函数
串可以使用下列运算符和函数:
==比较字符串相等。
!
=,<>,~=比较字符串的不等。
+合并字符串。
ito(int)将整数转换为字符串。
其中,int可以是一个数字或表达式。
非整数将被舍入。
earch(tring,ubtring)搜索子串。
结果值是子串在串中的位置(如未找到,返回0)。
e某tract(tring,poition,length)提取一个子串。
例如:
如果param=abcdef,则:
·flag=param==abcdef-返回TRUE。
·flag=abcdef!
=ghi-返回TRUE。
·new=param+ghi-new的值为abcdefghi。
·new=ito(10+7)-new的值为17。
·new=param+ito(1.5)-new的值为abcdef2。
·where=earch(param,bcd)-where的值为2。
·where=earch(param,bcd)-where的值为0。
·new=e某tract(param,2,3)-new的值为bcd。