|
发表于 2011-2-4 16:34:25
|
显示全部楼层
top-down设计方法探讨
1 ]8 _% H" r7 ?% H) y4 S) @2 E; p发布:2007-2-16 10:47:30 来源:模具网 浏览294 次 编辑:佚名
" {* c3 e$ N) ^$ c" g7 @0 U, a【摘 要】通过对项目设计方法的介绍和分析,阐述了Top-down设计的一般步骤和需要注意的问题,同时,也对该设计方法下的传输产品设计问题和数据重用问题进行了分析和解决。
- d N/ c7 d2 x; V9 h. v- y【关键词】Top-down 项目 设计方法 数据采用
6 d' e2 x6 |+ O! [* O- B- G# L7 G& S. i: i+ j$ d$ R2 E. _
1 背景介绍
: @( f8 H5 u$ h' R0 c* |
( L! U. a6 K0 y. m( @ 中兴通信在2001年以前主要使用AutoCAD来完成产品的结构设计,同时也用Pro/ENGINEER软件完成一定范围的结构设计,经过多年的使用,存在以下几个主要问题,影响产品的设计品质、设计周期、数据管理。* C) y3 ^7 {- F% _7 D9 C% ], F2 E% w
4 c& u; {& C: E/ t9 K2 i; u f
(1) 设计意图难以捕捉,部门之间由于性质不同存在沟通的困难。: n. U& a* G; Z4 ~/ O$ p0 M6 W
$ g2 {! X/ e1 | [/ M3 d$ i) W
(2) 工程师的主要工作集中在CAD绘图上,而不是设计的思考与优化,工程师之间的协作共享难以实现,设计意图也难以沟通。5 @( O8 J2 R# {2 V
+ j" V! I; A0 h% Y% z: ~- ^ (3) 设计错误不能及时发现,修改困难。, V; d0 C! ^5 j6 w" V( i0 F
; m9 F8 |$ V4 u+ L9 l7 R( k: V$ x: @ (4) 难以建立中央数据库系统。* W0 U( g$ I+ D: K* J/ `
0 G( K/ K w3 Z+ K+ E+ z: o/ S
(5) 工艺设计直观性差,工艺设计比结构设计滞后,难以实现并行工程。+ H4 i+ p1 O9 \. E: w' k, \' f% J
% }* f1 o6 b/ G- W3 b2 x- ? (6) 造型设计与结构设计脱节,不能实现造型与结构的一体化设计流程。
/ A9 e, V9 f. k! f( Q3 i* x
# K9 K0 c# S: N3 n0 k$ h$ [2 项目分析
0 H: H6 c! i6 w7 H
, L6 s" u! s" y- [* T% q. Q" T. X 经过我们的调研和实际使用Pro/ENGINEER的经验体会,公司在2001年全面启动Pro/ENGINEER的培训推广工作,主要是基于Pro/ENGINEER以下优点:首先,拥有单一数据库支持下的产品数据全相关的开发流程;其次是覆盖产品开发全流程应用的全面解决方案;最后,具有完善的参数化设计技术。其中的全面解决方案包括:并行开发环境——Pro/INTRALINK;Top-down设计与装配管理功能,推进设计的自动化;设计知识、规则管理工具——Check;6σ质量控制方法——CE/TOL;产品可视化工具——ProductView;数据浏览——动态旋转、剖切、漫游;动态测量、批注和圈阅;三维拆装分析与动画制作。
9 q1 w" l/ q5 z' r( K5 E: j% s4 F/ ^2 J' T- S; c( K
3 项目实施情况介绍- x) R6 [/ w; h* @- e
: h J/ B* J+ k) K( {
传输产品项目组成员为2人,从2001年10月10日开始,到2001年11月28日完成所有相关零部件三维建模、二维图绘制。主要包括机柜、插箱、相关附件和相关标准件和非标准件。完全达到当初项目设定的目标。目前后续传输新产品已在原建模基础上进行改进设计。) x- i& W% m5 C5 @* I
7 }7 S; {) n& p( \6 \8 s: @5 Z2 w" g4 项目实施目标3 I. b8 h c4 H
7 D3 |3 `. V3 h% l8 u' V (1) 项目在中兴传输产品ZX234JA上实施。
1 Y4 j" p8 S3 i0 ~
* J; j O3 q0 Y6 l- h5 Y (2) 整个项目在Pro/INTRALINK设计平台上进行,所有文件命名以及数据规范均应符合部门有关规定,所有文件最终均要归入部门数据库内。- q& ~6 ]' {; o, s) \, {. T$ @( t* z
; ~0 J5 K7 R* R$ }
(3) 整个项目有明确的设计意图,应有整体的骨架模型(驱动)“Skeleton”,应能充分体现Top-down设计理念。
6 q U/ Z3 E2 Z. p( j* j: P
7 i4 g0 M) _! J; s (4) 进行并行工程设计。
+ J; {# V; D5 F5 R& g& A' X+ X: h
: A( n' V# M0 V1 w2 U/ I' V2 x (5) 实现自动变更。主要是机柜实现高度(2.0m、2.2m、2.6m)以及深度(300mm、600mm )自动变更。子架根据实际需求的板位数目以及板位间距、高度自由变更。甚至实现双排与单排之间的变化。, z$ r2 o7 {; e, _4 f
& \8 ^0 [+ o3 K+ G: e# Q2 \
(6) 完成相应的文档编制。
$ ^1 |$ t5 r1 j l; F1 c' j+ c8 q0 a3 s3 r# z5 [' H" r
5 项目设计方法介绍
0 }* f" z5 y; H; F3 e U: o( M
: Y. i1 e# H- R5.1 项目设计方法的选定
u p7 O2 m/ m+ ]. w% Q1 z
g3 A# W/ H) Z6 g) \; M. S 在Pro/ENGINEER这种关联性很强的三维软件设计中,一个项目的方法选定特别重要,因为它将影响你以后所有的设计,以及在后续的延伸设计和拓展。目前利用Pro/ENGINEER进行项目设计大致有以下三种。- J! B6 X* F' _9 n
5 n7 d0 O# ?0 V, i
(1) Down-Top设计方法。此方法只是利用Pro/ENGINEER简单的三维模型技术分别进行零部件的设计,最后像积木一样搭建而成产品。这种方法零部件之间不存在任何参数关联,仅仅存在简单的装配关系。对于设计的准确性、正确性、修改以及延伸设计可以说是致命缺点。
3 O0 p% _" e4 r2 l
& ]/ ^$ \; A w# L3 T% }0 z( O (2) Top-down设计方法。在树(装配关系)的最上端存在顶级Skeleton,接下来是次级Skeleton,继承于顶级Skeleton,然后每一级装配分别参考各自的Skeleton,展开系统设计和详细设计。这种方法已经属于Top-down思路。只是在数据重用方面存在问题。
0 M2 i! t4 f( J1 O) D. Q6 `3 f# q. V! K. O3 I7 L" |! |* c9 O/ G
% J9 N/ Z' T5 d% A. t3 g9 ^* y2 V. G
图1 Down-Top设计方法, v1 W: N% Z" q3 F7 I
0 S& d5 ^' x' M2 q6 J7 I
/ D# Q* H1 l* f" X
& P: w" G& t7 E* S; Y$ C
图2 Top-down设计方法5 ^ W* M8 M5 _
/ A* Y7 K. p% K. ?9 M( N (3) 改进型Top-down设计方法。在第二种方法的基础上加以改进,将顶级Skeleton从整个装配关系中剥离出来,单独存在。需要数据重用的大部件分别参考于顶级Skeleton,在数据重用时互不干涉。当然整个装配关系是由顶级Skeleton控制的。( J" m. ]& P8 y( k( G- P9 n
9 }9 w% e7 x# `- h2 z! b- i) i
) W( ~, t/ z+ q8 Y5 i+ ^5 `, S: U0 L, P6 `+ a
图3 改进型Top-down设计方法% x W8 w3 Q7 L4 e1 o9 t5 L9 Q w/ ?
: N6 b! P2 k* | 传输产品种类较多,借用、互相装配等数据重用现象非常普遍,同一机柜可以装多个产品的子架,同一个子架可以装到不同的机柜中。基于以上介绍的设计方法,很明显应该选用第三种。3 A# ?; B3 U- ~" } c; h" Q0 T
, d2 ~" b" ]7 Y
5.2 总体系统设计
& s% C: L3 ^: o2 Z z+ r
* B5 j3 ]' V% N& F& l+ p (1) ZX234JA.PRT的建立。这个文件就是我们顶级的Skeleton,它独立于装配树以外而存在。是用Datum、Point、Axis、Curve、 Surface等特征建立,用来反映整个系统设计有关的特征,便于下一步进行参考传递,内容例如机柜外形尺寸、子架、电源分配架、话机托架在机柜中的位置、空间等。也可以进行内部功能子架安装位置以及机柜门的分割和基本位置。要求内容简单明确,通用性强,容易更改,所包含的参数最好是容易引起设计更改的参数,对比较重要的特征可以更名为容易理解的名字。在初步确定ZX234JA.PRT的内容不一定是完整的内容, 以后根据设计的需要可以进一步添加。最后可以根据实际情况定义(PublishGeom)每个需要输出作为参考模块的内容。另外作为Pro/ENGINEER每个prt的基本元素,三个基准面应该一级一级传下去,尽量保持基准一致。ZX234JA.PRT的具体内容如图4所示。% T" R2 s7 Y/ D: M1 g
) L5 s& L, \: `( [1 n6 ?
2 Q4 c+ g" s7 E- _1 L( L1 P
- j5 v7 J4 ~9 _- u图4
4 F. g" r/ x4 f8 b0 G6 Z/ `" T
3 y4 O/ \7 P, U E) ^$ t (2) 装配部件的定义以及参考的传递。当所需ZX234JA.PRT基本上定义完好后(当然不是最终结果),就可以在Pro/ENGINEER环境下定义整个项目的结构树,基本上是根据功能模块进行建立,编号是依据大家平时习惯的编号方法。如图5所示。ZX234JA-01.ASM为机柜子装配、ZX234JA-02.ASM为子架子装配、ZX234JA-06.ASM为话机托架子装配。
' ]- h+ O+ K' }" y9 m, E7 T5 g5 F7 ]3 ]8 n' P/ ?" V
3 `! {& F' |8 r7 b( ]2 J/ |
3 D) o- Y* J4 U6 B) Q( r- l: N( W图5/ H# R7 A! ^: Y9 H- l5 L
% J- q4 u% Z' f
当结构树建好以后,就可以利用ExtCopyGoeom命令进行参考复制。在每一个功能模块下面分别创建一个Skeleton文件(注意:此Skeleton属性不同于ZX234JA.PRT),内容即是在ZX234JA.PRT中定义的模块参考内容。图6、图7、图8所示是机柜的Skeleton文件及其内容,已经可以没有子架相关的参考在里面。$ O$ x' I( Z$ ~; o" K j, S
. s9 y+ l2 C! F8 V$ ]8 R8 h+ L# E" i
/ \3 P' a. e& e- Y* B0 x5 @+ F图6
, H: A) c7 E3 t3 X2 X F( X0 P4 |- ?6 m% @2 H
+ p1 S' Q: m9 q5 x% o8 W5 v9 w
1 r2 m. M4 j+ p) q& d图7
& |& J k* W4 ^
. E. X1 A6 H" K* R0 e4 R6 n
' C$ k" X3 e$ n A7 `# w; [/ b( Y" B4 g) S2 B4 s" B
图8
, N s3 G8 w- k# \$ u; C1 ]% ?6 u' F8 z) f
5.3 部件级别系统设计
4 N& \1 }+ Z! j& {$ n0 I( Y3 `! \: R
这一步其实就是项目并行工程的关键所在。针对于每一个部件可以安排相应的工程师来完成,每个工程师只需按照分配给自己的空间和参考来进行下一步的设计,不必担心其他项目工程师,因为有一个顶级ZX234JA.PRT在控制着装配。
$ H0 E- k( \+ q, }4 q, J
6 ]6 y, B9 A* \ 其实每一个部件就和一个大系统一样,由下一级部件和零件组成。为便于更好的参考,可以同样在每一级Skeleton文件进行详细的参考加入以及定义和输出。在继续改进每一级Skeleton时仍要记住,不要随便加入实体等带有质量性质的特征。当然这些新加入的参考都可以上升到顶级Skeleton文件ZX234JA.PRT之中,再分别传递下来。不过这样做的结果就是ZX234JA.PRT文件越来越大,越来越复杂,不但容易出错,而且自己不容易辨认。例如,在下面子架的Skeleton文件中就加入了两个Datum PlaneTM_FRONTFACE和DTM_FAN。. w5 @4 ]& q( m# I) B/ W
% ?7 X8 u/ Y% l3 `: o5.4 详细设计阶段
8 G: J# `; W1 `3 K9 r+ q! d! i
7 E9 a1 l8 B& _/ [) |/ `# V# `9 | (1) 三维详细设计。详细设计一般都是在零件中完成,设计零件时可以直接参考本级或者上一级Skeleton文件,也可利用Copy Geometry的方法从上一级直接获得作为一个特征,也可参考本部件结构树下面的其他零件,但要注意的是不要互相参考,以免形成循环参考。从而展开零件的详细设计,在必要的时候可以创建装配特征,但要注意装配级别特征的显示水平。例如,图9中所有单板面板上下缺口可以通过一个装配级Cut即可完成。
1 h5 [/ t! n. c3 Z/ D/ U
- N' ^: x! v! U; F% U9 U7 @ (2) 零部件属性定义。在三维实体完成设计后,还有一个重要的步骤就是对每一个部件、零件进行属性定义,包括代号、名称、材料、创建者、属于哪个产品等,这是作为一个完整Prt的其中一部分。在绘制二维图时系统会自动根据模板将部件、零件的属性显示在零件图、装配图中。5 l% a$ a }* C
* i, e3 E. V. x9 \$ c Z3 W3 G+ R/ A* ?7 m/ G U, k8 o
& B( H X& B3 Q5 x& m+ p$ {0 B6 n
图9
0 a6 U; D; u( ^$ S" n+ S
9 w/ t. k- ~9 d* B' @8 o5.5 二维图绘制
0 y. R) O0 C5 o! X' s# w l
, d- R- q! P% ^/ F- E3 R 主要强调以下几点:所使用的模板一定要从服务器CommonSpace中调入,使所有的二维图保持基调一致,便于系统管理员管理和修改。2 g; D: Z4 \, l" o+ \
9 f( I3 Y: l3 O, Z0 T) `& v; p 基于本人原来使用三维软件的经验,像这类大型开发使用的软件不一定完全符合公司要求,也可能是我们感到的缺陷。要想完美,就需要二次开发。但我们在使用过程中最需要的就是想尽千方百计满足我们需求,这个方法搞不定再换个方法。因二维图中往往需要表达的因素最多,所以这种情况尤其突出。例如,整个视图的垂直、水平中心线怎样表达出?没有这个命令,我们可以在三维图中创建相应的中心线,虽然在三维图中没有用,但可以在二维图中来控制表达我们所需要的垂直、水平中心线。) X7 ?, {4 E3 v
- h0 ?+ W; [! Z! x- m) \$ {+ _' L! R
6 传输产品设计中几个重要问题 0 B3 J# Q1 }9 [) @" }
, B2 @/ R/ g5 {" H$ b* i
上面所讲的其实都是Top-down的通用设计思路和方法。下面针对传输产品讲几个重要问题,同时大家也可看到Layout、Program在设计中的应用。* ^9 P2 }2 e) L# ]
4 l* A9 Y. B& v7 W+ E' D
6.1 机柜由2.2m自动变更到2.0m和2.6m0 P; r$ Y, s. u4 S9 i
1 J3 z7 G2 l/ t* [- ]4 ]- [6 b
传输产品机柜高度有2.2m、2.0m和2.6m三种,深度有300mm和600mm两种,组合以后就有6种。当然全部设计完毕后每个产品都对应有自己的目录和文件,但为了节约设计周期,都应出自基本型机柜。但在设计过程中怎样控制随时可以变更任何一种,检查有无错误,重生成不失败呢?
7 z& r; G' |8 z5 E) @2 y# o( d9 C0 f& a. `5 k$ S
在项目实施过程中,主要采用了Layout、Program控制命令。Layout作为一个布局二维图,完全可代替AutoCAD中的原始方案图。上面可以用二维图形式表达出最基本的产品方案,可以设定Parameters表达所需控制的因素,而这些因素可以利用Declare命令直接同ZX234JA.PRT、以及每一级Skeleton、每一个Asm和Prt挂钩,然后直接由Layout进行所有变数控制。; I" o* q# ?- Q$ {; D4 S a- q
+ W0 D* Q3 x9 q" o/ N
如下面的Layout直接控制机柜的长、宽、高。我们可以直接更改表格中的参数,然后对整个装配进行重新生成即可。成功与否于设计过程中参考的选择、控制有很大关系。1 l. d) p5 m8 u% I( {
8 D* j# m5 k) s# C
7 J8 I$ r/ E0 P0 U1 V$ @7 k! U6 a/ Y
9 r( O T& f, l图10
) z7 z$ m3 Z) B. V6 W2 h- G8 `/ ], \) s, X/ D Y
还有一个问题:2.2m、2.0m和2.6m三种机柜装配的零件不尽相同,互相有不同,怎样控制在变动过程中自动实现增添或减少呢?其实在Pro/ENGINEER中所做的每一步工作都记录在案。我们可以利用Program进行控制每一步操作的存在与否,不但对于零部件、对于零件中的特征同样使用。例如下面一段程序(如图11所示),意思就是当机柜变更为2.0m时取消ZX234JA-01-13这个组件。这样一来,当由Layout发出变更通知后,在重新生成过程中这个变动就可以实现。
2 b$ y( w. w: D7 r# `9 l5 t# N' ^+ ~. L; t1 P
. ^ O3 H" @: M8 H8 K) r8 h' M; o+ X; ~7 E! S
图11& r' c) L% g9 r2 v8 Y
6 ^% a6 a b2 t3 z- _6.2 子架根据板位的多少和间距大小自动更新
# S! m! _7 X4 B. Y1 i7 `4 W7 f9 R V+ q0 k
如果能理解了上面的变更原理,对于子架根据板位的多少和间距大小自动更新的问题也就不成问题了,只不过控制的参数加多了,程序更改得也多了。看以下的Layout,完全控制着子架单板部件的形状、大小、位置。进而控制着整个子架的变化。判断子架单排、双排完全取决于这个参数second_number(第二排单板的个数)。当second_number=0时子架就应该自动变化为一排。# m" J3 S' L5 i6 f- y" N
; {$ O% z# o! d7 数据重用
, J& | a' i W8 c
, G# b7 W4 a4 j0 O; o3 W$ p% d 数据重用对于模块化工作非常重要,同时也可避免数据库中同样零件的重复放置,浪费空间资源。本项目实施中主要处理了以下两点。
) X. q P$ ^. i: y5 b1 K, b/ n: Q6 t2 r2 ?9 j( t3 ]( D
(1)将顶级Skeleton作为一个独立于装配树外的Prt,然后每一大部件级装配分别参考此文件。这样做的好处是,当机柜进行改型时所牵连的文件只有这个Prt,而跟其他例如子架、电源分配架毫无瓜葛。
$ d, \8 i( X' s6 i. T2 r! j: E
) B' e& i" G. Q. c" w- P$ k (2)当在进行产品改型时,可以根据前面提到的“详细设计阶段的步骤”,在基本型上进行变更,然后利用Pro/INTRALINK的copy命令将需要做改动零件重新命名,在CommonSpace中另立门户,单独放置,对于借用件不必处理,它会自动找到所在的目录。 y# l; a& C5 k* j, l
4 ?3 w, z5 g7 B {
1 w2 {% z! ~# `2 D7 z% W; [1 k5 H1 \' V4 ?$ u( M& {
|
|