表达式的概念1 W+ K0 i) y1 t |$ `2 C& b
表达式是算术或条件语句,用来控制零件特征。表达式可以用来定义或控制一个模型的多种尺寸,例如一个特征或一个草图的尺寸。+ P6 T! F* W! _6 r, T" | l; t
表达式在参数化设计中是十分有意义的,它可以用来控制同一个零件上的不同特征间的关系或一个装配中的不同零件间的关系。例如:我们可以用一个表达式来建立一个支架零件的厚度和长度之间的关系。当支架的长度改变之后,它的厚度自动更新。图2-1所示为表达式的一个实例。在创建表达式时必须注意以下几点:
- B3 y, D9 Z: s ● 表达式左侧必须是一个简单变量,等式右侧是一个数学语句或一条件语句。
) L# v h- i; @' A' \● 所有表达式均有一个值(实数或整数),该值被赋给表达式的左侧变量。1 ~! N8 a0 |1 W2 w
● 表达式等式的右侧可认是含有变量、数字、运算符和符号的组合或常数。0 g2 {" I1 `" M7 b- c9 @% Z, [
● 用于表达式等式右侧中的每一个变量,必须作为一个表达式名字出现在某处。1 }4 R" I- x8 I0 C) W
! z; {& R1 ^. U( m9 d8 w# q+ f
. o! b9 V3 m- Z+ Y! i4 K+ Q$ O Length=.5+2*Cos(60)/ c5 L" G* @' B9 h
创建表达式的方法4 z: E& w* B: c
1.手工创建表达式1 z. a& s. a- S& i: U6 K
●选择下拉菜单Tool→Expression或按快捷键Ctrl+E
6 o* n' B# l2 x0 l& U5 K●改变一个已存在的表达式的名字,可选择下拉菜单Tool→Expression,选取已存在的表达式,然后单击Rename。
& R9 W6 k7 |3 h" }% y% N/ c" I●将文本文件中存在的表达式引入到ug中,可选择下拉菜单Tool→Expression→Import。3 i' o* \$ |# t7 [/ \- ~5 E
2. 系统自动建立表达式
+ R. j* D, G& l) [5 ~ i- Q- X+ n7 e当用户作下列操作时,系统自动地建立表达式,其名字用一个小写字母p开始。
- ~0 o) q2 X2 Q+ K3 |. @0 K●建立一个特征(Create a Feature)时,系统对特征的每个参数建立一个表达式。
e( E, T$ M3 @' ~( K$ q7 r K●建立一个草图(Create a Sketch)时,系统对定义草图基准的XC和YC坐标建立两个表达式。例如:p1_YDATUM_V1=02 G, u' x% T, f4 u: {# D
●标注草图尺寸(Dimension a Sketch)后,系统对草图的每一个尺寸都建立一个相应的表达式。1 b+ U" [, e' ]' n+ @
●定位一个特征或一个草图(Position a feature or sketch)时,系统对每一个定位尺寸都建立一个相应的表达式。5 }+ D$ o+ \0 r' Z! V1 M8 K5 n3 @+ U
●生成一个匹配条件(Create a mating)时,系统会自动建立相应的表达式。
6 l- ]7 _: b y7 T; m表达式可应用于多个方面,它可以用来控制草图和特征尺寸和约束;可用来定义一个常量,如pi=3.1415926;也可被其它表达式调用,如expression1=expression2+expression3,这对于缩短一个很长的数字表达式十分有效,并且能表达它们之间的关系。 | . b: M1 K& Q4 v' n* s8 t
2.1.3 为什么使用表达式
/ F( T9 g* h0 V表达式是一个功能强大的工具,可以使UG实现参数化设计。运用表达式,可十分简便地对模型进行编辑;同时,通过更改控制某一特定参数的表达式,可以改变一实体模型的特征尺寸或对其重新定位。; [* ^% y D. O
使用表达式也可产生一个零件族。通过改变表达式值,可将一个零件转为一个带有同样拓朴关系的新零件。
$ h$ Q* [- p( `* s" t3 n2.1.4 表达式分类
3 m; R, i2 J' Y. |9 Z- ~表达式可分为三种类型:数学表达式、条件表达式、几何表达式。
2 n% k: u( I c5 N1. 数学表达式' x3 @ p/ }. W
可用数学方法对表达式等式左端进行定义。下表2-1列出一些数学表达式:8 G- d; s6 Q7 @2 a) {! t
表2-1 数学表达式4 ~# ~& v: Y* m0 i0 @' u
数学含义 例子
" _1 ?( ~. ~7 q( P7 q+ 加法 p2=p5+p34 x' \) A) d6 i, u2 {1 _+ c) I: ^
— 减法 p2=p5-p3
- H0 ?" y1 S: T9 W: {& I4 \* 乘法 p2=p5*p31 X1 W0 H# H8 `2 m* B7 j" u# |, B
/ 除法 p2=p5/p3+ w2 G7 Y: p) V( v" N" p, ^8 w; q
% 系数 p2=p5%p3
% w. l+ f5 E; p3 x7 |^ 指数 p2=p5^2
& b- u8 D) M: r4 g= 相等 p2=p5- U/ n- H- `9 \# {% ^/ s1 N# Y
2. 条件表达式5 l3 Y0 G6 q8 \1 O7 t% v
通过对表达式指定不同的条件来定义变量。利用if/else结构建立表达式,其句法为:( m- A( ~1 Q4 X9 d0 \' V) p
VAR=if (exp1) (exp2) else (exp3)2 u/ c( W6 |; X, j7 d& i
例width=if (length<8) (2) else(3)- O) A5 ~ P8 p
其含义为:如果length小于8,则width为2,否则为3。
7 X5 p' k: F2 ?, t* P4 \5 E0 s3. 几何表达式+ `9 x0 Q0 k6 ?
几何表达式是通过定义几何约束特性来实现对特征参数的控制。几何表达式有以下三种类型:5 D) ]6 L1 I! j1 K$ r' R
1)距离:指定两物体之间、一点到一个物体之间或两点之间的最小距离。' X- j3 e5 c( d2 t' M
2)长度:指定一条曲线或一条边的长度。5 X0 d; U# j- M! q' i7 b
3)角度:指定两条线、平面、直边、基准面之间的角度。
8 Z+ u3 h: L9 r几何表达式如下例:p2=length(20), o% O; }& U* i; X# l+ u) o7 L
p3=distance(22)( {# _1 H$ s5 ], s3 m9 O
p4=angle(25)
9 b) l$ i: q0 D) `7 C: i+ n2.1.5 表达式语言/ B9 @+ |! ~6 {& z
表达式有自己的语法,它通常模仿编程语言下面介绍表达式语言的下列元素:变量名、运算符、运算符的优先顺序和相关性、机内函数及条件表达式。1 y8 V9 f: k, K
1. 变量名
: A) I+ j. C: B3 k变量名是字母与数字组成的字符串,但必须以一个字母开始,变量名可含下划线“_”,变量名的长度限制在32个字符内。
* ~2 _; [6 U" U2. 运算符
( l# M9 Y9 }1 CUG表达式运算符分为算术运算符、关系及逻辑运算符,与其它计算机书中介绍的内容相同。各运算符的优先级别及相关性如表2-2所示。在表2-2中,同一毛的运算符的优先级别相同,上一毛的运算符优先级别高于下一行的运算符。9 ?& l8 T3 i& r+ v6 o2 f/ N
表2-2 各运算符的优先级别及相关性: I' ?& a& }: B$ z b' `2 q4 K G
运算符 相关性 运算符 相关性
) X4 V# ~) s0 e∧ 右到左 > < > = < = 左到右
. h: K( ]- K' X R. @! ^-(负号)! 右到左 = = ! = 左到右
( Q$ S% y& y1 h% Q. `1 f G* / % 左到右 && 左到右, X3 D# Z4 y% O
+ - 左到右 ‖ 右到左 |
. N) O1 l- I I, I r. Y% e( p! l9 A1 T3 X5 f8 S
机内函数
9 _& p3 b3 }4 y% d+ w表达式中允许使用机内函数,表2-3为部分常用函数
1 v' L Q( K9 \6 J4 ? 表2-3 机内函数
# V7 e6 c" U2 R+ K3 ]* \* T3 ?9 ]+ @机内函数 含义 示例 u% } Z/ R, Y" |7 I8 z
Abs 绝对值 abs(-3)(其值为3)
/ p& H( b3 b* r' U+ A) c6 M+ H) V3 _, kAsin 反正弦 asin(1/2)(其值为0.5236rad)0 `, {+ q* F# E9 R& z
Acos 反余弦 acos(1/2)(其值为1.0472)
) j( c" _$ q* F: T PAtan 反正切(atan(x)) atan(1)(其值为0.7854rad)
# y, Z1 u1 \% p% r$ pAtan2 反正切(atan2(x,y)为x/y的反正切) atan(1,0)(其值为1.5708rad)
) k J0 K4 W5 U/ h' u- [$ y% bCeil 向上取整 ceil l(3,12)(其值为4)6 g' [. Y0 k7 \1 P! Z& u
Floor 向下取整 floor(3,12) (其值为3)
, \% B- B v( G) i/ P* P& R+ Z( [Sin 正弦 sin(30)(30为角度值,其值为0.5)$ [7 C0 n4 O0 ~% q- f
Cos 余弦 cos(60) (60为角度值,其值为0.5)
0 \) v# o8 _5 @0 c. ?, uTan 正切 tan(45)(45为角度值,其值为0.5)9 j+ k. e( ~; [7 U. L$ I
Exp 幂(以e为底数) exp(1)(其值为2.7183)
, v7 ^0 e! S" [! BLog 自然对数 log(2.7183)(其值为1)
+ p: J) x f0 R" s# hLog10 对数(以10为底数) log10(10)(其值为1)& n, e% h1 I7 P3 X( o! K! m- A
Sqrt 平方根 sqrt(4)(其值为2)
- P8 ?/ S3 K) X [, B2 H" api() 机内常数(π)
! e- H- r/ @! c) X% [& Q- ]Deg 弧度向角度的转换函数 deg(atan(1))(其值为45)2 Z# U' O0 ~/ {+ R. ~' |
Rad 角度向弧度的转换函数 rad(180)(其值为3.14159)0 c; u8 g4 U" ]9 g5 o
Fact 阶乘 fact(4)(其值为24) |
4. 表达式注解 Z2 M6 v: [$ W2 |4 `" y
可在表达式中产生一段注解。在注解前用双斜线进行区分“//”。“//”将提示系统忽略它后面的语句。用回车键中止注解。如果注解与表达式在同一行,则需先写表达式内容。. I+ E, V% r5 x! {8 X) ]
如下例:length=2*width//comment 有效4 ^# d4 G7 v0 g$ X" k
//comment//width=5 无效 |
|