PDM作为CAD/CAPP/CAM(3C)的集成平台,集成了所有与产品相关的信息。企业的产品开发效益取决于有序和高效地设计、制造和发送产品。PDM可以帮助组织产品设计,完善产品结构,修改、跟踪进展中的设计概念,及时、方便地找出存档数据以及相关产品信息。它还可以协调组织整个产品生命周期,如设计审查、批准、变更、工作流优化以及产品发布过程事件。它能很好地集成CAD,CAE,CAM和CAPP单元技术,是CIMS (计算机集成制造系统)的核心部分之一[1]。在企业实施PDM的过程中,如何创建用于PDM产品结构树BOM或MRPII物料清单BOM(Bill of Material)的高质量的零、部件和物料编码是PDM系统得以成功实施的关键因编码系统是PDM系统的基础,编码的优劣是PDM系统运行效率和企业能否接受PDM系统的关键性指标。
为了把产品结构树与产品项目表联系起来,要建立产品结构树与产品项目表之间的双向指针。将产品结构树根节点的父节点指针xmxh指向产品项目表中该产品的项目序号[6]。(在产品项目表中项目序号是产品的唯一性标记,也采用字符型)。并把产品结构树根节点的节点指针rf定义为为: 项目序号+ "R "
update treeta ble where PL = 0 set xmxh =项目序号,rf = 项目序号+ "R"
第1层节点:
以根节点为父节点的节点是第1层节点,其父节点指针xmxh 即为根节点指针:
update treetable set PL = 1 ,xmxh = 项目序号十“R”where fcode =根节点代号其节点指针r f 满足节点指针定义公式:
update treetable set rf = xmxh + right ( string(l000 +seq) , 3) where fcode =根节点代号
以下各层运用子节点链接算法完成产品结构树的建立。
2.2.2.2 子节点链接算法
m = 1//从第1 层起(pl=1=m) 逐层循环
do while.t.
select seq,code,rf from treetable where PL=m
//得第m 层节点集S{P[k]}设有N个节点,k= 1 ,2 ,......N//
if N = 0 //S{P[k]}为空集//
EXIT //第m层已无节点,m - 1层为最底层//
Else //第m 层有部件或零件或标准件等//
For k = 1 to N II逐个取出节点P [k]//
Update treetable set pi = m + 1,xmxh = P[k].rf ,
rf = P[k].rf 十 right(string (l000 + seq),3)
where fcode = P[k].code
//给节点P[k]的所有子节点赋予层号、父指针、节点指针//
End for
End if
m=m+l//研究下l层节点
End do