PDM/PLM/CAPP
按行业筛选
请选择行业
----------------------
-全部行业
------------------
-机床与金属加工设备
-刀具/量具/夹具/磨具
-模具设计与制造
-塑料机械/橡胶机械
-通用机械/化工机械
-工程机械/建材机械
-交通运输/海工装备
-农业机械
-食品机械/烟草机械
-包装机械
-印刷机械/广告设备
-纺织机械
-木工/造纸/环保/医疗设备
-物流设备
-智能楼宇/安防设备
-炉窑/热处理设备
-五金工具
------------------
-工业自动化
-佳工激光网
-仪器/仪表/衡器
-电力设备
-电子/通讯/办公文具
-家电/照明/健康设备
------------------
-基础件/通用件
-标准件
-工业原材料
-电子元器件及材料
-包装材料
------------------
-CAD/CAM/PDM/PLM
-ERP/制造业信息化
-管理咨询/认证
-服务/培训/工业设计
按产品筛选
----------------------
-本行业全部文章
--------------------
-CAD/CAM软件
-CAE/模拟仿真
-PDM/PLM/C
-EDA/专用CAD
-三维打印机
-三坐标测量机
-三维扫描仪
-CAD硬件/先进制
查看本类全部文章
PDM系统中电子图纸信息入库技术的研究与实现
作者:樊广军 蔡纯杰
引言
20世纪90年代以来,广大企业从计算机辅助设计(CAD ,Computer Aided Design)技术的推广和应用中受益良多,产品设计质量和设计效率显著提高,企业效益明显增加。与此同时,随着CAD图纸的大量产生,设计人员发现要想从大量的图纸中找到所需要的信息变得越来越困难。统计数字表明,设计人员用70%的时间整理、查找旧数据,用于设计的时间只有30%,然而,新产品往往需要承袭老产品多达80%以上的成果,设计人员经常需要查阅大量老产品的设计图纸,因此如何能够减少整理、查找老产品文档的时间,提高设计人员的工作效率就成为企业函待解决的问题。此外,企业出于设计、生产和管理的需要,所采用的产品数据管理系统PDM ( Product Data Management)需要为不同部门提供不同形式和内容的材料明细表BOM(Bill Of Material)。例如生产部门需要只描述自制件情况的制造 BOM表;采购部门需要原材料及标准件的采购BOM表;财务部门则需要反映零部件成本核算情况的财务BOM表;设计部门作为需要产生信息最为完整的部门,应提供涵盖以上所有信息的BOM表,而这些BOM表信息如何能够从产品有关图档资料中大量地提取到诸如PDM等相关软件系统中也是一个急待解决的问题。因此,出于上述两方面需要的考虑,我们在开发自己的产品数据管理系统时,提出了从绝大多数企业使用最为广泛的AutoCAD图形文档中提取该文档描述信息的方案,实现企业的文档管理和BOM信息管理。
1 采用ObjectARX提取DWG文件中块属性技术的原理
ObjectARX是Autodesk公司提供的AutoCAD二次开发工具,其应用程序与AutoCAD在同一地址空间内运行并能直接利用AutoCAD核心数据库结构与代码。ObjectARX包含一组动态链接库(DLL),这些库中存在一组通用工具,使得二次开发者可直接访问AutoCAD数据库、图形系统等。
对于每一个DWG文件,AutoCAD在后台都要维护一个包含9个符号表和数据字典的数据库,用以存储图形文件中所有对象的信息.换句话说,DWG文件中包含的所有内容,都可以通过直接访问后台数据库获取。
为了便于工程图纸的归档和统一管理,企业内部的标题栏、明细表往往都要按照统一的标准格式绘制。在绘制工程图时,为减少工作量,提高绘图效率,常常把这些标题栏、明细表制作成标准的属性块或者标准模板,直接插入到图纸中。
正是基于上述现象,本文用ObjectARX技术访问AutoCAD数据库,得到图纸空间中的块(Block)对象,进而获取块对象属性值。对于标题栏、明细表属性块而言,其属性值就是我们所要录人产品数据库的信息。
2 数据库访问技术
目前,访问数据库的技术多种多样,但最为通用的是ODBC(Open Database Connectivity,开放数据库互联)、OLE DB(对象链接与嵌人数据库)和ADO(ActiveX Data Object,ActiveX数据对象)3种,三者之间的关系见图1。由于ODBC只能访问关系型数据库,不能访问对象数据库以及其它非关系型数据库,因而其使用范围受到一定的限制;OLE DB访问数据库的底层接口,其功能非常强大,使用比较灵活,访问速度很快,但是它对自动化的支持不是很好,访问也比较复杂;ADO位于OLE DB之上,是OLE DB的使用者,ADO应用程序通过ADO再访问OLE DB提供者程序,访间速度自然就要慢一些,但是ADO为自动化提供了很好的支持,使得访问数据库非常方便,内存支出也比较少。
图1 三种数据库访问技术的关系图
3 标准块属性标签与产品数据库表中字段的关系
不同的企业在实施PDM系统时其产品数据库表中的字段名并不完全相同,而字段名与标准块属性标签有着对应的关系,但产品数据库表中字段名的个数与块属性标签并不完全等同。例如,某些产品数据库表中的数据需要保存图纸的存取路径信息,即有存取路径这样的字段名,显然标题栏属性块中没有包含这一信息,我们需要从其它对象中获取;明细表属性块中包含了零件的个数、单件重量与总计重量3个属性标签,显然,总计重量是由零件个数、单件重量计算得到的,象总计重量这样可以由其它字段按照一定的运算法则推理得到的关联数据,我们没有必要保存到产品数据库中。因为产品数据作为实施整个PDM系统的基础,应在满足需要的情况下尽可能地减少冗余数据,去掉数据之间一些不必要的约束,以便于数据的管理,同时节省存储空间,如果用户确实需要象总计重量这样的关联信息,我们可以通过视图的方式反馈给用户,而不必存储到PDM数据库中。
总而言之,标准块属性标签定义的首要原则是使绘图过程尽可能简单,而数据字段的定义则是在保证字段信息能够从AutoCAD后台数据库获取的前提下,使产品数据库简洁,易于维护与管理,同时对整个PDM系统的实施提供足够的支持。块属性标签与数据字段名之间的对应关系见表1。
表1 块属性标签与数据字段名之间的对应关系
4 属性块与数据表的映射
采用在数据库中创建一个映射表(blockreference)的方式来实现不同的块与相对应的数据库表的正确匹配。映射表中包含了属性块名、数据表名以及数据字段名等信息,体现了属性块与数据表的一一对应关系。完成属性块和数据表的定义后,需要预先将属性块名以及数据表名、字段等信息添加到映射表。这样,当从图纸空间提取到块属性对象属性值后,首先根据块名查找映射表,找到与之对应的数据表,然后把属性值存储到该数据表中。映射表中明细表块与数据表的映射信息见表2,表中keyname、keytype分别表示Bill Of Items表关键字名称、关键字类型;fieldname描述了Bill Of Items表中的字段名信息,字段名之间用逗号分隔。表2 映射表中明细表块与数据表的映射信息
5 数据的提取与入库
数据的提取与入库过程遵循的流程见图2。首先在AutoCAD中打开包含属性块的图形文件,运行ObjectARX应用程序,应用程序会自动扫描图形空间,获取所有的块对象;然后从AutoCAD数据库中得到块名,并显示在图3所示的属性块遍历对话框中,也就是说,属性块名控件中列出了当前图形空间中所有类型的块对象,一个块名对应一种类型的块对象;接下来在属性块名列表控件中选择需要提取属性值的块类型,应用程序根据所选择的块名自动将该类型块对象的所有自定义属性标签显示在属性集列表控件中,然后单击遍历属性值按钮,应用程序会自动提取该类型属性块的所有自定义属性值,并将属性值显示在对话框下方的记录表中;最后单击保存按钮,将记录表中的属性值保存到相对应的数据表中。实际上,为了保证数据的简洁、有效,在保存到数据库之前需要进行数据校验,具体的数据校验机制依赖于企业对数据的具体要求。我们知道,数据库表中关键字段的值是惟一的,也就是说不能有两条或两条以上的记录关键字值是相同的,因此,在数据保存到数据库之前需要对关键字进行数据校验,即数据库中已经存在的记录不能重复保存。如果不同的产品和部件中使用了同一种零件,零件信息再次保存到产品数据库时只需将零件数量累加。
图2 数据提取与入库过程图
6 结束语
标题栏、明细表信息以产品数据的形式存储到PDM数据库对应的数据表中之后,用户可以根据零件代号快速检索到零件图号、图纸文件的存取路径等信息,也可以通过零件材料、零件名称等预先定义好的字段模糊检索,再也不需要从大量的电子图纸中手动查找所需要的信息。当然,实施PDM系统的意义还远不止于此,文档管理也仅仅是PDM系统五大基本功能之一[2]。但是,不论PDM系统的功能如何强大,产品数据始终是实施PDM系统的基石,如果PDM数据库中没有数据存在,PDM的实施也就无从谈起。
参考文献:
[1] 陈小玲.浅议PDM的应用[J].沿海科技与企业,2005,66(6):172-193.
[2] 童秉枢,李建明.产品数据管理(PDM)技术[M].北京:清华大学出版社,2000.
[3] 王福军,张志明,张师伟.AutoCAD2000环境下C/Visual C++应用程序开发教程[M].北京:北京希望电子出版社,2000.
[4] 朱学军.用ARX开发AutoCAD时的ADO技术研究[J].重庆高等工业专科学校学报,2004,2(1):33-35.(end)
文章内容仅供参考
(投稿 )
(如果您是本文作者,请点击此处 )
(5/28/2009)
对 PDM/PLM/CAPP 有何见解?请到 PDM/PLM/CAPP论坛 畅所欲言吧!