1 前言
计算机集成制造(CIM)的实质是产品设计、工艺规划、生产制造等应用阶段信息流的传递作用过程。信息是与设计、制造等过程有着本质联系的基本元素,其集成管理是整个过程都予以关注的核心任务。产品设计信息的获取是CIMS系统的首要环节,是当前遏制制造业信息化进程的“瓶颈”之一。特征造型技术将产品的几何信息和非几何信息汇集到产品定义中,不仅能表达产品的几何形状,而且同时表达了产品的制造要求,在较高层次上体现了设计者的意图[1]。但是在CAD环境下图形数据为非结构化数据,无法被后续系统直接使用。国内外学者对零件信息模型的定义和信息集成进行了大量的研究。基于中性文件STEP、IGES、PDES标准的信息集成方法[2~7],在异构三维CAD系统的信息流通上,以其较好的通用性占有一定的优势。但中性文件在信息传输过程中必须进行语法分析和语义检查,数据段的提取和预处理方式较为麻烦。根据PDES标准从设计领域进行特征定义,其设计特征库的定义存在一定局限性,且系统开发难度大。本文提出在UG CAD环境下,综合应用UG/Open API函数和Oracle网络数据库技术,实现产品设计信息的提取、数据统一集成管理。
2 系统总体结构
随着网络制造技术的发展,企业不仅要考虑自身内部信息共享,还要考虑与外部环境集成,企业与企业之间实现信息交流与共享,从而实现制造资源的重组,获得更大效益。支持分布式网络制造和网络企业联盟的产品信息管理系统将成为重要的发展趋势。企业内部的产品设计、工艺设计、加工制造、生产管理等多个环节、多个部门要求协同工作,共享信息。应用网络技术构建一个分布式操作和数据库管理为一体的企业内部网,有利于企业各部门之间实现数据和资源共享。
Oracle是企业级的关系型数据库系统[8],具有很强的联机事务处理能力,包括分布式查询、多点更新、远程调用等,非常适合联盟企业生产信息数据库的分布式处理,支持用户自定义数据类型的存储,具有较好的数据安全管理能力。Oracle支持客户机/服务器工作方式,客户端负责处理用户界面和企业应用逻辑;服务器端负责处理数据存储、检索和管理数据库等。本系统的客户端将UG设计环境中的产品信息通过API函数提取,经数据库开发接口和网络传输,存储到服务器统一数据库中。系统总体结构如图1。
3 关键技术实现
3.1 零件信息的E-R模型与数据存储
计算机抽象表达客观事物首先必须进行数据模型化处理,映射在模型中的信息是对真实零件信息的一种收集和抽象,以便于计算机处理的形式存储。从客观世界到计算机形式语言的过渡需要建立概念模型。对零件进行概念设计得到零件信息模型的典型方法是实体属性联系方法(Entity-Attribute-Relationship)(或E-R模型)[8]。E-R模型包括实体、属性和联系三大要素,是研究零件组成要素及其关系的有效方法。
零件由许多形面要素构成,一个零件与多个特征形成1:n的构成关系,特征与特征之间形成不确定的位置和基准关系。划分实体和属性,确定实体间的关系是建立E-R模型的核心问题。根据E-R方法,将零件图号,零件名称、零件类型、毛坯类型、零件材料、最大径向尺寸和最大轴向尺寸,生产批量等作为实体零件的总体属性。而特征实体要素的属性主要有尺寸及公差,表面粗糙度,形状公差、位置公差等,如图2。
E-R模型属于概念结构,为了在关系数据库管理系统中进行零件信息存储和管理,还必须将概念结构转变为关系数据模型的逻辑结构。关系数据模型的基本思想是在二维表中表示实体、实体属性以及实体与实体之间的关系。对于实体,转化为一个关系模式,即一个二维表,实体属性转化为二维表中的列字段。
3.2 动态链接库的加载
UG/ Open API所开发的应用程序可以在两种不同的环境下运行:Internal和External[9]。对于在Internal环境下的程序只能在UG Session下运行,其入口函数是ufusr或ufsta。所以只要在用户应用程序中加入任何一个入口函数就可以实现与UG进程交互。同时UG OPEN MenuScript提供修改UG菜单的脚本语言,比如添加、删除、定制菜单等,开发者可以使用该语言修改菜单响应行为,ACTIONS可以是宏(.macro)、C或C++程序(.so,.sl,.dll)、GRIP程序(.grx)和UTD(.utd)。通过加载不同的动态链接库来修改响应行为,即实现了不同用户应用的加载。
创建编辑UG主菜单和下拉菜单以及工具条的方法有两种:一是通过编辑Menu文件添加和修改菜单项;二是开发C应用程序调用MenuScript API函数和子程序开发定制菜单选项。其不同之处在于:前者是通过语法“ACTIONS”指定菜单响应行为,可为API程序、GRIP程序、UTD文件,使用简单灵活;后者是通过API函数UF_MB_add_actions注册回调函数,适合相应模块应用功能扩展。
本文在Internal环境下将入口函数ufusr加入VC++工程,开发了信息提取应用程序,建立了动态链接库。并借助于文本编辑器,编辑菜单脚本文件,以(*.men)格式存放于$UGII_USER_DIR\application目录下,从而实现了动态链接库的加载过程。