佳工机电网 在线工博会 我的佳工网 手机版 English
关键字  
  选择展区 >>
您的位置: 首页 > CAD/CAM/PDM/PLM展区 > PDM/PLM/CAPP展厅 > 产品库 > 技术论文 > 正文 产品库 会展 人才 帮助 | 注册 登录  
PDM/PLM/CAPP
 按行业筛选
 按产品筛选
查看本类全部文章
e展厅 产品库 最新动态 技术文章 企业目录 资料下载 视频/样本 反馈/论坛
  技术应用 | 基础知识 | 外刊文摘 | 业内专家 | 文章点评 投稿 发表科技文章 
三维CAD与BOM管理系统的接口研究
作者:刘煜 钟展 赵文龙
欢迎访问e展厅
展厅
3
PDM/PLM/CAPP展厅
图文档管理系统, CAPP...
引言

随着制造业对CAD技术的广泛应用,相应地CAD设计信息也越来越庞大,对这些设计信息的管理成为迫切的任务。目前流行的BOM(Bill Of Material)管理为企业的这种信息管理提供了很好的解决方案。CAD与BOM管理系统间的信息传递和反馈是解决问题的前提条件。

1 BOM管理简介

BOM是产品结构的关系表述,而BOM管理是产品数据组织与管理的一种形式,它以数据库为底层支持,以BOM表为其组织核心,把定义最终产品的所有工程数据和文档联系起来,实现产品数据的组织、管理和控制,并在一定目标或规则约束下,向用户或应用系统提供产品结构不同视图的描述。

2 BOM接口的开发

BOM接口是在CAD支撑软件的基础上进行二次开发,实现CAD与BOM管理系统信息集成的软件模块。主要包含两方面的功能,首先是BOM管理系统与CAD软件之间的产品信息传递、反馈功能;其次是编码功能。

2-1 BOM管理系统与CAD的信息传递

图1 是BOM系统与CAD的产品信息传递流程。BOM接口的工作过程是:CAD设计人员从三维CAD装配图中抽取BOM信息保存到数据库中,使CAD中的设计信息能够被BOM管理系统识别和处理,并将处理后的信息反馈给设计者。BOM管理系统是从属于PDM 的一个子系统。

2-1-1 装配树的遍历算法

三维CAD是以树型结构组织装配中的组件和零件,而在数据库中则通过记录装配树各组成结点间的父子关系、兄弟关系来保存BOM树结构。因此,BOM管理功能模型中,诸如BOM的存储、读取、查询、配置、比较等都离不开树的遍历,可以说树的遍历是BOM管理最基本、最关键的算法,它的优劣直接关系到软件的运行效率。

对装配树的遍历通常有两种方法:广度遍历和深度遍历。

2-1-1-1 广度遍历

装配树的广度遍历是按照先兄后子的顺序进行的,即先对装配树中同一层次搜索完成后,再对同一层上的每个结点进行同一层的子项搜索。

2-1-1-2 深度遍历

图2 为深度遍历的逻辑流程图,装配树的深度遍历是按照先子后兄的顺序进行的,即先对装配树中每一结点判断是否有子项,直至子项为空,即到达终端结点;再对终端结点判断是否有兄弟项,若有兄弟项存在,对兄弟项结点继续套用搜索子项的方式,把兄弟项结点看作父结点;若无兄弟项存在,则返回父项层,判断父项的兄弟项是否存在,套用上述搜索兄弟的方式,直到最顶级的根结点。

以SolidWorks为例,遍历过程的部分代码如下:

(1) 得到装配图中装配树的根:

HRESULTres=S_OK;
LPCONFIGURATION pConfiguration= NULL;
LPMODELDOC pModelDoc= NULL;
LPCOMPONENT pRootComponent= NULL;
long RecurseLevel= 0;
LPSLDWORKS
pTemp= TheApplication- > GetSWApp () ;
respTemp- > get_IActiveDoc (&pModelDoc) ;
if (S_OK! = resû ûpModelDoc== NULL)
return;
if (pModelDoc-> IGetActiveConfiguration
(&pConfiguration) = = S_OK )
{pConfiguration- > IGetRootComponent
(&pRootComponent) ;}⋯⋯

(2) 从装配树根开始,对装配树进行遍历,部分代码如下:

