SolidWorks模型与工程图批量导入PLM系统方案
针对PLM系统无法以正确的层次结构关系批量导入SolidWorks 创建的模型与工程图的问题,通过对SolidWorks 以及该PLM系统的二次开发使两者进行深度融合,采取装配体模型结构树遍历、信息分
产品应用
针对PLM系统无法以正确的层次结构关系批量导入SolidWorks创建的模型与工程图的问题,通过对SolidWorks以及该PLM系统的二次开发使两者进行深度融合,采取装配体模型结构树遍历、信息分类存储、层次关系循环搭建、工程图通过唯一编号查找源模型等方法,制作了零部件模型信息批量提取、模型批量入库、工程图批量入库、文件检出检入四个功能模块,实现了模型与工程图信息的快速提取与结构搭建,提高了该PLM系统对SolidWorks文件的兼容与集成性。所开发的功能扩展插件已在某公司所属的TI-PLM系统中得到了运用。
1 引言
PLM系统作为以流程为核心的产品管理系统,借助其多样、广泛的协同方式,建立了对企业各型号产品从设计、工艺、制造、使用、维护、直到最终报废的全生命周期的产品数据应用及管理。PLM系统与PDM(产品数据管理)系统在功能上讲是“包含”与“被包含”的关系。PLM是对所有产品数据的全方位,多角度,全生命周期的管理技术,它涵盖了PDM的所有概念与功能。
在整个产品的生命周期中,PLM系统与CAD(计算机辅助设计)应用程序的良好集成是实现产品数据管理的先决条件。一个PLM系统缺少了这样的条件便无法对企业中已有的二、三维数据文件进行有效的操作与管理。PLM系统与PDM系统在图文档管理部分是相似的,因此可以将PDM系统与CAD系统集成模式应用到PLM系统与CAD系统集成模式中。PDM(PLM)系统与CAD系统间有三种集成模式。
(1)封装模式是指把对象的属性和操作方法同时封装在定义对象中。用操作集来描述可见的模块外部接口,从而保证了对象的界面独立于对象的内部表达。
(2)接口集成模式是较封装模式更高层次的集成模式,能够根据CAD中的装配树自动生成PDM中的产品结构树,更加适合于PDM系统与三维CAD软件的集成。
(3)紧密集成模式通过对CAD的图形数据和PDM产品结构树的详细分析,制定统一的产品数据之间的结构关系,只要其中之一的结构关系发生了变化,则另一个自动随之改变,始终保持CAD的装配关系与PDM产品结构树的同步一致。
如今,SolidWorks在我国制造业中应用广泛,企业中也出现了大量的装配体、零件和工程图文件。为了能够对企业中的这些数据进行有条理的存储并对它们进行基于生命周期的管理,国外出现了许多PLM系统。国外知名公司的PLM产品虽然功能强大,但由于其价格昂贵且较难满足企业个性化的需求。因此国内企业大多更看好我国自主的PLM系统。
清软英泰公司的TI-PLM系统就是针对国内制造业开发的一款自主PLM系统,它实现了单个企业及企业集团的从设计、工艺、制造、使用、维护、直到最终报废的全生命周期的产品数据应用及管理。但TI-PLM系统存在无法与SolidWorks集成的问题,导致了模型入库时难以在PLM系统中搭建出正确的层级结构。
正确导入模型间的层级结构关系是PLM系统图文档管理的关键点,若没有正确的结构则无法完整表达产品的信息,更无法完成产品生命周期的管理。为提高TI-PLM系统与SolidWorks的兼容性,选择以接口集成模式并使用.net为开发语言,通过对该PLM系统与SolidWorks的二次开发,采取装配体模型结构树遍历、信息分类存储、层次关系循环搭建、工程图通过唯一编号查找源模型等方法,实现了面向TI-PLM系统的SolidWorks模型与工程图批量出入库功能。
2 SolidWorks模型信息批量提取
2.1 模型统一编号
虽然有许多企业在使用SolidWorks,但是每个企业大多都有自己的一套模型编码规则与使用规则。若要达到SolidWorks模型批量出入库的目的,首先应解决构建三维模型标准的定制问题,保证企业标准的统一贯彻,便于产品数据信息的管理和共享。在由SolidWorks创建的三维模型中,用户在通过编辑摘要信息中的属性信息(自定义信息与配置信息,如图1所示)后,每个零部件模型都具有了在企业范围内的唯一编号以及其名称、材料等信息。
图1 模型属性信息
2.2 模型信息提取方法
为了实现SolidWorks模型批量入库,首先需要对所入库的顶层装配体进行信息提取并将所提取出的信息存储以便后续入库过程使用。对于模型信息提取方法共有两种,第一种“直接遍历”法:对所有入库文件进行信息提取;第二种“顶装配体遍历”法:仅对所入库的顶层装配体进行遍历与信息提取。
直接遍历法提取小型装配体(模型总数小于10)的效率较高,但是由于企业中的一套模型文件的数量至少有上百个,且一般顶层均为装配体模型,所以选择顶装配体遍历法更加贴合实际需求。
2.3 模型信息提取内容
为了在TI-PLM系统中构建出含有零部件属性信息的层次结构关系,提取装配体模型信息的内容必须包含两点:装配体模型及所含零部件模型的属性信息、装配体模型及所含零部件模型的层次结构关系。
(1)装配体及所含零部件模型属性信息
企业所建模型的摘要信息中包含有该模型的唯一编号等属性信息,同样在PLM系统中的对象也包含具有唯一标识的属性信息来与其他同类对象进行区分。因此,必须提取出该装配体及其所含零部件模型的所有属性信息并赋给PLM系统中的不同对象。
(2)装配体及所含零部件模型层次结构关系
提取装配体及所含零部件模型属性信息的同时将它们之间的层次结构也提取出来并交由PLM系统来搭建对象之间的结构关系。由于该PLM系统中规定某一父对象至多含有一级子对象,因此对提取出的层次关系需要进行处理,使所有父装配体模型只拥有一级子模型。依此循环类推便可以将所有层次结构关系在该PLM系统中重构。
2.4 模型信息提取及存储
装配体模型信息提取之前需要在SolidWorks系统选项中关闭装配体轻化载入与大型装配体模式,否则将无法对大型装配体的信息进行精确提取。提取程序在用户选择装配体模型文件之后会在后台打开该文件(若SolidWorks已在前端运行则在前端打开该文件),并对其结构树进行循环遍历,提取出所有模型的属性信息以及它们在结构树中的位置信息。
在提取流程中,BOM(BillofMaterial,材料明细表)是记录与产品结构相关信息的技术数据,用来描述产品物料构成及物料之间的关系。而在SolidWorks中,BOM数据是以产品装配树视图的形式表示,与产品在PLM系统中的数据结构关系基本相同,产品装配树也能够体现出产品、部件与零件之间的结构关系。但由于TI-PLM系统起初是面向工程图的,因此将所提取出的模型属性信息命名为“标题栏信息”,提取出模型在结构树中的位置信息命名为“明细表信息)”,以便该系统识别与处理。
对于装配体结构树中经过复制、阵列、镜像后的模型,程序只会对其一进行信息提取,以保证在PLM系统中对象的唯一性。若在模型的摘要信息“自定义属性”与当前“配置信息属性”中出现相同属性,则会优先选取前者的属性值,以保证PLM系统中对象属性的一致性。
由于信息提取使用顶装配体遍历法,模型进行数据提取之后需要将所提取出的信息保存起来以便在入库操作时进行数据复原。数据在保存前先将提取的初始数据按类型进行分类并以模型为单位进行汇总。最终每个模型都将含有自身的层级号、文件完全路径、属性名和属性值。汇总后的模型信息结构如图2所示。
图2 模型信息结构
汇总后的模型信息虽然包含了该模型入库所需的所有信息,但由于TI-PLM系统文件入库要求有“业务信息列表”以及“关联关系列表”两方面的内容,所以汇总后的模型信息还需要进一步区分为两方面的信息。标题栏信息中所需包含的数据有文件完全路径、属性名与属性值。明细表信息中的数据需要具有表达模型父子关系的功能,而在遍历顶层装配体时所获得各模型的层级号就可以作为链接父对象与子对象依据。
3 SolidWorks模型批量入库
3.1 读取模型提取数据
通过匹配该模型的文件完全路径找到其属性信息,并将所读取的属性信息赋予该PLM系统中相应的关联关系。获取模型明细表信息内容时,同样通过匹配该模型的文件完全路径找到其所有子模型的属性信息,并将所读取的所有属性信息赋予该PLM系统中相应的明细表信息变量。提取数据读取与入库。
3.2 模型入库
TI-PLM系统通过信息读取与赋值后将把同时具有标题栏信息与明细表信息的模型导入数据库中,并在该PLM系统的对象视图中将模型层级结构重现出来(如图3),最终完成三维模型的批量入库。
4 SolidWorks工程图批量入库
虽然现在许多制造业设计部门已实现使用三维软件进行结构设计,但是工程图在生产中的地位仍然重要。因此,也需要对SolidWorks模型所派生出的工程图进行批量导入。
工程图入库方法与模型入库方法不同。工程图入库不需要提取标题栏与明细表信息,只需在TI-PLM系统中找到其源模型对象即可。系统会根据模型名称寻找相同名称的工程图,然后一起导入系统,完成入库。
5 结束语
PLM系统作为新一代替代PDM系统的企业产品数据管理系统,将一步步融入我国广大的制造业企业中。然而其在成熟的过程中仍需要与多种三维CAD软件进行功能集成以使其自身具有更加广阔的应用空间。本文以某公司TI-PLM系统与SolidWorks为例,通过对该PLM系统与SolidWorks的二次开发,完成了面向该系统的SolidWorks模型与工程图批量出入库管理。为TI-PLM系统提高了其对SolidWorks的兼容性,同时也为其他PLM系统与其他CAD系统集成提供了可参考的思路与较好的示范。
1 引言
PLM系统作为以流程为核心的产品管理系统,借助其多样、广泛的协同方式,建立了对企业各型号产品从设计、工艺、制造、使用、维护、直到最终报废的全生命周期的产品数据应用及管理。PLM系统与PDM(产品数据管理)系统在功能上讲是“包含”与“被包含”的关系。PLM是对所有产品数据的全方位,多角度,全生命周期的管理技术,它涵盖了PDM的所有概念与功能。
在整个产品的生命周期中,PLM系统与CAD(计算机辅助设计)应用程序的良好集成是实现产品数据管理的先决条件。一个PLM系统缺少了这样的条件便无法对企业中已有的二、三维数据文件进行有效的操作与管理。PLM系统与PDM系统在图文档管理部分是相似的,因此可以将PDM系统与CAD系统集成模式应用到PLM系统与CAD系统集成模式中。PDM(PLM)系统与CAD系统间有三种集成模式。
(1)封装模式是指把对象的属性和操作方法同时封装在定义对象中。用操作集来描述可见的模块外部接口,从而保证了对象的界面独立于对象的内部表达。
(2)接口集成模式是较封装模式更高层次的集成模式,能够根据CAD中的装配树自动生成PDM中的产品结构树,更加适合于PDM系统与三维CAD软件的集成。
(3)紧密集成模式通过对CAD的图形数据和PDM产品结构树的详细分析,制定统一的产品数据之间的结构关系,只要其中之一的结构关系发生了变化,则另一个自动随之改变,始终保持CAD的装配关系与PDM产品结构树的同步一致。
如今,SolidWorks在我国制造业中应用广泛,企业中也出现了大量的装配体、零件和工程图文件。为了能够对企业中的这些数据进行有条理的存储并对它们进行基于生命周期的管理,国外出现了许多PLM系统。国外知名公司的PLM产品虽然功能强大,但由于其价格昂贵且较难满足企业个性化的需求。因此国内企业大多更看好我国自主的PLM系统。
清软英泰公司的TI-PLM系统就是针对国内制造业开发的一款自主PLM系统,它实现了单个企业及企业集团的从设计、工艺、制造、使用、维护、直到最终报废的全生命周期的产品数据应用及管理。但TI-PLM系统存在无法与SolidWorks集成的问题,导致了模型入库时难以在PLM系统中搭建出正确的层级结构。
正确导入模型间的层级结构关系是PLM系统图文档管理的关键点,若没有正确的结构则无法完整表达产品的信息,更无法完成产品生命周期的管理。为提高TI-PLM系统与SolidWorks的兼容性,选择以接口集成模式并使用.net为开发语言,通过对该PLM系统与SolidWorks的二次开发,采取装配体模型结构树遍历、信息分类存储、层次关系循环搭建、工程图通过唯一编号查找源模型等方法,实现了面向TI-PLM系统的SolidWorks模型与工程图批量出入库功能。
2 SolidWorks模型信息批量提取
2.1 模型统一编号
虽然有许多企业在使用SolidWorks,但是每个企业大多都有自己的一套模型编码规则与使用规则。若要达到SolidWorks模型批量出入库的目的,首先应解决构建三维模型标准的定制问题,保证企业标准的统一贯彻,便于产品数据信息的管理和共享。在由SolidWorks创建的三维模型中,用户在通过编辑摘要信息中的属性信息(自定义信息与配置信息,如图1所示)后,每个零部件模型都具有了在企业范围内的唯一编号以及其名称、材料等信息。
图1 模型属性信息
2.2 模型信息提取方法
为了实现SolidWorks模型批量入库,首先需要对所入库的顶层装配体进行信息提取并将所提取出的信息存储以便后续入库过程使用。对于模型信息提取方法共有两种,第一种“直接遍历”法:对所有入库文件进行信息提取;第二种“顶装配体遍历”法:仅对所入库的顶层装配体进行遍历与信息提取。
直接遍历法提取小型装配体(模型总数小于10)的效率较高,但是由于企业中的一套模型文件的数量至少有上百个,且一般顶层均为装配体模型,所以选择顶装配体遍历法更加贴合实际需求。
2.3 模型信息提取内容
为了在TI-PLM系统中构建出含有零部件属性信息的层次结构关系,提取装配体模型信息的内容必须包含两点:装配体模型及所含零部件模型的属性信息、装配体模型及所含零部件模型的层次结构关系。
(1)装配体及所含零部件模型属性信息
企业所建模型的摘要信息中包含有该模型的唯一编号等属性信息,同样在PLM系统中的对象也包含具有唯一标识的属性信息来与其他同类对象进行区分。因此,必须提取出该装配体及其所含零部件模型的所有属性信息并赋给PLM系统中的不同对象。
(2)装配体及所含零部件模型层次结构关系
提取装配体及所含零部件模型属性信息的同时将它们之间的层次结构也提取出来并交由PLM系统来搭建对象之间的结构关系。由于该PLM系统中规定某一父对象至多含有一级子对象,因此对提取出的层次关系需要进行处理,使所有父装配体模型只拥有一级子模型。依此循环类推便可以将所有层次结构关系在该PLM系统中重构。
2.4 模型信息提取及存储
装配体模型信息提取之前需要在SolidWorks系统选项中关闭装配体轻化载入与大型装配体模式,否则将无法对大型装配体的信息进行精确提取。提取程序在用户选择装配体模型文件之后会在后台打开该文件(若SolidWorks已在前端运行则在前端打开该文件),并对其结构树进行循环遍历,提取出所有模型的属性信息以及它们在结构树中的位置信息。
在提取流程中,BOM(BillofMaterial,材料明细表)是记录与产品结构相关信息的技术数据,用来描述产品物料构成及物料之间的关系。而在SolidWorks中,BOM数据是以产品装配树视图的形式表示,与产品在PLM系统中的数据结构关系基本相同,产品装配树也能够体现出产品、部件与零件之间的结构关系。但由于TI-PLM系统起初是面向工程图的,因此将所提取出的模型属性信息命名为“标题栏信息”,提取出模型在结构树中的位置信息命名为“明细表信息)”,以便该系统识别与处理。
对于装配体结构树中经过复制、阵列、镜像后的模型,程序只会对其一进行信息提取,以保证在PLM系统中对象的唯一性。若在模型的摘要信息“自定义属性”与当前“配置信息属性”中出现相同属性,则会优先选取前者的属性值,以保证PLM系统中对象属性的一致性。
由于信息提取使用顶装配体遍历法,模型进行数据提取之后需要将所提取出的信息保存起来以便在入库操作时进行数据复原。数据在保存前先将提取的初始数据按类型进行分类并以模型为单位进行汇总。最终每个模型都将含有自身的层级号、文件完全路径、属性名和属性值。汇总后的模型信息结构如图2所示。
图2 模型信息结构
汇总后的模型信息虽然包含了该模型入库所需的所有信息,但由于TI-PLM系统文件入库要求有“业务信息列表”以及“关联关系列表”两方面的内容,所以汇总后的模型信息还需要进一步区分为两方面的信息。标题栏信息中所需包含的数据有文件完全路径、属性名与属性值。明细表信息中的数据需要具有表达模型父子关系的功能,而在遍历顶层装配体时所获得各模型的层级号就可以作为链接父对象与子对象依据。
3 SolidWorks模型批量入库
3.1 读取模型提取数据
通过匹配该模型的文件完全路径找到其属性信息,并将所读取的属性信息赋予该PLM系统中相应的关联关系。获取模型明细表信息内容时,同样通过匹配该模型的文件完全路径找到其所有子模型的属性信息,并将所读取的所有属性信息赋予该PLM系统中相应的明细表信息变量。提取数据读取与入库。
3.2 模型入库
TI-PLM系统通过信息读取与赋值后将把同时具有标题栏信息与明细表信息的模型导入数据库中,并在该PLM系统的对象视图中将模型层级结构重现出来(如图3),最终完成三维模型的批量入库。
4 SolidWorks工程图批量入库
虽然现在许多制造业设计部门已实现使用三维软件进行结构设计,但是工程图在生产中的地位仍然重要。因此,也需要对SolidWorks模型所派生出的工程图进行批量导入。
工程图入库方法与模型入库方法不同。工程图入库不需要提取标题栏与明细表信息,只需在TI-PLM系统中找到其源模型对象即可。系统会根据模型名称寻找相同名称的工程图,然后一起导入系统,完成入库。
5 结束语
PLM系统作为新一代替代PDM系统的企业产品数据管理系统,将一步步融入我国广大的制造业企业中。然而其在成熟的过程中仍需要与多种三维CAD软件进行功能集成以使其自身具有更加广阔的应用空间。本文以某公司TI-PLM系统与SolidWorks为例,通过对该PLM系统与SolidWorks的二次开发,完成了面向该系统的SolidWorks模型与工程图批量出入库管理。为TI-PLM系统提高了其对SolidWorks的兼容性,同时也为其他PLM系统与其他CAD系统集成提供了可参考的思路与较好的示范。