基于三维模型的消耗式装配工艺方法研究*

余章勇 王 亮 郑晋峰

(①武汉开目信息技术股份有限公司,湖北 武汉 430070;
②西安飞机工业(集团)有限责任公司,陕西 西安 710089)

装配是产品生命周期的重要环节,在现代机械制造业中,产品装配占用了超过40%以上的生产费用,装配所需工时占产品生产制造总工时的40%~60%,装配结构复杂的产品,装配占比会更高[1]。以设计的三维模型为基础,实现设计模型在三维装配工艺设计各个环节的有效应用,并进行可视化的装配工艺规划,从而提高产品的可装配性、齐套性、一致性和完整性,成为企业提高产品的装配生产效率,降低产品成本,赢得竞争优势的迫切需求。

从设计到制造过程,也是一个物料清单(BOM)的变迁过程。首先是设计BOM(EBOM),它是由产品数据管理(PDM)系统产生的,一般由产品设计部门根据产品装配系统图以及产品零/部件明细表等产生,用以描述产品设计结构。工艺BOM(PBOM)基于EBOM产生,其根据企业的实际加工能力和制造装配过程需要,对产品结构进行工艺分解,以适合工艺过程管理和工艺文件编制的需要。最后,基于PBOM建立装配件的装配工艺和各零件的制造工艺,加入零/部件制造方法和装配顺序,并补充工艺资源、工时和物料等信息,详细描述产品的制造过程,最后形成制造BOM(MBOM)[2]。

在航天、航空等复杂装备装配的过程中,比较典型地采用了这种BOM变迁的模式。例如在飞机装配工艺过程中,以EBOM为基础,依据装配方案,开展面向制造分工的工艺规划,并进行装配结构树构建,形成面向装配过程的PBOM。之后,以装配工位为基础构建装配工艺指令(AO),形成以装配指令清单(AOL)为主要形式的装配过程规划方法。此过程中,通过单一设计数据EBOM为唯一的数据来源,消耗EBOM中的设计零组件进行PBOM的构建和装配指令编制,确保实现工程数据集及更改信息在设计与制造之间完整、系统地传递,实现工程设计数据集与制造数据集的一致性、准确性及可追溯性[3]。

消耗式装配的基本思想是以消耗工程物料清单产品零部件的方式重构出装配物料清单,在构建装配物料清单的过程中,保证零部件能够完整、正确地获取,保证产品数据的一致性[4]。对于复杂产品,需要考虑从产品设计到工艺装配过程,实现以设计BOM(EBOM)为单一数据来源的装配任务规划和装配工艺设计,主要包括如下的业务活动和要求:

(1)基于设计BOM(EBOM)产生PBOM。依据装配工艺任务的需要,按装配工艺任务要求调整EBOM结构产生PBOM。这种调整一般包括移动零部件到其他的层级、增加虚拟件等过程。(2)从PBOM生成MBOM。基于工艺装配模型,分解装配过程。典型的包括按工位或工作中心分解、按工序分解等。(3)把物料分解到工位或工序上,完成其他相关装配说明。

在以上各个过程中,无论零部件在哪一个BOM中,均需要保持模型结构的正确性。一方面,需要保证模型文件与各个BOM之间的关系的正确性;
另一方面,由于BOM变迁过程中的零部件在产品结构中的位置发生变化,需要能够正确地表达三维模型的装配关系,从而保证三维模型显示的正确性。对于装配过程,则需要可视化地显示“已装”和“未装”的三维模型视图,以准确地让装配设计人员掌握当前装配的具体情形。同时,由于设计是所有信息的源头,无论是PBOM还是MBOM,其信息都要求可以追溯到对应的EBOM相关信息。

本文以可追溯的单一数据源信息模型为基础,建立装配工艺各过程的三维模型和BOM之间的关系,并能够从装配工艺过程的装入物料回溯到对应的PBOM和EBOM中的零部件和三维模型信息,从而支持基于模型的消耗式装入物料分配,并提供相应的装配检验和校验机制,确保装配过程物料的完整性和一致性。

1.1 BOM静态数据模型

