资源描述:
《BOM的产品层次结构自动生成算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第28卷第3期航空计算技术1998年9月BOM的产品层次结构自动生成算法张学宏武韬胡林平(中国航空计算技术研究所西安·710068),,摘要以数据库技术为基拙本文提出了一品制造常用于编制对低层外购件和自制件计划需。。,种自动生成BOM表的产品装配层次的递归算法求BOM表根据不同的需求会有多种形式都可、、可靠。。算法简洁穗定从这个多层BOM派生关健词产品层次结构BOMCAD日层CAMPDMMRPll-产一山·····B(1)10〔3),C(1)·····⋯⋯1层lJ.一引言一20〔—1)一D(2)30(2)40(1)50(1)⋯2层BOM(BillsO
2、fMaterial)反映了一个产品所有一,零部件的构成层次关系和数量关系是定义产品结10(1)3层构的技术文件。在产品从设计到制造的全生命周期,。产品A的BOM结构图中BOM的管理与维护是一项很重要的工作工,程设计部门完成产品设计后生成最终产品所有零,EBOngineerng一产品A的多层BOM表部件的清单称之为M(Ei层次零部件号装配数量装配件号,}}}BOM)设计过程中的任何工程更改都会反映在EBOM上。产品从设计部门提交到制造部门时,制405030102030ABcD造部门根据生产的需要会在EBOM的基础上生成ACBCD。MBOM(Manufa
3、eturing一BOM)所以BOM是,CAD与CAM系统的联系纽带是产品数据管理,系统(PDM)的主要管理对象同时又是MRPll系统的基础数据。1BOM的结构BOM可以是自顶向下分解的形式或自底向上追踪的形式。分解是从上属件开始将其展开成下属件;追踪是从下属件开始得到上属件。在BOM,。中将上属件称之为父件下属件称之为子件下图是。A2BOM的计算机管理及装配层次关BOM以树形结构表示的例子表示最终产,。品括号中的数字为数量关系系的生成算法,、A产品的多层BOM表如下表所示表示产品传统的手工编造BOM表的方法不仅费力费,所有的父子关系按层次列出了下属零
4、部件和每个时、繁琐,而且容易出错。采用计算机对BOM进行。BOM,。零部件相对父件消耗的数量多层有利于产管理是非常有效的:收稿日期1998一07一08航空计算技术1998年9月,。,BOM表可以用关系数据库的表进行管理其量愈大企业产品零部件数据往往十分庞大人工。:几乎不可能准确无误地建立表类型定义为BOM中的层次关系,,,-,BOM(part#assembly一part#Ievelnum以数据库技术为基础的递归生成算法可以精确地。ber)进行BOM层次结构的生成,,,-其中BOM为表名part#为零部件号as本文给出一种生成BOM表层次关系的简捷se
5、art,,-,oeruererrmbly一p#为装配件号level为层次号num算法是在PwBild上用Sip语言嵌套,。ber为装配数量通常在计算机中BOM是以单层SQL语句实现的当然这种算法可以用于任何关的形式I一。(即只给出每个上属件及其下属件的关系)系数据库宿主语言嵌套SQ语句实现因为我们,,存储的单层BOM相当于表1中没有层次这一列要处理的对象是数据库中的表数据故算法使用了。,SQL的表BOM的数据可以采用手工输人或编制接语言中的游标来处理数据库表中的多行数。口程序从CA。据D系统中自动输人,算法中;level是全产品结构之间的装配关系是一
6、种递归关系SQLCA是SQL控制变量,。即一个零部件本身既可以是上属件又可以是下属局变量表示某零部件相对最终产品所在的层次。,,算法一:生成多层BOM件产品愈复杂递归的层次愈多零部件装配的数(其中调用算法二)PROGRAMGENERATE_BOMBEGINeursor_o*二DECLAREbmCURSORFOR/定义游标/J,SEIECTpart#assembly一part#FROMbom;。ursor_o;*二OPENbm/打开游标/,.oeve,DO/逐行计算bmll列的值/eve:ll=0。ursor_o,,二FETCHbm/从游标中取数赋给/
7、:,:;,,*INTOp#aP#/局部变量p#aP#/_.,IFSQIoe!,CASQICd=0THEN/检查取数是否成功/un_o二,eve,fbm(p#)/调用算法二计算ll的值/o,p#二UPDATEbm/保存零件相对最终产品/o.:eveeve*eve二SETbmll~ll/所在的层次数据ll/art#=:P#ANDasse一Part#:aP#;WHEREpmbly=ENDIF.LOOPILESQIJ碑oe,,长WHCASQICd一。/处理完毕终止循环/eursor_o;二二CLOSEbm/关闭游标/END:un一o,。算法二算法fbm用递归
8、方法逐层回溯以确定某部件在最终产品的层次树中的层次PROCEDUREfun一ovarPt#:bm(STRIN