int TraverseChildren ( long RecurseLevel,
LPCOMPONENT pComponent)
{
LPCOMPONENT3 pCh ildren = NULL;
int nChildren= 0;
HRESULT hres= S_ O K;
BSTR Name;
hres = pComponent- > get_Name (&Name) ;
g_JianHaoArray1Add (Name) ;
⋯⋯
if (S_OK = = hresû ûnChildren> 0)
{
pCh ildren =
new L PCOM PON EN T [nCh ildren ];
h res=
pComponent- > IGetCh ildren ( (L PCOM PON EN T3
3 ) &pCh ildren) ;
pComponent- > get_Name (&parent) ;
if (S_ O K = = h res) {
ööRecursively t raverse the ch ildren
fo r ( i= 0;i< nCh ildren;i+ + )
{
T raverseCh ildren (RecurseL evel,,pCh ildren[ i]) ;
pCh ildren [ i]- > Release () ;
}}
delete[ ]pCh ildren;}
RecurseL evel- - ;
⋯⋯
return nChildren;
}

2-1-2 BOM接口对数据库的操作

图3 为BOM接口主界面,本文使用ADO(ActiveX Data Object) 实现对数据库的操作。下面介绍在VC++中使用ADO的方法:

(1) 初始化COM库,引入ADO库定义文件。
(2) 用Connection 对象连接数据库。
(3) 利用建立好的连接,通过Connection、Command 对象执行SQL 命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4) 使用完毕后关闭连接释放对象。

在SolidWorks环境下对数据库操作的部分代码如下:

StsAfx1h
# impo rt“C:øP rogramF ilesøCommonF ilesøSystemø
adoøm sado151dll”no_ namespace rename (“EO F”,
“adoEO F”) öö引入ADO 库定义
BOM1cpp
long InitU serDLL 3 (L PSLDWORKS pSldWo rk s)
{⋯⋯
A fxO le Init () ;öö初始化COM 库
⋯⋯
}

ReadWriteClass1cpp
BOOL ReadW riteClass::L inkDatabase (⋯)
{ ⋯⋯
h r= m_ Connect ion1Create Instance
(“ADODB1Connect ion”) ;ööö创建Connect ion 对象
⋯⋯
}

2-2 BOM接口中的编码功能

编码是把一定的意义、信息转换为代码的过程。所谓“码”就是按照一定规则排列起来的符号或信号序列。在企业信息管理中主要用到的编码是信息分类编码。所谓分类编码就是按照一定的规则选用一定数列的字码对企业信息进行描述和识别。通过分类编码可以使企业信息客观存在的各种特征的相似性明朗化、代码化,从而为计算机进行处理和识别提供可靠和有利的条件。制造业的信息编码主要有两类:产品和物料编码、文档编码。

信息编码是企业实施信息管理的基础。下面从编码体系的设计原则、编码构成的共性、编码器的开发三个方面来讨论BOM管理中编码的实现。

2-2-1编码体系的设计原则

编码体系的设计一般遵循如下原则:

(1) 编码信息分类要体现科学化、标准化、规范化、合理化。
(2) 参照国家标准中有关分类标准体系。
(3) 保证编码的唯一性、可扩展性和方便性。

在实际应用中还必须重视编码的直观性、实用性和继承性。按这些原则进行编码的方法有两种:一种是独立编码;一种是非独立编码。以前由于没有计算机管理,企业必须将产品的结构信息反映在编码上,只好采用非独立编码,非独立编码产生的借用件问题给企业的产品管理带来了很大的不便。随着计算机的普及,产品的结构信息可以由计算机记录而不需要编码来反映。所以,现在大多数制造企业都倾向于采用独立编码。

2-2-2编码构成的共性

通过对制造企业各种编码分析,发现它们的编码结构均可以分为以下几个部分:系列码、识别码、固定码、尾号。

(1) 系列码:系列代码是在对具体的“实体”给定唯一的代码之前,依据其一种可见的属性或易于确认的、永久不变的特征给定码值。
(2) 识别码:识别码与系列码结合在一起就表示了唯一的一种实体,在编码设计时,可以在识别代码的固定码位上设置类别编码,以便计算机识别。
(3) 固定码:固定码是为了识别、检索、记忆而特别设置的特殊代号,在编码时占一个码位的位置。
(4) 尾号:尾号是物料(零件) 改进、升级的标识,仅尾号不同的物料一般具有替换性。

