网络安全 频道

安全我知道 世界顶尖防火墙逐个看

1 前言

      众所周知,在企业里用户利用PDM系统对产品的数据进行管理。从数据管理的概念和理论角度考虑,这种数据管理系统的开发和实现都是非常容易的事情。但是用户在对企业的产品数据进行管理的时候还是会遇到一些问题,虽然我们有CAD系统,CAE系统,CAM系统,PDM系统等,产品数据管理的效率仍然有待提高。问题出在什么地方?事实上,无论从哪个单一系统的角度考虑,每套系统都非常优秀,问题出在系统与系统的衔接上。

    随着科技的发展,产品信息变得越来越丰富,而且产品数据之间的关系也变得更加复杂,从简单的层状结构转变为网状结构,数据之间的相互作用从单一方向的数据传递演变为多向数据互相作用。不同系统(CAX,PDM.等)的开发源自于这个网状结构中不同的数据子集管理的需要,但是随着不同系统的广泛使用,原有系统所支持的数据集需要扩容来适应不同的需要,这便造就了目前国内外市场上名目繁多,而在功能上部分重叠,大部分重叠甚至全部重叠的各式各样的产品辅助设计和制造以及数据管理系统软件。

     鉴于这种情况,在企业里不得不采用不同的软件系统处理不同的数据集,从理论上讲人们希望将这些数据集的管理纳入统一的框架-PDM系统进行管理,但是实际上很难做到。目前的状况是,PDM系统管理了很大一部分不同系统外围的数据,例如数据文件的管理和定义,但是有些系统文件内深层的数据并不见得能够开放到外层,或是即便开放到了外层,PDM系统也无法对它所针对的内部数据进行控制。例如我们都知道,一个产品可以分为不同的部件,这些部件组合起来形成为装配文件,用户可以对每个部件文件和装配文件定义不同的数据,如果PDM系统能够和CAX系统有很好的通讯机制的话,用户希望可以直接由PDM系统去驱动CAX系统中相应的数据进行更新或者反向更新。然而事实上是,PDM系统能够定义一些产品数据,但是接受不接受这些产品数据是由下游系统CAX决定的,CAX系统也没有义务必须按照PDM系统所需要的格式对自身的数据进行控制,CAX能开放多少数据给PDM系统接受控制也无法确定,不同企业有不同的要求。通常CAX系统仅给出一些自身通用的数据到外层接受PDM系统的控制,这在实际应用中显得远远不够。

     如果我们能够设计一种媒介,使得用户能够根据自身的需要定制将CAX系统中的什么数据交出去又可以读进来,如下图,用户数据可以通过定制的MEDIA通道和PDM系统进行交互,数据传递的瓶颈就可以得到解决。
 

