刘杰
武汉理工大学能源与动力工程学院 武汉 430063
基于OLE技术的造船厂信息一体化研究
刘杰
武汉理工大学能源与动力工程学院 武汉 430063
利用OLE技术和vb.net语言,开发接口软件,该软件能实现自动提取CAD图纸中的明细栏数据,并保存到数据库,进一步检索ERP系统的物料库存,自动生成BOM清单或采购清单,提高企业的物流响应敏捷度,实现造船厂的信息一体化。
CAD ERP OLE信息集成
随着企业信息化的逐步开展,信息管理(MIS)系统、企业资源计划(ERP)系统等先进技术开始在造船企业应用和推广,企业的管理模式得到了很大的改观[1]。生产过程中产生的大量设计图纸文件,可以利用CAD软件来处理;物流、资金流和信息流,应用ERP系统进行管理[2]。但ERP与CAD间无法集成,它们之间往往彼此孤立,成了一个个信息“孤岛”。CAD系统和ERP系统间信息的沟通还需要人工来进行,由人工读取大量的CAD图纸文件中的信息,然后再输入ERP系统。这样,对于同一基本项目(如产品、零件等)的信息各自从不同的角度定义;采用不同的数学模型描述;用不同的方式录入、存储、维护;造成大量重复手工录入、信息冗余,并得不到同步更新[3]。这已经成为制约管理效率和生产效率进一步提高的瓶颈,在客观上阻碍了进一步在整个企业中推行并行工程、敏捷制造等更新的信息技术。
基于OLE技术,研究AutoCAD图纸信息自动提取,并将提取的信息自动存入ERP系统的数据库。可有效地将CAD系统与ERP系统集成,提高图纸信息检索速度和企业的物流响应敏捷度,实现造船厂的信息一体化。
1.1 OLE技术
自从Windows操作系统流行以来,“剪贴板”首先解决了不同程序间的数据交换问题。但利用剪贴板技术,应用程序开发者得自行编写解析数据格式的代码。于是动态数据交换(DDE)的通信协定应运而生。该协定是实现应用程序间通信联系的一种标准方法,采用DDE技术,保证了应用程序间数据通信的一致性。但是,解决彼此之间的“数据格式”转换仍然是程序员沉重的负担。对象的链接与嵌入(OLE)技术的诞生将原来应用程序的“数据交换”提高到“对象交换”的层次;这样程序间不但获得数据,同时获得彼此的应用程序对象。这就极大地方便了程序间的信息交换。
1.2 AutoCAD ActiveX自动化对象
ActiveX是微软公司推出的一个技术标准,该技术是OLE技术的进一步扩展。其作用是在Windows系统的统一管理下协调不同的应用程序,允许应用程序之间相互控制、相互调用。从AutoCAD R14版开始,AutoCAD引入了ActiveX技术。由于ActiveX技术是一种完全面向对象的技术,所以许多面向对象化编程的语言和应用程序,可以通过ActiveX与AutoCAD进行通信,并利用AutoCAD提供的许多功能。
AutoCAD ActiveX是由一系列的对象,按一定的层次组成的一种对象结构,每一个对象代表了AutoCAD中一个明确的功能,如绘制图形对象、定义块和属性对象等等。AutoCAD对外部应用程序提供的功能,均以方法和属性的方式被封装在ActiveX对象中。在AutoCAD ActiveX中提供了各种封装有AutoCAD功能的对象。对这些对象有清楚的了解后,就可以通过OLE接口对一个具体的图纸文件进行信息提取。
2.1 数据库设计
要实现的功能是将CAD图纸文件中的信息自动提取、保存到ERP系统所数据库中,要读取的是AutoCAD图纸文件明细表的信息。为保存相应的信息,需设计如下两个数据库表。
1)设计“CAD图纸文件表”。用于存储CAD文件名、CAD文件等信息。由于在对某个CAD文件明细表进行查询和更新操作时,需要确定该明细表有那些具体的字段。所以在“CAD图纸文件表”中设计一个字符类型的字段Fields str,在该字段中保存一个具体CAD图纸文件的明细栏中有那些具体的字段。很显然,这个信息一张CAD图纸只需要保存一次,所以保存在“CAD图纸文件表”中。
2)设计“CAD图纸明细信息表”。用于存储CAD文件明细表中提取的信息。在设计数据库的表结构时,考虑到各个CAD图纸文件的明细表的具体内容可能不同。例如有些明细表的表头包括“序号、名称、数量、材料、规格、备注”;而有的明细表则包括“序号、代号、名称、数量、重量(单件、总计)、材料、备注”。所以将各种规格的CAD图纸文件所涉及到的表头共同信息都包括在“CAD图纸明细信息表”中。在读取时,对某张图纸明细表中没有涉及的字段则保持为空。
2.2 程序流程设计
所开发的集成系统处理流程见图1。
图1 基本流程图
2.3 系统设计实现
CAD图纸中,明细表由表头和表格内容两部分组成,见图2。表格内容都是文字信息,在CAD文件中以三种形式存在:单行文本(Text)、多行文本(MText)和块属性(Block Attribute)。明细表表格内容是需要读取的信息。虽然通过遍历CAD模型空间,将对象名为“AcDbMText”(多行文本字符串)或“AcDbText”(单行文本字符串)的所有对象都可以读出。但是这样读取的文本字符串是整个CAD模型空间(包括明细表以外)中所有的文本字符串,如何筛选出所需要的明细栏目是要解决的问题。解决这个问题的关键是如何检测明细表所在的范围,即确定图2中所示的“起始点”和“终止点”。很显然,由用户人工来选择明细表区域是可行的方法,但这样就必须出现CAD界面,失去了实际应用的意义。所以,必须要由程序自动检测明细表所在的区域,不显示出CAD界面。
图2 CAD图纸明细栏示意
定义“起始点”为明细表的左下角点。要确定“起始点”的坐标,本文提炼出明细表“起始点”的最重要特征:明细表左下角的字符串内容都是“序号”。根据CAD模型空间中字符串“序号”的X、Y坐标值,求得与其最接近,且比该X、Y坐标要小的两条线段,这两条线段的交点即为明细表“起始点”。通过明细表左边框和下边框获得了“起始点”的坐标,就可以确定明细表左边框和下边框所在线段两端点的X、Y坐标;这样明细表“终止点”的Y坐标值等于明细表左边框两端点中Y坐标的最大值;明细表“终止点”的X坐标值等于明细表下边框两端点中X坐标的最大值。
2.4 系统界面
在造船企业中,一般用CAD软件设计产品,完成后产生的设计图纸和设计目录表等文档常常人为地存放在某个目录下,有较大的随机性。很容易出现重复文件,导致文件不一致的人为错误。在相关人员休假等情况下,又可能出现无法访问设计图纸文件的情况出现。这种分散的文件管理模式已经不能适应造船厂的生产规模的需要。所以,利用数据库技术对CAD图纸文件进行集中保存;利用权限管理进行访问控制就具有重要的实用意义。但这种应用只是实现了文档管理的功能,CAD图纸的信息仍然和ERP系统是隔离的。CAD系统与EPR系统之间信息传递的主要问题是实体的定义不统一,信息传递速度严重滞后,重复录入造成数据错误和冗余。所以保持信息的流通和一致才是本系统的关键。
本文所开发的系统很好地解决了这些问题,该系统作为ERP系统和CAD系统的接口软件,开发工具使用vb.net语言,界面见图3。图3所示例的数据是从图2所示的图纸中提取的。
图3 软件界面
CAD软件和ERP软件的应用,对造船企业信息管理的发展起了重要作用。但在实际应用中,由于传统上分属两个不同的专业领域,CAD软件和EPR软件的接口问题常常被人忽视,导致信息不流畅,影响企业效率的进一步提高。本文基于OLE技术,实现自动提取AutoCAD图纸信息,并将该信息自动存入ERP系统的数据库,将CAD系统与ERP系统有机集成,提高图纸信息检索速度和企业的物流响应敏捷度,实现了造船厂的信息一体化。
[1]黄少滨,李 敏,孔宪娟.CAD与ERP信息集成方法研究[J].计算机工程与应用,2003(5):213-216.
[2]刘炜杰,刘云超,张 景.结合CAD技术实现ERP的高级产品数据管理[J].计算机应用研究,2001(1):122-124.
[3]李 敏,罗 皓.一种集成CAD的ERP信息集成方法研究[J].应用科技,2003,30(11):59-61.
On the all-in-one of information in shipyard based on the OLE technology
LIU Jie
School of Energy and Power Engineering Wuhan University of Technology Wuhan 430063
An interface software was developed by means of the technology of OLE and vb.net,by which the list data can be extracted from the CAD drawings automatically and saved in a database.Besides,the materiel in stock in ERPsystem can be indexed and subsequently the BOM bill or purchase bill can be created automatically in order to enhance the enterprise′s response swiftness to the physical distribution and realize the all-in-one of information in the shipyard.
CAD ERP OLE message integration
U673.2
A
1671-7953(2007)02-0084-03
2006-09-30
修回日期2006-10-24
刘 杰(1975—),男,硕士,讲师。