摘要
PDM的基础与核心是数据管理。在以往的PDM的开发与实施中,笔者深切的体会到CAD/CAM数据的集成管理问题往往是决定PDM成功的关键要素之一,而BOM数据的有效管理更是PDM的基础之基础。本文分析了基于XML的数据交换的优势,介绍利用CATIA V5 AUTOMATION获取CATIA V5零部件BOM信息,开发实用软件的具体方法和思路,提出了基于XML的CATIA V5 CATIA V5 与PDM系统BOM数据交换方法,并开发出实用程序。本方法同样适用于CATIA V5与ERP、CAPP等应用系统的信息交换。
1.基于XML的数据交换技术 1.1XML的优势 u设计与特定领域有关的标记语言XML允许各种不同的专业(如工业、音乐、化学、数学等)开发与自己的特定领域有关的标记语言。这就使得该领域中的人们可以交换笔记、数据和信息,而不用担心接收端的人是否有特定的软件来创建数据。
u自描述数据XML使用的是非常简单的数据格式。可以用100%的纯ASCII文本来书写,也可以用几种其他定义好的格式来书写。ASCII文本是几乎不会“磨损”的。丢失一些字节甚至是相当多的字节,剩下的数据仍然是可以读取的。这就与许多格式完全不同,如压缩数据或是WORD文件,这些数据即使丢失一个字节,剩余的数据也变得不可读取了。XML是自描述的,它的标记是有意义的,并且是可校验的。并且数据可被XML唯一的标识,非常容易分类和检索。
u结构化和集成的数据XML对于大型和复杂的文档是理想的,因为数据是结构化的。这不仅使用户可以指定一个定义了文档中的元素的词汇表,而且还可以指定元素之间的关系。数据的各个部分可以根据用户的操作显示或隐藏。当处理大型的信息仓库,比如关系型数据库时是极为有用的。
u数据的多样显示通过将结构,内容和表现分离, 同一个XML源文档只写一次, 可以用不同的方法表现出来: 在计算机屏幕上, 在手提电话显示屏上, 在为盲人服务的设备上翻译成语音, 等等. 它可以在可能开发的任何通讯产品上工作. 一个XML文档因此可以比其书写时的作者和显示技术生存得更久. 所以, XML将不仅限于Internet, 它在企业应用和电子商务方面更有独特的优势。例如,可将XML用于PDM、ERP中,可消除二者之间的数据格式瓶颈,使其无缝连接。还有, 独立于平台的XML是为Web开发的。
XML使用的是非专有的格式,不受版权、专利、商业秘密或是其他种类的知识产权的限制。XML的功能是非常强大的,同时对于人类或是计算机程序来说,都容易阅读和编写。因而成为交换语言的首选。且XML是纯文本格式可容易的进行加密和压缩。
由于XML是非专有的并易于阅读和编写,就使得它成为在不同的应用间交换数据的理想格式。
1.2基于XML的应用间数据交换现代企业中的应用往往是多种多样的,由于多种原因,企业应用的软硬件、技术平台也很难同一。应用间数据交换不可避免。按常规数据接口的设计方法单向接口数量为N*(N-1),双向为N*(N-1)/2。如下图所示:
不仅数量多,而且技术复杂,任何一个接口都有可能集成系统数据交流的关键点,集成系统的健壮性无从保证。随着企业应用的增加,情况会变的越来越严重。
基于XML的应用间数据交换采用XML数据交换层来完成数据交换。企业可通过DTD或SCHMAS全局定义企业的数据类型,各应用开发相应的接口,提供符合要求XML格式的数据以供数据交换之用。则接口数目减为双向为N,单向为2N。如下图所示:
基于XML 可有效降低数据交换的复杂度,提高集成系统的可用性。
2.开发工具、设计方法与思路CATIA V5 是法国达索公司与IBM公司开发的新一代CAD/CAM产品。它采用了全新的、基于组件的开放式体系结构(Open Architecture Products)。CATIA V5采用大量的先进工业标准;应用了许多现代软件工程思想,整个体系结构虽然十分庞大,但结构清晰、合理。维护、开发、扩展方便。有着相当优良的扩展性能。它开放的组件应用架构允许更多的第三方供应商针对用户的需要特别定制的应用解决方案。提供COM/DCOM接口支持基于AUTOMATION的开发。
DS的CAA组件应用架构(Component Application Architecture)组件应用架构,是Dassault Systemes产品及二次开发的基础架构。所有的DS产品均构建之上。并通过PPR HUB 将其它不同用途的DS产品如ENOVIA、DELMIA等连接起来。PPR HUB是CAA的基础,是一种“软件总线标准”,凡是架构其上的产品均可互通信息,方便用户构建从方案设计、工程设计、工艺分析、知识工程、模拟分析到PLM、SCM、ERP的全生命周期、全方面的应用。
CAA AUTOMATION 使用标准的COM/DCOM开发技术,支持从脚本到VB、VC、DELPHI等通用开发工具。无需专用开发工具和专门技术,开发技术简单。CAA AUTOMATION提供了强大的开发接口,并且还在加强中。与CAA C++相比其功能覆盖超过80%,且都是最常用的功能。实际上除几何接口和某些应用外大部分CAA C++二次开发应用均可由CAA AUTOMATION开发且运行效率相当。是目前最常用的开发方法。
u开发工具的选择:
根据实际需要选定VB 6主开发工具,XML的开发方法有很多种,最主要的是DOM和SAX。这里使用MS XMLDOM组件。通过VB主程序使用COM编程技术调用CATIA V5和MS XMLDOML并执行相关的AUTOMATION操作。CATIA V5 的AUTOMATION操作主要完成要求PDM数据的计算和提取,MS XMLDOM完成数据的输出是软件的主体部分。
u主要设计技术:
nCATIA V5 产品数据的提取:
CATIA V5 产品数据一部分在PRODUCT对象,其它如重量、材质、密度、惯性矩等特殊技术信息可通过参数和GetTechnologicalObject方法获得,值得注意的是材料、质量、密度要赋材质后才可取得。特别注意的是对于PART类型,PRODUCT属性要通过ReferenceProduct获得。
程序例子:
set catiadoc = CATIA.ActiveDocument
part1 = catiadoc.Part
// for part
p0= catiadoc.GetItem(PART1.NAME) ;//get product reference
P1=p0.ReferenceProduct;
//for part
//for PRUDUCT is//p1= catiadoc.Product
Material=part1.Parameters.item('Material')
Inertia=p1.GetTechnologicalObject('Inertia')
edit3.Text:= part1.Density;//材料密度
edit4.Text:= Inertia.Mass;//质量
……
nameFile = myProductSon.ReferenceProduct.Name'文件名如: Part.CATPart
namePath = myProduct.ReferenceProduct.path '文件路径如: C:\...\
nameFullPath = myProductSon.ReferenceProduct. FullName'全路径名:如c:\...\Part.CATPart
nomenclature = myProductSon.ReferenceProduct.nomenclature' 产品名
revision = myProductSon.ReferenceProduct.revision'产品版本
source = myProductSon.ReferenceProduct.source' 产品制造种类如:自产、外购、成品等
如有自定义的属性可通过Set UserProps = productRoot.UserRefProperties获取。
uXML结构树数据映射
MS XMLDOM提供了强大的XML编程接口。可通过DOM将所需的产品结构信息映射到XML树形结构中。程序例子:
Set ModelElement = xmldoc.createElement("MODEL")
Set MODEL_NAMEElement = xmldoc.createElement("MODEL_NAME")
Set FILE_NAME = xmldoc.createElement("FILE_NAME")
Set pl_number = xmldoc.createElement("零件代号")
Set mincheng = xmldoc.createElement("名称")
。。。。。
Set BOM_ITEM = xmldoc.createElement("BOM_ITEM")
bom.appendChild BOM_ITEM
Set pl_number = xmldoc.createElement("零件代号")
BOM_ITEM.appendChild pl_number
nameReference = Tab_Item_BOM(ik).Name
Set pl_numberText = xmldoc.createTextNode(nameReference)
pl_number.appendChild (pl_numberText)
Set qty = xmldoc.createElement("数量")
BOM_ITEM.appendChild qty
Set qty_text = xmldoc.createTextNode(Tab_Item_BOM(ik).number)
qty.appendChild (qty_text)
通过递归子程序可将CATIA V5的结构树信息映射到XML中,完成数据转换。需转换的数据可根据需要定义,一般PDM数据需求可参考STEP AP203、AP214的要求。
转换程序封装成activex 控件,可单独运行,也可嵌入其他软件和CATIA中运行。
嵌入CATIA中的宏例子。
Sub CATMain()
Set pdm2xml= CreateObject("pdm2xml.p2xml")
pdm2xml.main
End Sub
提取的XML文件结果:
3.结束语:随着CAD/CAM应用的深入,如何应用PDM管理和使用不断增加的数模日益成为企业应用面临的问题,。但企业的需求从简单到复杂各有不同。CATIA强大的自管理和开放的应用开发接口,使得企业可以灵活的根据需要设计适合的各种应用。