产品由部件模型和零件模型组成,部件文件由下一级零件组成。每一个零件都可以独立存在,能够被不同的部件使用。层级的零部件关系构成了产品结构树。BOM和三维模型是表达产品结构的两种形式,它们在数据上是基本一致的。前者更偏重于数据及其关系,能够依据设计或工艺要求定义更多的属性内容,并且以结构化的方式为生产系统提供数据;
后者以三维CAD为基础,强调可视的形象化表达,并更多地提供零部件的尺寸、装配关系、外在形态、设计和工艺特征和基于模型的三维标注等信息[5]。在一个全三维设计场景下,BOM中的每一个零件,实际对应着一个具体的模型文件(零件模型或装配体模型),如图1所示。

图1 零部件结构及其三维模型

在三维模型中,在部件中存储有零件模型的引用、装配关系和位姿信息(本文也称为零部件的坐标或位姿坐标)。在模型文件的三维空间中,零部件的位姿是由一个4×4阶的齐次变换矩阵V决定的:

式中:Xv、Yv、Zv分别为装配件位姿的控制坐标系(即建模坐标系)3个坐标轴的单位方向向量;
(Xt,Yt,Zt)则为坐标原点,这些参数均是相对于其所在层次结构中的父级坐标系而言的。原因是零部件存在借用的情况,同一个零部件在不同的部件下,其相对位置是不同的。因此,可以把三维位姿信息作为装配关系的一个属性来表达。

PBOM是从工艺视角对EBOM进行的修改,而MBOM是从装配制造的视角来看待的。前者包括定义虚拟件、中间件和合件,以及为服务于装配过程需要的层级调整等,后者则是把零部件以装入物料的形式分配到工序或工位上。这些业务过程对于装配过程的要求如下。

(1)虚拟件是在PBOM中出现,但在实际生产中并不制造,也不存储的部件,在MBOM中不需要装配虚拟件,仅装入其子零部件,但是应保证数量关系的准确性。(2)中间件/合件:在EBOM中不出现,而在实际生产中因为工艺要求,既要制造又要存储的部件。此时需要根据工艺要求,创建中间件并把一些子件移到该中间件的子级中。合件一般作用到零件级,例如两个零件焊接后形成一个新件进行加工或装配的场景。中间件一般是作为整体来进行装配的[6]。(3)MBOM的组成可能包括专业、工序、工步和零部件(在MBOM中也称为装入件)等。其中,装入件对应的就是PBOM的零部件。在MBOM中,装入件的数量和PBOM中对应零部件的数量是一致的。

EBOM-PBOM-MBOM的关系如图2的E-R(实体-关系)所示。

图2 多BOM的E-R图

以上的自关联均为单层结构,完整的产品结构通过单层结构的“链接”串联而成。PBOM节点的中间件等类型本身也是零部件的一种,因而其关系模型和EBOM是完全一致的。对于MBOM,可以抽象出“MBOM节点”来表达结构关系,根据不同类型,这个节点用不同的实体来描述。

在图2显示的实体关系图中,可以看到以EBOM的零部件为源头,直接或间接地记录了三维设计模型、轻量化模型、工艺BOM和MBOM节点的关系,这样就能够通过它们的这种关系“知晓”相互的存在,且模型数据仅需要保存在EBOM端,从而保证数据的可追溯和唯一性。

1.2 多BOM变迁过程信息模型

在BOM变迁过程中,需要能够追溯数据来源,主要体现在如下几个方面:(1)三维模型的唯一性和正确性。不能因为零部件在多个BOM之间的变迁、移动等导致三维模型的关系或其位姿坐标信息等错误。(2)BOM数据来源的唯一性和关联性,所有零部件信息均可以追溯到设计源头。(3)在BOM变迁过程中保证上下游数据的齐套性和一致性。

以图3为例,通过EBOM产生PBOM后,PBOM中的“g”从子级“b”下调整到产品“m”下。由于“b”有3个,因而调整后,“g”的数量需要修改为3,以保证零件数量不发生变化。同时,PBOM中增加了中间件“T”,把“a”和“b”两个部件移到它的子级中;
“a”为虚拟件,实际装配只装配它的子零件;
“c”、“T”是子装配,它们先装配完成后整体装入到产品中。

首先从一般意义上定义和表达此BOM变迁过程的信息处理模型,为计算机程序实现提供算法依据。

定义1:零部件集合P。P是EBOM以及PBOM中的所有零部件、中间件、虚拟件的集合。如图3中,PEBOM={m,a,b,c,d,e,f,g,h},PPBOM={m,T,a,b,c,d,e,f,g,h}。

定义2:装配关系符号“→”。Pi→Pj,表示Pi是Pj的父装配。

