关系课上.docx
《关系课上.docx》由会员分享,可在线阅读,更多相关《关系课上.docx(15页珍藏版)》请在冰点文库上搜索。
关系课上
关系
关系—关系是书写于符号尺寸和参数之间的用户定义的等式。
这些关系可让您通过定义特征或零件内的关系,或者组件元件中的关系来捕捉设计意图。
可在不同级别创建关系:
组件、零件、特征或截面。
可使用关系按以下方式控制建模过程:
控制模型的修改效果;定义零件和组件中的尺寸值;设置设计条件的约束。
例如,指定相对于零件的边的孔的位置;描述模型或组件的不同零件之间的条件关系。
关系可以是简单值(例如d1=4)或复杂的条件分支语句。
也可在关系中使用单位。
截面关系—在草绘器中创建以控制复杂截面几何的关系。
除非截面尺寸更改,否则系统通常在零件再生期间再生截面关系。
零件关系—在零件级添加的关系。
零件再生期间,这些关系会在再生特征之前求解完毕。
特征关系—添加至选定特征的关系。
零件再生期间,这些关系排在零件关系之后、但在其应用于特征的再生之前求解。
只有在应用了零件关系且已再生了某些特征之后,才能使用特征关系更改特征几何。
访问关系
要访问关系,可打开模型并单击“工具”(Tools)>“关系”(Relations)。
“关系”(Relations)对话框打开。
关系类型有两种类型的关系:
2.2.1.等式(Equality)-使方程左边的参数等于右边的表达式。
这类关系用于给尺寸和参数赋值。
例如:
o简单的赋值:
d1=4.75
o复杂的赋值:
d5=d2*(SQRT(d7/3.0+d4))(开平方)
2.2.2.比较(Comparison)-比较方程左边的表达式和右边的表达式。
这种关系通常用于作为一个约束或用于逻辑分支的条件语句中。
例如:
o作为约束:
(d1+d2)>(d3+2.5)
o在条件语句中:
IF(d1+2.5)>=d7
2.3.使用关系的规则
请考虑下列规则:
2.3.1.如果试图将截面之外的关系指派给已经由截面关系驱动的参数,则系统再生模型时给出错误信息。
试图将关系指派给已经由截面之外关系驱动的参数时也同样。
(一个参数只能有一个关系来驱动)删除关系之一并再生模型。
2.3.2.如果组件试图给已经由零件或子组件关系驱动的尺寸变量指派值时,将得到错误消息。
移除其中一种关系,然后再生模型。
已经有关系驱动的底层参数不能再由上层来关系驱动。
2.3.3.修改模型的单位可使关系无效,因为它们没有随该模型缩放。
提示:
在有些情况下,在不同层级定义的关系会相互矛盾。
单击检查关系的有效性,确保关系实现设计意图。
关于再生期间的关系计算顺序,直到模型再生时才计算关系。
再生过程中,按如下顺序计算关系:
(可将关系排序)
1.再生开始时,系统按输入模型关系的顺序对其进行求解。
在组件中,首先计算组件关系。
然后,系统按放置元件的顺序计算全部子组件关系。
这就意味着系统会在所有特征或元件开始再生前计算全部子组件关系。
2.系统按创建的顺序开始再生特征。
如果某个特征具有依附自身的特征关系,则系统会在再生该特征之前求解这些关系。
3.如果用户将某些关系指定为“后再生”,则系统会在再生完成后求解这些关系。
3.关系中使用的运算符和函数
关系中也可以包括下列数学函数:
cos()余弦
tan()正切
sin()正弦
sqrt()平方根
asin()反正弦
acos()反余弦
atan()反正切
sinh()双曲线正弦
cosh()双曲线余弦
tanh()双曲线正切
注意:
所有三角函数都使用单位度。
log()以10为底的对数
ln()自然对数
exp()e的幂
abs()绝对值
ceil()不小于其值的最小整数
floor()不超过其值的最大整数
可以给函数ceil和floor加一个可选的自变量,用它指定要圆整的小数位数。
带有圆整参数的这些函数的语法是:
ceil(parameter_name或number,number_of_dec_places)
floor(parameter_name或number,number_of_dec_places)
其中number_of_dec_places是可选值:
•可以被表示为一个数或一个使用者自定义参数。
如果该参数值是一个实数,则被截尾成为一个整数。
•它的最大值是8。
如果超过8,则不会舍入要舍入的数(第一个自变量),并使用其初值。
•如果不指定它,则功能同前期版本一样。
使用不指定小数部分位数的ceil和floor函数,其举例如下:
ceil(10.2)值为11;floor(10.2)值为11
使用指定小数部分位数的ceil和floor函数,其举例如下:
ceil(10.255,2)等于10.26;ceil(10.255,0)等于11[与ceil(10.255)相同]
floor(10.255,1)等于10.2;floor(10.255,2)等于10.26
曲线表计算
曲线表计算使使用者能用曲线表特征,通过关系来驱动尺寸。
尺寸可以是草绘器、零件或组件尺寸。
格式如下:
evalgraph("graph_name",x),其中graph_name是曲线表的名称,x是沿曲线表x-轴的值,返回y值。
对于混合特征,可以指定轨线参数trajpar作为该函数的第二个自变量。
注释:
曲线表特征通常是用于计算x-轴上所定义范围内x值对应的y值。
当超出范围时,y值是通过外推的方法来计算的。
对于小于初始值的x值,系统通过从初始点延长切线的方法计算外推值。
同样,对于大于终点值的x值,系统通过将切线从终点往外延伸计算外推值。
复合曲线轨道函数
在关系中可以使用复合曲线的轨道参数trajpar_of_pnt。
下列函数返回一个0.0和1.0之间的值:
trajpar_of_pnt("trajname","pointname")
其中trajname是复合曲线名,pointname是基准点名。
轨线是一个沿复合曲线的参数,在它上面垂直于曲线切线的平面通过基准点。
因此,基准点不必位于曲线上;在曲线上距基准点最近的点上计算该参数值。
如果复合曲线被用作多轨道扫瞄的骨架,则trajpar_of_pnt与trajpar或1.0–trajpar一致(取决于为混合特征选择的起点)。
字符串运算符和函数
字符串可以使用下列运算符和函数:
==比较字符串相等。
!
=,<>,~=比较字符串的不等。
+合并字符串。
itos(int)将整数转换为字符串。
其中,int可以是一个数字或表达式。
对非整数进行四舍五入。
search(string,substring)。
搜索子串。
结果值是子串在串中的位置(如未找到,返回0)。
extract(string,position,length)。
提取一个子串。
例如:
如果param=abcdef,则:
flag=param==abcdef-返回TRUE
flag=abcdef!
=ghi-返回TRUE
new=param+ghi-new为abcdefghi
new=itos(10+7)-new为17
new=param+itos(1.5)-new为abcdef2
where=search(param,bcd)-where是2
where=search(param,bcd)-where是0
new=extract(param,2,3)-new为bcd
算术运算符
+,-,*,/,^(指数)()(分组括号)
赋值运算符
=应用时左边只能有一个参数,并且为被驱动值。
比较运算的函数
==等于<=小于或等于|或
>大于>=大于或等于&与
<小于!
=/<>/~=不等于~/!
非
注意:
“等于”赋值运算符不同于“等于”比较运算符。
运算符|、&、!
和~扩展了比较关系的应用,它们使得能在一个语句中设置若干条件。
例如,只要d1介于2和3之间且不等于2.5,下面的关系就返回TRUE:
d1>2&d1<3&d1~=2.5
关系联立方程组
联立方程组是这样的若干关系,在其中必须联立解出若干变量或尺寸。
创建联立方程组时,请考虑以下规则:
2.3.1.必须在方程组的开头先声明用于联立方程组中的变量。
例如,area=100,如下例中所示。
2.3.2.求解联立方程时,即使系统方程可能有多组解,但系统也只会返回一组。
2.3.3.可把联立方程组同单变量关系互相混合。
示例:
联立方程组示例
例如,有一个宽度为d1、高度为d2的盒子,并要指定下列条件:
其面积等于100
周长等于50
可以键入下列方程组:
SOLVE
d1*d2=100
2*(d1+d2)=50
FORd1d2...or...FORd1,d2
所有SOLVE和FOR语句之间的行成为方程组的一部分。
FOR行列出要求解的变量。
所有在联
立方程组中出现而在FOR列表中不出现的变量被解释为常数。
另外,可通过输入以下联立方程组设置相同的条件:
area=100
perimeter=50
SOLVE
d1*d2=area
2*(d1+d2)=perimeter
FORd1d2
创建联立方程组的提示如下:
1.省略前述关系中的area=100会出现错误。
2.即使有多组解,也只会返回一组解。
可在联立方程组后面添加额外的代码,以便在解多于一组时指定一组解。
例如,在上一个
例子中,两组可能的解为d1=5,d2=20和d1=20,d2=5。
可通过添加以下条件代码来
增加约束d1<=d2:
(希望得到d1比d2小的状态的模型)
IFd1>d2
temp=d1
d1=d2
d2=temp
ENDIF
3.4.关系中的条件语句
注意:
不对包含条件语句的关系进行排序。
条件是指表达式,这种表达式可以为TRUE(或
YES)或FALSE(或NO)。
这些值可以在条件语句中互换使用。
例如,下列语句都可以用同
样的方式计算:
IFANSWER==YES
IFANSWER==TRUE
IFANSWER
IF语句
可将IF语句添加到关系中来创建条件语句。
例如,
IFd1>d2
length=14.5
ENDIF
IFd1<=d2
length=7.0
ENDIF
ELSE语句
即使在复杂的条件结构,都可通过在分支中添加ELSE语句来实现。
使用这些语句,上面的关系可修改如下:
IFd1>d2
length=14.5
ELSE
length=7.0
ENDIF
在IF、ELSE和ENDIF语句之间可以有若个特征。
此外,IF—ELSE—ENDIF结构还可以嵌套
在特征序列内。
IF子句的语法如下:
IF<条件>
顺序0或更多关系或IF子句或序列
ELSE<可选项>
顺序0或更多关系或IF子句<可选>
ENDIF
请考虑下列规则:
ENDIF作为一个字来拼写。
ELSE需要添加在单独一行。
条件语句中的相等关系以两个等号(==)的形式输入。
赋值号以一个等号(=)的形式输入。
2.4.关系错误
添加或编辑关系后,单击“确定”(OK)退出“关系”(Relations)对话框,Pro/ENGINEER
会检查关系的有效性。
如果发现错误,Pro/ENGINEER会标记错误的关系以便能改正它们。
Pro/ENGINEER检测的错误类型包括:
2.4.1.长的行-关系行超过80个字符。
编辑改行,或把该行分成两行(其方法是键入反斜杠符号(\)以表示关系在下一行继续)。
2.4.1.长符号-符号名称超出31个字符。
编辑符号名使其字符少于31个。
2.4.1.语法错误-出现语法错误,例如,参数未定义。
注意:
这种错误检查捕捉不到约束冲突。
如果联立关系不能成立,则在消息区出现警告。
如果系统检测到不确定的联立关系,则在最后一个关系行下的空行上出现出错消息。
避免循环关系
可能会错误地创建类似下面的循环关系:
d0=d1
d1=d0
关系进行排序时,排序实用程序会检测到循环关系并发出警告。
但是,前面的行仍将是联立方
程组的有效部分。
下面的循环关系示例说明在输入关系期间错误重定义符号的过程:
d0=d1
...
d0=2*d1
这些关系是依赖于顺序的,故不能进行排序。
系统会发出警告。
关于关系中使用的参数
在关系中使用参数符号
可在关系中使用以下参数类型:
尺寸符号-支持下列尺寸符号类型:
od#-“零件”或”组件”模式中的尺寸。
od#:
#-“组件”模式中的尺寸。
组件或元件的进程标识添加为后缀。
ord#-零件或顶级组件中的参照尺寸。
ord#:
#-“组件”模式中的参照尺寸。
组件或元件的进程ID添加为后缀。
orsd#-草绘器(截面)中的参照尺寸。
okd#-草绘器(截面)中的已知尺寸(在父零件或组件中)。
oAd#-在”零件”、”组件”或”绘图”模式下的从动尺寸。
公差-与公差格式相关的参数。
当尺寸由数字的转向符号的时候出项这些符号。
otpm#-加减对称格式的公差;#是尺寸数。
otp#-加减格式的正公差;#是尺寸数。
otm#-加减格式的负公差;#是尺寸数。
实例数-阵列方向中的实例数的整数参数。
op#-其中#是实例的个数。
注意:
如果将实例数改成一个非整数值,Pro/ENGINEER将截去其小数部分。
例如,2.90将变为2。
用户定义参数-通过添加参数或关系而定义的参数。
例如:
Volume=d0*d1*d2
Vendor="StocktonCorp."
系统参数-可在”关系”(Relations)对话框的”局部参数”(LocalParameters)框中
更改系统参数的值。
这些改变的值应用于当前工作区的所有模型。
下列参数是由系统保留使用的:
oPI(几何常数)-值=3.14159
注意:
不能更改此值。
oG(引力常数)-缺省值=9.8米/秒2
(C1、C2、C3和C4是缺省值,分别等于1.0、2.0、3.0和4.0。
)
程序中设置参数输入及提示行语法:
INPUT
参数名称参数值型态
提示行
ENDINPUT
注:
1.参数名称可输入汉字或英文字母。
2.参数值型态分为三种(如果不输入参数值型态,系统会默认为NUMBAT):
a.NUMBAT——参数值为数值
b.STRING——参数值为字符串
c.YES_NO——参数值为是否
3.提示行是对参数的简要说明,提示行前面需加上英文状态下的引号。
示例:
INPUT
DENUMBER
"请输入拉伸件的直径=="
ENDINPUT
关于添加关系
通常,可通过单击"工具"(Tools)>"关系"(Relations)并使用"关系"(Relations)对话框来添加关系。
另外,也可通过以下方法添加关系:
∙编辑关系文件并添加更多的关系。
∙创建特征时,可在操控板的尺寸框中键入表达式。
编辑特征时,可键入表达式作为尺寸的值。
∙在图形窗口编辑尺寸时,可双击尺寸,再键入表达式作为尺寸值。
为不同类型的对象添加关系
可为不同类型的对象添加关系。
在"关系"(Relations)对话框中"查找"(LookIn)下列出的所支持的对象类型有:
零件(Part)-在"零件"和"组件"模式下访问零件关系。
组件(Assembly)-访问组件中的关系。
特征(Feature)-在"零件"或"组件"模式下访问专用于某个特征的关系。
继承(Inherited)-在"零件"和"组件"模式下访问各种关系。
截面(Section)-如果特征具有截面,则在"零件"或"组件"模式下访问"草绘器"中的截面关系。
阵列(Pattern)-在"零件"或"组件"模式下访问专用于某个阵列的关系。
骨架(Skeleton)-在"组件"模式下访问骨架模型的关系。
元件(Component)-访问组件元件的关系。
在特征中创建关系的规则
当在特征中创建关系时,它们同特征一起保存、一起驻留,而不管使用该特征的模型如何。
特征关系在零件关系之后进行计算,并在其所属的特征再生后进行求解。
因此,在关系执行几何计算(诸如两点之间的距离)时,如果与用作零件关系相对,它被用作特征关系,则可能给出不同的结果。
注意:
可通过特征级名称修改已存在的模型参数。
给模型增加关系
在文本框中键入关系并按ENTER键。
可在键入每个关系后按ENTER键来键入多个关系。
使用以下工具添加关系:
要插入尺寸、几何公差或表面光洁度,可在图形窗口内单击相应选项。
提示:
如果尺寸没有显示,可双击特征以显示其尺寸。
要插入函数,可单击
。
要插入运算符,可单击对话框左侧工具栏上列出的运算符。
要从现有参数列表中插入参数,可单击
。
注意:
参数、变量或符号的名称不能超出31个字符。
要指定关系是应按常规顺序计算,还是在再生后计算,可从列表中选取"初始"(Initial)或"后再生"(PostRegeneration)。
可单击
校验已输入关系的有效性。
若接受这些关系,请单击"确定"(OK)。
要重新开始,可单击"重置"(Reset)。
使用关系中的注释
在关系中使用注释是一个好习惯。
注释可帮助您记住添加关系的意图。
使用模型的其他人也会从中受益。
每一个注释行必须以一个斜杠和一个星号开始。
例如:
/*宽度是高度的2倍
d1=2*d2
注释必须在应用关系之前编写。
关系进行排序时,注释会随关系移动并保持在注释的上方。
确定表达式的值
可获得一个表达式(可以是单个参数或一个方程)的值,而不必将其作为关系添加到模型中。
单击"工具"(Tools)>"关系"(Relations)。
"关系"(Relations)对话框打开。
单击
。
"计算表达式"(EvaluateExpression)对话框打开。
在"表达式"(Expression)框中输入参数符号(例如,d20、$d20、d10:
2、depth)、用户参数(例如,颜色),或表达式(例如,d5+d6,d2!
=d4)。
单击"计算"(Evaluate)。
计算结果出现在"结果"(Result)框。
比较方程诸如d2!
=d4或d3==d2会返回0(假)或1(真)。
单击"关闭"(Close)。
关系中的负尺寸
如果使用负的尺寸,并且在关系中要使用真的有正负之分的值,则可在符号前加一美元符号(例如,$d20或$depth)。