图 1    不同系统间的数据传递

     为了实现这个目的,本文作者在UG NX (CAD系统)上借助二次开发工具和Windows编程开发了一个小的程序,主要完成以下一些功能:

    a.能够读入以XML文件格式纪录的产品信息

    b.为用户提供一个交互式的选择产品信息并将相应信息存入CAD文件的工具

    c.为用户提供一个交互式的读取CAD文件中物体信息的工具

    d.能够将读出的CAD文件中物体的信息输出成为XML文件供其它程序使用

     本文的章节主要有以下几部分组成:第二章将首先介绍这个小程序的功能定义和实现方式,第三章将介绍一个具体的应用实例,第四章介绍有关UG NX的二次开发环境和本次实践所采用的开发方法,最后是本文的总结和程序的应用前景。

    2 功能定义和实现

    2.1 功能分析

     首先,通过对需求的分析,我们将功能模块进行细化可以得到如下的表格:
 


    2.2 XML文件格式

     XML文件具有一系列的特点,例如数据文件以文本方式记录可直接进行修改,数据的组织以树状列表形式表现,数据的定义,存储和显示可分开进行管理等。这些特性使得XML文件非常适合作为轻量数据的管理媒介,并且已经广为被工业界所认可,用于不同系统之间的数据传递。

     过去的CAX软件系统往往自己有自己的二进制格式文件,每家厂商的所采用的数据结构和对数据的处理方式都不一样,造成了很多数据壁垒,即便用专业工具对数据文件进行格式转换,数据丢失仍然是必然,这里所说的数据丢失不仅仅指几何方面的信息,用户自己订制的信息因为不在通用数据标准(IGES, STEP等)的管理范畴,往往是完全丢失。

     随着XML技术的普及,现在的CAX软件商也逐渐考虑将XML文件格式引入CAX软件数据的描述中,例如UGS 公司的PLMXML,IBM Dassault Systemes的3DXML等。UGS公司的PLMXML的格式标准已经开放,但是由于不同用户的不同需求,无论哪一套标准都不敢保证一定能覆盖用户的所有需求,另外数据格式越是标准,XML文件就越缺乏灵活性,而且从企业的角度考虑,某些情况下企业可能希望内部采用复杂而全面的数据记录标准,便于对自己的产品进行全面的管理,对外则有选择性地选取不同的通用标准,普遍性和特殊性永远是共存的。
 
     所以本文作者在这里仅仅提出一种自由定义的非常简单的XML文件格式,主要目的是为了展示通过XML文件对系统内部用户数据进行管理,导出和引入的方法。数据格式和处理方法仅供参考。

     在本文所采用的XML文件中仅有三种数据单元:COLLECTION, CATEGORY和ELEMENT。COLLECTION 代表一组数据单元的集合,不具备特定含义。 CATEGORY代表一组具有意义的数据单元的集合。ELEMENT 是最基本的数据单元,用于记录数据项。

     COLLECTION和CATEGORY仅有一个属性NAME用于记录COLLECTION 和CATEGORY的名称。ELEMENT数据单元可以由多个属性, 属性的多少和内容根据这个数据单元所代表的意义而定,例如如果这个单元代表某种材料,那么它的属性中就可能包括DENSITY, VICKERS_HARDNESS, ULTIMATE_TENSILE_STRENGTH等,但是每个ELEMENT数据单元必须具有一个NAME属性用于标识这个数据单元,另外一个属性OPTION 用于表示这个ELEMENT数据单元和它同级的数据单元之间的关系,如果有OPTION这个属性的就表示这个数据单元和它同级的数据单元之间是可以多选的关系,如果没有这个属性标签就表示这个数据单元和它同级的数据单元之间是只可唯一选择关系。如果是多选的关系,OPTION属性的值要保证在它的父亲单元下是唯一的,否则就会在数据处理过程中被具有相同OPTION属性值的数据单元所替代。
XML文件的一个基本框架可以如下图表示:
 

图 2    XML文件的基本框架
 
   

    2.3  用户界面

    2.3.1 程序入口

图 3    程序入口菜单
 
   

2.3.2 程序主窗口
 
 

图 4    程序主窗口界面

     当用户通过菜单进入主程序之后,程序的主窗口会从UG NX的主窗口左侧飞入,然后依附在UG NX 主窗口的左侧。主窗口的界面设计模拟UG NX 的 Resource Bar 窗口的形式,按照功能需要分为两个Tab页面,上边的Tab页面用于添加属性,下边的Tab页面用于读取属性。程序为每一个页面在右侧提供了一个树状列表用于显示分类可选属性列表和物体属性列表。程序的退出是通过主窗口右上方的退出按钮实现的。程序的所有功能操作均以右键菜单的形式实现。右键菜单在每个Tab页面是不一样的,当用户在添加属性页面上操作的时候,功能菜单包括读取XML文件(Load Data)和附加属性(Attach),当用户在读取属性页面上操作的时候,功能菜单包括读取物体属性(Retrieve)和存储XML文件(Save Data)。

0
相关文章