PLM管理中涉及到两个重要数据的管理:设计BOM(EBOM)和工艺BOM(PBOM),这两个BOM是在产品设计阶段产生,它们为后续的生产、制造提供数据源。在设计阶段,工程技术人员通过各类CAD软件绘制出产品的2D或(和)3D图样后,这些图样将进入PLM系统中进行管理。这些图样内部包含了产品结构信息如装配关系、装配数量、零部件代号、物料编码、名称、材料、重量等信息,这些信息在图样进入到PLM时需要提取出来以生成设计BOM,设计BOM是产品各类数据在PLM中进行组织的基础,它可用于输出各类产品数据报表、为工艺BOM的产生提供源数据、输出到ERP系统中。
在产品设计阶段的工艺编制阶段,工艺人员借助设计BOM,进行各个零部件的工艺加工信息的编制,如编制工艺路线、工艺规程、材料定额等,这些信息包含在各类工艺文件中,这些工艺文件在进入PLM管理时也需提取工艺信息,以形成工艺BOM。从以上的PLM管理过程中可以看出,设计阶段产生的各类图样、工艺文件在导入到PLM系统中进行管理时,提取这些文件的内部信息是个必要的过程,由于各类CAD的提取接口、数据结构的差异,需要提供一个统一的数据结构和方法来供PLM系统使用。
1 提取器
在提取CAD文件时,PLM系统启动统一的提取器,提取器识别出这个CAD文件的类型,根据文件类型启动对应的提取组件,如表1所示,各个提取组件使用了各个CAD API接口,提取组件提取出CAD文件内部的数据,这些数据在结构、内容上是千差万别的,提取器需要将这些数据向统一的Result接口进行转换,一个Result代表了一个类型的数据,如零部件、文档、参数化配置等,Result和Result之间的关联关系表述了零部件之间的装配关系或者零部件和文档之间的包含关系或者零部件的各个参数化配置等。
表1 提取器配置表
(1)提取组件配置定义在提取器配置定义中,提取器需要配置3D文件类型、提取组件之间的映射关系。
如表对应于Prt、ASM的Pro/E文件,使用DLL文件ReadProE5.dll中的Retrieve函数;对应于3D文件格式为SldPrt、SldDrw、Sldasm的SolidWorks文件,使用DLL文件ReadSolidWorks.dll中的Retrieve3D函数。如果有其他的3D文件,可以通过提取器配置定义来增加或修改。
这类函数的输入参数和输出参数都相同,输入参数是要提取的文件名,输出参数是提取文件生成的Result结果集。
Result结果集是一个树形层次结构,如图1所示。
图1 Result结果集树形层次结构
每一个Result结果集中都包括了它的子Result结果集,子结果集是一个数组对象,可以有多个,如果没有子,则它的子结果集就为空。
(2)Result结果集的处理在提取CAD文件生成Result结果集后,提取器会对Result结果集进行统一的处理,处理包含将Result包含的对象属性进行转换、合并、清理以及将Result结果集转换成设计BOM(或工艺BOM)。提取器需要将最终转换生成的设计BOM(或工艺BOM)导入到PLM系统中,在PLM系统中可能已经存在类似的BOM结构,提取器负责将要导入的BOM与PLM中已有的BOM进行比较合并。如果两个BOM中对象相同,但两个对象不属同一个产品则会形成借用关系,属同一个产品的,直接进行属性合并;如果对象是新增的,则直接加到PLM中的BOM中。程序执行流程如图2所示。
图2 提取器对Result结果集处理流程
提取器里的BOM与PLM中的BOM的相同对象的判断是根据关键属性来进行的,每种对象类型定义不同的匹配属性,比如零部件,可以定义物料编码作为关键属性,如果提取的零部件和PLM中的零部件物料编码相同,则认为这两个零部件是同一个,此时提取器就可以根据前述的处理过程来生成借用关系或者进行两者的属性合并。处理Result结果集是个递归遍历的过程。
2 结语
CAD数据的统一信息提取着重解决不同CAD数据以一种统一的提取方式、统一的数据结构存储实现与PLM系统的融合,这种统一方式同时具有良好的扩展性,对于后续开发的CAD系统能够实现快速接入。
目前,2D文件根据其标题栏和明细栏所包含的信息进行提取已经成熟,没有太多难点,但3D文件由于没有标题栏和信息栏,只能通过枚举其实体结构以及实体里包含的属性来进行信息提取,其难点在于需要掌握各个CAD软件有关信息提取的API及其返回的数据结构,比较费时费力,另外由于3D文件包含的信息量很大,而PLM要提取的信息只是其中的一小部分,因此高的提取效率也成为一个难点。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:在PLM中CAD文件信息提取的统一方法