2-2-3编码器的开发与实现

在编码器的开发中,先调用企业内部的编码方案,一旦编码方案定义好后,就可以进行编码了,其具体的编码过程如下:

(1) 选择要编码的零部件。
(2) 选择编码方案。
(3) 根据编码方案从数据库中选择编码规则。
(4) 根据规则进行编码。
(5) 将新码作为该零部件子项加入装配。

图4 就是在SolidWorks中用来编码的编码器主界面。

3 接口的移植与重用

由于企业中有可能使用多种CAD软件,而这些CAD都必须与BOM管理系统集成,若每个CAD都从头开发BOM接口,其工作量之大可想而知,因此模块化的开发是必然的选择。模块化开发的基本要求是适当划分功能模块,重用功能模块以求得最佳开发效率。对于本文所述BOM接口应尽可能将与CAD无关的部分独立出来,成为各种异质CAD的共用模块。本文以SolidWorks为基础开发出BOM接口,然后将其移植到CATIA、UG、SolidEdge中。

3-1公共模块的提取和封装

BOM接口中对于数据库的访问及编码是与CAD相对独立的部分,因此将这两部分独立出来封装成为自动化对象。自动化技术是微软开发的用于实现不同编程语言间的组件重用和支持应用程序间互操作的一项技术。通过这一技术使得用VC++编的程序被封装成可以被VB 使用的组件。这种组件向客户程序提供属性、方法作为访问的接口。客户程序创建自动化组件实例,调用它的方法,并返回计算结果。

3-2CAD的二次开发

公共模块提取并封装好之后,剩下的工作是针对不同CAD支撑软件进行二次开发,使CAD能使用这些组件。由于自动化组件既可以被VC++使用也可被VBA及任何支持自动化技术的开发工具使用,因此该组件能适应大多数CAD软件。以CATIA 为例,它既有以C++为开发语言的CAA ,也有以VBA 为开发工具的宏开发方式,这两种方法都可以使用该组件。在对UG、SolidEdge 进行少量二次开发后即可使用该组件,这样就大大减少了不必要的重复开发,提高了开发效率。

4结束语

本文利用三维CAD提供的二次开发编程接口,以VC作为开发工具,对原有三维CAD的功能进行了很好的扩展。它不仅实现了设计信息的BOM管理,还为企业内部的资源共享和协同设计打下了良好的基础。(end)
文章内容仅供参考 (投稿) (如果您是本文作者,请点击此处) (4/24/2006)
查看更多PDM/PLM/CAPP相关文章: more
·面向产品的CAPP方法论及其智能化概念体系 张振明 黄乃康 桓永兴 孔宪光 (8/13/2006)
·PDM/CAPP一体化开发模式研究与实现 罗先海 夏榆滨 张力 (4/24/2006)
·PDM与ERP集成中的BOM技术 newmaker (4/21/2006)
·面向敏捷制造业的PDM技术 王冬梅 谢刚 殷国富 (4/19/2006)
·CAPP中BOM表的结构研究 王宇 蔡长韬 封志明 (4/14/2006)
·PLM系统中的设计变更管理实现 重庆大学 王宁 郭钢 (4/12/2006)
·中小型企业CAPP技术应用研究 newmaker (4/11/2006)
·PDM技术及其在汽车制造业的应用分析 郦光明 许沧粟 (4/9/2006)
·响应控制技术在PDM设计审批流管理上的应用 长丰猎豹汽车 杨志红 海争平 (4/4/2006)
·PDM设计审批流动态权限认证过程实现 长丰猎豹公司 海争平 杨志红 程友斌 (4/2/2006)
查看相关文章目录:
·CAD/CAM/PDM/PLM展区 > PDM/PLM/CAPP展厅 > PDM/PLM/CAPP文章
文章点评 查看全部点评 投稿 进入贴吧


对 PDM/PLM/CAPP 有何见解?请到 PDM/PLM/CAPP论坛 畅所欲言吧!


网站简介 | 企业会员服务 | 广告服务 | 服务条款 | English | Showsbee | 会员登录  
© 1999-2024 newmaker.com. 佳工机电网·嘉工科技