劉杰
武漢理工大學(xué)能源與動(dòng)力工程學(xué)院 武漢 430063
基于OLE技術(shù)的造船廠信息一體化研究
劉杰
武漢理工大學(xué)能源與動(dòng)力工程學(xué)院 武漢 430063
利用OLE技術(shù)和vb.net語(yǔ)言,開(kāi)發(fā)接口軟件,該軟件能實(shí)現(xiàn)自動(dòng)提取CAD圖紙中的明細(xì)欄數(shù)據(jù),并保存到數(shù)據(jù)庫(kù),進(jìn)一步檢索ERP系統(tǒng)的物料庫(kù)存,自動(dòng)生成BOM清單或采購(gòu)清單,提高企業(yè)的物流響應(yīng)敏捷度,實(shí)現(xiàn)造船廠的信息一體化。
CAD ERP OLE信息集成
隨著企業(yè)信息化的逐步開(kāi)展,信息管理(MIS)系統(tǒng)、企業(yè)資源計(jì)劃(ERP)系統(tǒng)等先進(jìn)技術(shù)開(kāi)始在造船企業(yè)應(yīng)用和推廣,企業(yè)的管理模式得到了很大的改觀[1]。生產(chǎn)過(guò)程中產(chǎn)生的大量設(shè)計(jì)圖紙文件,可以利用CAD軟件來(lái)處理;物流、資金流和信息流,應(yīng)用ERP系統(tǒng)進(jìn)行管理[2]。但ERP與CAD間無(wú)法集成,它們之間往往彼此孤立,成了一個(gè)個(gè)信息“孤島”。CAD系統(tǒng)和ERP系統(tǒng)間信息的溝通還需要人工來(lái)進(jìn)行,由人工讀取大量的CAD圖紙文件中的信息,然后再輸入ERP系統(tǒng)。這樣,對(duì)于同一基本項(xiàng)目(如產(chǎn)品、零件等)的信息各自從不同的角度定義;采用不同的數(shù)學(xué)模型描述;用不同的方式錄入、存儲(chǔ)、維護(hù);造成大量重復(fù)手工錄入、信息冗余,并得不到同步更新[3]。這已經(jīng)成為制約管理效率和生產(chǎn)效率進(jìn)一步提高的瓶頸,在客觀上阻礙了進(jìn)一步在整個(gè)企業(yè)中推行并行工程、敏捷制造等更新的信息技術(shù)。
基于OLE技術(shù),研究AutoCAD圖紙信息自動(dòng)提取,并將提取的信息自動(dòng)存入ERP系統(tǒng)的數(shù)據(jù)庫(kù)??捎行У貙AD系統(tǒng)與ERP系統(tǒng)集成,提高圖紙信息檢索速度和企業(yè)的物流響應(yīng)敏捷度,實(shí)現(xiàn)造船廠的信息一體化。
1.1 OLE技術(shù)
自從Windows操作系統(tǒng)流行以來(lái),“剪貼板”首先解決了不同程序間的數(shù)據(jù)交換問(wèn)題。但利用剪貼板技術(shù),應(yīng)用程序開(kāi)發(fā)者得自行編寫(xiě)解析數(shù)據(jù)格式的代碼。于是動(dòng)態(tài)數(shù)據(jù)交換(DDE)的通信協(xié)定應(yīng)運(yùn)而生。該協(xié)定是實(shí)現(xiàn)應(yīng)用程序間通信聯(lián)系的一種標(biāo)準(zhǔn)方法,采用DDE技術(shù),保證了應(yīng)用程序間數(shù)據(jù)通信的一致性。但是,解決彼此之間的“數(shù)據(jù)格式”轉(zhuǎn)換仍然是程序員沉重的負(fù)擔(dān)。對(duì)象的鏈接與嵌入(OLE)技術(shù)的誕生將原來(lái)應(yīng)用程序的“數(shù)據(jù)交換”提高到“對(duì)象交換”的層次;這樣程序間不但獲得數(shù)據(jù),同時(shí)獲得彼此的應(yīng)用程序?qū)ο?。這就極大地方便了程序間的信息交換。
1.2 AutoCAD ActiveX自動(dòng)化對(duì)象
ActiveX是微軟公司推出的一個(gè)技術(shù)標(biāo)準(zhǔn),該技術(shù)是OLE技術(shù)的進(jìn)一步擴(kuò)展。其作用是在Windows系統(tǒng)的統(tǒng)一管理下協(xié)調(diào)不同的應(yīng)用程序,允許應(yīng)用程序之間相互控制、相互調(diào)用。從AutoCAD R14版開(kāi)始,AutoCAD引入了ActiveX技術(shù)。由于ActiveX技術(shù)是一種完全面向?qū)ο蟮募夹g(shù),所以許多面向?qū)ο蠡幊痰恼Z(yǔ)言和應(yīng)用程序,可以通過(guò)ActiveX與AutoCAD進(jìn)行通信,并利用AutoCAD提供的許多功能。
AutoCAD ActiveX是由一系列的對(duì)象,按一定的層次組成的一種對(duì)象結(jié)構(gòu),每一個(gè)對(duì)象代表了AutoCAD中一個(gè)明確的功能,如繪制圖形對(duì)象、定義塊和屬性對(duì)象等等。AutoCAD對(duì)外部應(yīng)用程序提供的功能,均以方法和屬性的方式被封裝在ActiveX對(duì)象中。在AutoCAD ActiveX中提供了各種封裝有AutoCAD功能的對(duì)象。對(duì)這些對(duì)象有清楚的了解后,就可以通過(guò)OLE接口對(duì)一個(gè)具體的圖紙文件進(jìn)行信息提取。
2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)
要實(shí)現(xiàn)的功能是將CAD圖紙文件中的信息自動(dòng)提取、保存到ERP系統(tǒng)所數(shù)據(jù)庫(kù)中,要讀取的是AutoCAD圖紙文件明細(xì)表的信息。為保存相應(yīng)的信息,需設(shè)計(jì)如下兩個(gè)數(shù)據(jù)庫(kù)表。
1)設(shè)計(jì)“CAD圖紙文件表”。用于存儲(chǔ)CAD文件名、CAD文件等信息。由于在對(duì)某個(gè)CAD文件明細(xì)表進(jìn)行查詢(xún)和更新操作時(shí),需要確定該明細(xì)表有那些具體的字段。所以在“CAD圖紙文件表”中設(shè)計(jì)一個(gè)字符類(lèi)型的字段Fields str,在該字段中保存一個(gè)具體CAD圖紙文件的明細(xì)欄中有那些具體的字段。很顯然,這個(gè)信息一張CAD圖紙只需要保存一次,所以保存在“CAD圖紙文件表”中。
2)設(shè)計(jì)“CAD圖紙明細(xì)信息表”。用于存儲(chǔ)CAD文件明細(xì)表中提取的信息。在設(shè)計(jì)數(shù)據(jù)庫(kù)的表結(jié)構(gòu)時(shí),考慮到各個(gè)CAD圖紙文件的明細(xì)表的具體內(nèi)容可能不同。例如有些明細(xì)表的表頭包括“序號(hào)、名稱(chēng)、數(shù)量、材料、規(guī)格、備注”;而有的明細(xì)表則包括“序號(hào)、代號(hào)、名稱(chēng)、數(shù)量、重量(單件、總計(jì))、材料、備注”。所以將各種規(guī)格的CAD圖紙文件所涉及到的表頭共同信息都包括在“CAD圖紙明細(xì)信息表”中。在讀取時(shí),對(duì)某張圖紙明細(xì)表中沒(méi)有涉及的字段則保持為空。
2.2 程序流程設(shè)計(jì)
所開(kāi)發(fā)的集成系統(tǒng)處理流程見(jiàn)圖1。
圖1 基本流程圖
2.3 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
CAD圖紙中,明細(xì)表由表頭和表格內(nèi)容兩部分組成,見(jiàn)圖2。表格內(nèi)容都是文字信息,在CAD文件中以三種形式存在:?jiǎn)涡形谋荆═ext)、多行文本(MText)和塊屬性(Block Attribute)。明細(xì)表表格內(nèi)容是需要讀取的信息。雖然通過(guò)遍歷CAD模型空間,將對(duì)象名為“AcDbMText”(多行文本字符串)或“AcDbText”(單行文本字符串)的所有對(duì)象都可以讀出。但是這樣讀取的文本字符串是整個(gè)CAD模型空間(包括明細(xì)表以外)中所有的文本字符串,如何篩選出所需要的明細(xì)欄目是要解決的問(wèn)題。解決這個(gè)問(wèn)題的關(guān)鍵是如何檢測(cè)明細(xì)表所在的范圍,即確定圖2中所示的“起始點(diǎn)”和“終止點(diǎn)”。很顯然,由用戶(hù)人工來(lái)選擇明細(xì)表區(qū)域是可行的方法,但這樣就必須出現(xiàn)CAD界面,失去了實(shí)際應(yīng)用的意義。所以,必須要由程序自動(dòng)檢測(cè)明細(xì)表所在的區(qū)域,不顯示出CAD界面。
圖2 CAD圖紙明細(xì)欄示意
定義“起始點(diǎn)”為明細(xì)表的左下角點(diǎn)。要確定“起始點(diǎn)”的坐標(biāo),本文提煉出明細(xì)表“起始點(diǎn)”的最重要特征:明細(xì)表左下角的字符串內(nèi)容都是“序號(hào)”。根據(jù)CAD模型空間中字符串“序號(hào)”的X、Y坐標(biāo)值,求得與其最接近,且比該X、Y坐標(biāo)要小的兩條線段,這兩條線段的交點(diǎn)即為明細(xì)表“起始點(diǎn)”。通過(guò)明細(xì)表左邊框和下邊框獲得了“起始點(diǎn)”的坐標(biāo),就可以確定明細(xì)表左邊框和下邊框所在線段兩端點(diǎn)的X、Y坐標(biāo);這樣明細(xì)表“終止點(diǎn)”的Y坐標(biāo)值等于明細(xì)表左邊框兩端點(diǎn)中Y坐標(biāo)的最大值;明細(xì)表“終止點(diǎn)”的X坐標(biāo)值等于明細(xì)表下邊框兩端點(diǎn)中X坐標(biāo)的最大值。
2.4 系統(tǒng)界面
在造船企業(yè)中,一般用CAD軟件設(shè)計(jì)產(chǎn)品,完成后產(chǎn)生的設(shè)計(jì)圖紙和設(shè)計(jì)目錄表等文檔常常人為地存放在某個(gè)目錄下,有較大的隨機(jī)性。很容易出現(xiàn)重復(fù)文件,導(dǎo)致文件不一致的人為錯(cuò)誤。在相關(guān)人員休假等情況下,又可能出現(xiàn)無(wú)法訪問(wèn)設(shè)計(jì)圖紙文件的情況出現(xiàn)。這種分散的文件管理模式已經(jīng)不能適應(yīng)造船廠的生產(chǎn)規(guī)模的需要。所以,利用數(shù)據(jù)庫(kù)技術(shù)對(duì)CAD圖紙文件進(jìn)行集中保存;利用權(quán)限管理進(jìn)行訪問(wèn)控制就具有重要的實(shí)用意義。但這種應(yīng)用只是實(shí)現(xiàn)了文檔管理的功能,CAD圖紙的信息仍然和ERP系統(tǒng)是隔離的。CAD系統(tǒng)與EPR系統(tǒng)之間信息傳遞的主要問(wèn)題是實(shí)體的定義不統(tǒng)一,信息傳遞速度嚴(yán)重滯后,重復(fù)錄入造成數(shù)據(jù)錯(cuò)誤和冗余。所以保持信息的流通和一致才是本系統(tǒng)的關(guān)鍵。
本文所開(kāi)發(fā)的系統(tǒng)很好地解決了這些問(wèn)題,該系統(tǒng)作為ERP系統(tǒng)和CAD系統(tǒng)的接口軟件,開(kāi)發(fā)工具使用vb.net語(yǔ)言,界面見(jiàn)圖3。圖3所示例的數(shù)據(jù)是從圖2所示的圖紙中提取的。
圖3 軟件界面
CAD軟件和ERP軟件的應(yīng)用,對(duì)造船企業(yè)信息管理的發(fā)展起了重要作用。但在實(shí)際應(yīng)用中,由于傳統(tǒng)上分屬兩個(gè)不同的專(zhuān)業(yè)領(lǐng)域,CAD軟件和EPR軟件的接口問(wèn)題常常被人忽視,導(dǎo)致信息不流暢,影響企業(yè)效率的進(jìn)一步提高。本文基于OLE技術(shù),實(shí)現(xiàn)自動(dòng)提取AutoCAD圖紙信息,并將該信息自動(dòng)存入ERP系統(tǒng)的數(shù)據(jù)庫(kù),將CAD系統(tǒng)與ERP系統(tǒng)有機(jī)集成,提高圖紙信息檢索速度和企業(yè)的物流響應(yīng)敏捷度,實(shí)現(xiàn)了造船廠的信息一體化。
[1]黃少濱,李 敏,孔憲娟.CAD與ERP信息集成方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2003(5):213-216.
[2]劉煒杰,劉云超,張 景.結(jié)合CAD技術(shù)實(shí)現(xiàn)ERP的高級(jí)產(chǎn)品數(shù)據(jù)管理[J].計(jì)算機(jī)應(yīng)用研究,2001(1):122-124.
[3]李 敏,羅 皓.一種集成CAD的ERP信息集成方法研究[J].應(yīng)用科技,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—),男,碩士,講師。