定义3:装配关系四元组A(Pi,Pj)=。其中,Pi∈P,Pj∈P,Pi≠Pj,Pi→Pj。

这里,Pi,Pj是存在父子关系的两个零部件元素,Pi是Pj的父,Xj是Pj相对于Pi的数量,X>0。集合{V1,V2,…,Vx}是每一个子零部件实例相对于父零部件的位姿矩阵的集合。使用PjVj表示装配关系的每一个零件实例。如图3中,EBOM的装配关系A(a,e)=,V1和V2是e的两个实例的位姿矩阵。

从定义3还可以看到,装配关系是一个单层关系,结构树上任意位置出现的装配四元组实际是同一份数据,如图3中EBOM的A(a,e)出现在两个不同的分支上,但它们是同一个装配四元组。

定义4:产品结构树T=。如图3的EBOM树可以表达为:TEBOM=

图3 BOM变迁示意图

MBOM上可能还有专业、工序、工步和子装配等其他信息,为做统一的处理,可以认为它们也是一种特殊的“零部件”。例如,图3中MBOM的“m-工序10-e(2)”,可以表达为两个四元组:e(2)”,可以表达为两个四元组:

这里式(1)中,子节点“工序10”不是一个零部件类型节点,但为了统一处理方便,可以把V1用单位矩阵或空集合来表示,从而可以统一BOM的定义。

定义5:节点路径Path。零件Pi在结构树T上从节点Pi到节点Pj的路径记为:Path(Pi→P2→P3→…→Pj)。零件Pi在结构树T上从节点Pi到节点Pj的所有路径的集合记为Path(Pi,Pj)。

定义6:零件在一个结构树某个路径上的数量可以表示为:

其中:Xi是A(Pi-1,Pi)四元组中的装配数量X,对于根节点X1=1。指定某个BOM上的路径可以记为:NPBOM(Path((P1→P2→P3→…→Pi)))。

定义7:零部件Pi在结构树TEBOM、TPBOM上的全部路径为集合{Path1,Path2,…,Pathk},则在树上零部件Pi的总数记为:

这里还需要排除一些不需要计算的节点。对于PBOM,虚拟件是不需要装配的,对于MBOM,则仅需要计算装入件即可。

定义8:位姿坐标运算≯和其逆运算≮。若有关系A(Pi,Pj)和A(Pj,Pk),PjVj和PkVk是存在装配关系的两个零部件实例,它们相对于它们父的位姿矩阵分别是Vj和Vk,则PkVk相对于Pi的位姿矩阵V=Vk≯Vj,其逆运算则表达为Vk=V≮Vj。在结构树上,≯相当于把零件实例上移一层,≮相当于把零件实例下移一层。这两个运算表达了三维零件在结构上的调整时的位姿坐标的计算方法。

1.3 PBOM及消耗式装配过程

通过以上定义,可以表达几个主要的BOM变迁的需求的实现方式。

(1)PBOM中的零件层次调整

以图3的零部件“g”调整为例,在PBOM上把“g”移动到“m”下,在结构树上体现为:从TPBOM的路径“Path(m→b→g)”,去掉“g”,增加路径“Path(m→g)”。以下用四元组运算来表达此过程:

①然后增加一个装配关系四元组“A(m,g,Xg,{Vg1,…,VgX})”,此为移动后的目标节点。

②计算装入数量:Xg=N(Path(m→b→g))÷N(Path(m))=3,若不能整除,即表示“g”无法移动到“m”下,以此保证零部件数量的一致。

③计算位姿矩阵。位姿矩阵集合为{Vg1,Vg2,Vg3},其每一个元素的计算方法为:Vg1=V4≯V1,Vg2=V4≯V2,Vg3=V4≯V3。

④从集合“{A(m,b,3,{V1,V2,V3},A(b,g,1,{V4})}”中,删除后一个装配关系4元组。移动完毕。

以上方法也支持一般的场景,其过程基本相同,包括:①如果需要移动单个零部件实例,则按实例数量拆分四元组;
②在目标路径上创建新的四元组;
③用源路径上零件的数量除以目标路径上零件的数量,得到的结果即为新的装配四元组的数量;
④使用≯运算符在路径上依次运算至两个路径共同父的位姿坐标,使用≮运算符运算到目标路径下,这样就可以求得四元组的位姿坐标集合;
⑤删除移动的装配四元组。

(2)消耗式分配

从PBOM到MBOM,通过消耗式分配的方式来进行。对分配到MBOM上的零部件实例,分配的时候在界面上即时显示减少的数量,分配完毕后界面标记状态,视觉上(在结构树上通过颜色设置,在模型浏览界面中隐藏显示)和操作上都不可再分配。

分配过程比较简单,以图3为例,把PBOM中的路径“Path(m→c→a)”下的“eV1”、“eV2”装入到MBOM的“工序10”下,只需要在MBOM中新建四元组即可:

A(工序10,e)=<工序10,e,2,{V1,V2}>

其中,V1/V2是原PBOM路径“Path(m→c→a)”下“eV1”、“eV2”的矩阵坐标。

在MBOM中,为记录装入件的来源,还需要保存物料在PBOM上的路径。这个路径作为零部件实例的标识信息的一部分。换言之,在MBOM中,装入件的零件标识是PBOM的路径加上零件标识构成的。如上面的e,实际应表示成:“Path(m→c→a→eV1)”和 “Path(m→c→a→eV2)”,可以简单用此路径来表示MBOM的零件实例。

对于消耗式分配,可以通过零部件装入的齐套性进行校验。一般的,从PBOM结构树TPBOM生成TMBOM,按如下方式校验装入情况。

①装配齐套:对任意一个元素p∈P(TPBOM),p不是虚拟件,均有:

②已装:已装是指PBOM上的某一个路径的零件实例装入完毕的情形。可以表达为对任意一个元素p,在PBOM上的一个路径Path(pi),有:

表达式右边的pi指以PBOM路径pi为标识的装入件实例。

③欠装:欠装指PBOM上的某一个路径的零件实例部分已经装配的情形。可以表达为:

④过装:过装指PBOM上的某一个路径的零件,其数量小于在MBOM上的装入该零件的所有实例之和。这种情况发生在装配完毕后,由于PBOM变更导致该路径上数量减少的情形。表达式为:

2.1 消耗式装配过程的主要数据结构设计

从EBOM到PBOM的过程比较简单,一般都是复制后再进行修改。从PBOM到MBOM,需要维持物料的一致性和完整性。在操作界面上,需要直观地显示PBOM结构树、MBOM结构树及各自的三维模型,并能够通过三维模型直观地进行装配过程。

在程序实现上,需要在内存中加载全部的PBOM和MBOM信息,以实现消耗式的装配过程。界面层可以在用户展开结构树的时候,依据内存数据来计算显示状态。依据前述的信息处理模型来设计的内存数据结构示意图如图4所示。

图4 PBOM-MBOM装配过程内存结构

(1)基本的数据结构是装配四元组,使用HashMap(一种基于哈希算法的快速查找数据结构)来存储PBOM和MBOM的装配四元组集合,来表达零部件的结构关系。

(2)PBOM中的零部件集合单独用一个数组来记录,每一个零部件还记录着它的相关属性信息(如名称、图号等)及关联的EBOM零件标识。通过EBOM标识获取模型文件,并保存着指向本地文件路径的引用。对于MBOM,也通过同样的方法进行处理,但追溯跟踪只处理装入件,不处理工序等MBOM上特定的类型。

这样,装配四元组集合和对应的零部件集合,就完整地表达了PBOM和MBOM的结构。

(3)在PBOM结构上,动态计算出每一个节点的路径、该路径的数量N(Path(Pi),也使用一个HashMap来存储。当零部件拆分时,根据路径和实例数进行拆分。这里,路径加上零部件实例的序号,标识了唯一的一个零部件实例。

(4)计算每一个零部件的总数量Sum(TPBOM,Pi),和零部件集合P一一对应,用于整体的装配数量的校验。

(5)MBOM的装配四元组不实际存储位姿坐标。它通过装入件的基于PBOM路径的实例标识来获取PBOM上的位姿坐标。

(6)执行装入过程时,在MBOM中的节点集合和HashMap中插入对应的零部件信息和装配元祖信息即可。

(7)计算装入状态。按路径比较MBOM中已经装入的零部件实例与PBOM中对应的零部件实例,计算欠装、过装、已装等状态,并更新用户界面的显示。

通过以上过程,即可完成PBOM、MBOM的消耗式装配的装入、状态计算、模型显示和数据源头追溯等要求。

2.2 消耗式装配工艺系统实现

基于前述的信息模型、过程模型和设计方法,实现了基于EBOM-PBOM-MBOM变迁过程以及消耗式装配工艺功能。系统包括PBOM的结构调整、三维模型显示、单一数据源追溯、消耗式装配工艺过程等功能,在企业的实际应用中取得了较好的效果。

(1)PBOM管理界面

系统通过零部件结构及其轻量化模型实现了产品结构的三维可视化浏览。如图5的PBOM界面所示,左边结构树的零部件节点和右边的模型区域是联动的,节点对应的零部件模型在用户切换时,加亮显示右边的零件。

图5 PBOM及其三维模型界面

从EBOM创建PBOM后,支持在PBOM上进行结构调整,可以通过“查看参考零部件”追溯EBOM源头。拆分是一个视图状态,只在内存结构和界面上显示。但是,通过剪切、粘贴方式移动拆分后的零件后,结果会保存回数据库中。如图5序号为7的零件原数量为3,拆分后可以独立的显示3个节点,每一个节点表达为该零件的1个实例,对应的三维模型区域加亮对应的零件实例模型。

PBOM上,还可以通过“添加节点”等操作来添加中间件等,通过移动节点来把其他层级的零部件移动到中间件节点,从而实现结构的调整。

(2)消耗式装配工艺界面

图6表达了“齿轮箱”产品的消耗式装配工艺应用界面。其中左边界面为MBOM及其三维模型界面(显示已装件),右边为PBOM及其三维模型界面(即待装件)。系统首先基于PBOM结构树计算其每一级零部件的总数量(即“N(Path(Pi))”)。装入时,通过鼠标点击方式,把右边的PBOM的零部件选择到装配结构的工序中,产生工序的装入件和数量,同时记录其来源的PBOM结构树的路径。装配过程中,根据装入件的路径计算两边结构树的各零部件的数量差异,就可以知道哪些零部件已经完全装配,哪些还没有装配完毕(欠装)等。

图6 消耗式三维装配工艺编制

用户进行装入件分配时,树上的节点用颜色来表达装入状态。通过鼠标在三维模型中选择零件进行装配,等同于在树上拆分然后装入到工序中,且模型中会消隐该零部件。同样,左边的MBOM的三维模型图中,仅显示装入后的状态,并且这个装入状态还是根据工序的装入次序来显示的。这样,从视觉效果上,在三维模型的展示界面中,装入时PBOM的零件就会“移动”到MBOM中,从而实现消耗式装配的效果。对“齿轮箱”的每一级零件依次进行“选择装配”到MBOM的工序中。当所有零部件(不包含中间件)都装入完毕后,对应的PBOM结构树全部为“灰显”状态,即表示全部零件装入完毕,产品的装配过程结束。之后,当PBOM发生变更时,新版本的PBOM中可能会删除或增加零部件,此界面的PBOM在关联到新版本PBOM时就会出现过装的情况。界面上,均可以根据装入的状态做不同的颜色显示,以提示用户注意装配的齐套性是否满足要求。

本文以EBOM-PBOM-MBOM变迁过程研究为基础,结合消耗式装配工艺的特点和要求,建立了可追溯的BOM静态信息模型和描述BOM变迁过程的动态模型。提出了基于路径与零件实例的从PBOM到MBOM的物料分配方法,并通过可追溯的BOM关联关系获取模型文件,使用三维坐标“动态运算”的方法来保证三维模型组装与显示的正确性。设计与实现了一种基于三维模型的消耗式装配工艺的内存结构,并依据此方法进行了系统功能实现和验证,证明本文的方法满足基于模型的三维装配工艺编制的要求。

猜你喜欢位姿实例消耗玉钢烧结降低固体燃料消耗实践昆钢科技(2022年4期)2022-12-30转炉炼钢降低钢铁料消耗的生产实践昆钢科技(2022年1期)2022-04-19降低钢铁料消耗的生产实践昆钢科技(2021年6期)2021-03-09我们消耗很多能源小学科学(学生版)(2019年4期)2019-05-11基于共面直线迭代加权最小二乘的相机位姿估计光学精密工程(2016年5期)2016-11-07基于CAD模型的单目六自由度位姿测量光学精密工程(2016年4期)2016-11-07小型四旋翼飞行器位姿建模及其仿真湖北工业大学学报(2016年5期)2016-02-27完形填空Ⅱ高中生学习·高三版(2014年3期)2014-04-29完形填空Ⅰ高中生学习·高三版(2014年3期)2014-04-29基于几何特征的快速位姿识别算法研究组合机床与自动化加工技术(2014年12期)2014-03-01

推荐访问:装配 消耗 模型