引言
目前,CAD已經(jīng)在企業(yè)中得到了廣泛的應(yīng)用,并明顯地提高了設(shè)計(jì)能力和圖紙質(zhì)量,但工程師們?cè)谙硎蹸AD帶來的好處的同時(shí),不得不將大量的時(shí)間浪費(fèi)在查找設(shè)計(jì)所需信息上,因此對(duì)于自動(dòng)獲取電子圖文檔信息的需求變得越來越迫切。
在數(shù)據(jù)庫基礎(chǔ)上發(fā)展起來的產(chǎn)品數(shù)據(jù)管理(Product data management,簡(jiǎn)稱PDM)技術(shù),可以將企業(yè)內(nèi)分布于各種系統(tǒng)和介質(zhì)中的關(guān)于產(chǎn)品及產(chǎn)品數(shù)據(jù)信息進(jìn)行集成與管理,使得企業(yè)由過去的依賴紙質(zhì)文檔的管理轉(zhuǎn)變?yōu)檎嬲钠髽I(yè)信息化管理。PDM系統(tǒng)中的圖文檔管理的基本功能就是將圖文檔的基本信息(如圖號(hào)、名稱、材料等)進(jìn)行人庫、編輯和查詢。這種方便快捷的圖文檔查詢和瀏覽功能是基于“圖檔人庫”功能,它可以將在使用PDM之前,工作過程中已經(jīng)生成的大量圖文檔錄人到數(shù)據(jù)庫中,是PDM圖文檔管理中的重要的功能之一。在這個(gè)過程中,圖文檔中用于文件查詢以及文件本身的屬性性質(zhì)的一些基本信息也同時(shí)錄人到數(shù)據(jù)庫中。
本文的工作就是要解決在圖文檔人庫存儲(chǔ)的過程中,文件中的基本信息如何處理的問題。
1、圖文檔的存儲(chǔ)方式
圖文檔在人庫存儲(chǔ)的過程中,為了使PDM系統(tǒng)對(duì)人庫后的文件能有效管理,要求圖檔的基本信息同時(shí)錄人,因此它的存儲(chǔ)方式一般分兩種:
一種方式是保持文件的完整性,這些文件中的數(shù)據(jù)不能與文件脫離,一旦脫離就失去意義,因此數(shù)據(jù)和文件要封裝在一起,然后存放在文件服務(wù)器上,即所謂的“打包”。
另一種方式是從文件中可以提取一些數(shù)據(jù),這些數(shù)據(jù)具有獨(dú)立的意義,將這些數(shù)據(jù)分門別類地放到數(shù)據(jù)庫中,以便對(duì)文件內(nèi)容進(jìn)行檢索和統(tǒng)計(jì),即所謂的“打散”。
PDM系統(tǒng)所管理的各種文檔的存儲(chǔ)方式各不相同。
(1)圖形文件中的各個(gè)元素沒有必要分別管理,只需將文件的整體,名稱代號(hào)以及標(biāo)題欄中的基本元素和特征參數(shù)放到數(shù)據(jù)庫中。
(2)數(shù)據(jù)文件中由相應(yīng)的應(yīng)用程序分析后產(chǎn)生的數(shù)據(jù)文件往往數(shù)據(jù)量大,可讀性差,對(duì)這樣的文件除了特征參數(shù)外,文件整體存儲(chǔ)。但是數(shù)據(jù)文件中產(chǎn)品定義信息中的數(shù)據(jù)可以作為屬性,就象關(guān)鍵字一樣便于用戶查詢有關(guān)文件,需要“打散”處理。
(3)文本文件記錄的各種技術(shù)要求,更改說明,使用方法中,除了個(gè)別特殊信息需要進(jìn)行檢索和統(tǒng)計(jì)外,一般按整體管理。
(4)表格文件中像產(chǎn)品定義信息這樣的表格文件描述了產(chǎn)品部件或零件的各種屬性,是分類檢索的主要依據(jù)和匯總的主要對(duì)象,因此必須從文件中提取,然后“打散”,把它們分門別類的放到數(shù)據(jù)庫中。
其中的圖形文件,尤其是企業(yè)中大量使用的AutoCAD軟件所產(chǎn)生的CAD圖檔的讀取和信息處理是PDM圖檔人庫的重點(diǎn),所以在此要重點(diǎn)分析一下CAD圖紙標(biāo)題欄中的圖號(hào)、設(shè)計(jì)者、創(chuàng)建日期、版本號(hào)及類型等信息的自動(dòng)提取和人庫問題。
DWG作為AutoCAD的缺省文件格式,其內(nèi)部結(jié)構(gòu)尚未公開,但其DXF文件格式卻是用來進(jìn)行數(shù)據(jù)交換的公開格式文件,通過讀取DXF類型的圖形交換文件讀取圖紙標(biāo)題欄的信息,實(shí)現(xiàn)信息批量人庫。
2、DXF文件結(jié)構(gòu)分析
DXF類型的圖形交換文件是具有專門格式的ASCII碼的文本文件,它比較好讀,易于被其它程序處理。主要用于實(shí)現(xiàn)高級(jí)語言編寫的程序與AutoCAD系統(tǒng)連接,或其他CAD系統(tǒng)與AutoCAD交換圖形文件如圖1所示。
2.1DXF文件的總體結(jié)構(gòu)
DXF文件本質(zhì)上是由成對(duì)的代碼和與代碼關(guān)聯(lián)的值組成的。這些代碼(即組碼)不僅指出了其后組值的類型,而且與此組值配對(duì)。通過使用這些配對(duì)的組碼和組值,DXF文件被組織成區(qū)域,包括:HEADER(標(biāo)題)區(qū)域、CLASSES(類)區(qū)域、TABLES(表)區(qū)域、BLOCKS(塊)區(qū)域、ENTITIES(實(shí)體)區(qū)域、OBJECTS(對(duì)象)區(qū)域和EOF(文件結(jié)尾)。這些區(qū)域由記錄組成,而記錄又由依次排列的組碼和數(shù)據(jù)條目組成。在DXF文件中,每個(gè)組碼和每個(gè)數(shù)據(jù)條目都各占一行。
每個(gè)區(qū)域都是以一個(gè)其后跟隨著字符串SECTION的組碼0開始,接著是組碼2和表示區(qū)域名稱的字符串(例如HEADER)。每個(gè)區(qū)域都是由定義它的元素的組碼和組值組成。其后跟著字符串ENDSEC的組碼0表示該區(qū)域結(jié)束。如表1所示。
2.2ENTITIES區(qū)域的作用
ENTITIES(實(shí)體)區(qū)域記錄了每個(gè)幾何實(shí)體的名稱及有關(guān)的幾何數(shù)據(jù),如ARC,CIRCLE,LINE,MTEXT及POINT等實(shí)體。圖形文件的圖形部分信息基本在這一段中描述。本文所研究的標(biāo)題欄中的文本信息即是用ENTITIES區(qū)域中的MTEXT(文本框)實(shí)體來描述。因此將重點(diǎn)分析一下MTEXT實(shí)體中的一些組碼和組值。
表1列出描述MTEXT的一些屬性,左邊為組碼,右邊的說明給出了它的具體含義。
由表1我們可以看到,組碼1的值代表了這個(gè)文本的字符串,讀出它的值,就可以得到這個(gè)文本信息。這個(gè)文本值對(duì)應(yīng)何種屬性,則由這個(gè)文本在圖中的位置即它的插人點(diǎn)來決定。如圖2所示,圖紙的標(biāo)題欄中的圖檔名稱,編號(hào)等信息固定在一個(gè)個(gè)矩形框中,讀出其插人點(diǎn)并判斷落在哪個(gè)矩形框中,那么這個(gè)字符串值就是相應(yīng)的圖檔屬性值。插人點(diǎn)的坐標(biāo)由組碼10和20的組值讀出。
2.3HEADER區(qū)域的作用
為了確定矩形框的位置,我們需要確定一個(gè)基點(diǎn),相對(duì)于基點(diǎn)的各個(gè)矩形框的位置就可以計(jì)算出來。通常我們?yōu)榱朔奖闫鹨姲堰@個(gè)基點(diǎn)定在標(biāo)題欄的最右下點(diǎn),也即整個(gè)圖幅的右下點(diǎn),這個(gè)點(diǎn)可以通過讀取DXF文件中HEADER區(qū)域中的代碼讀出這個(gè)點(diǎn)的x,y坐標(biāo)值。
表2列出這個(gè)區(qū)域中的一些組碼及說明。
由表2我們可以看到,只要讀取DXF文件中$LIMMIN變量后的組碼10和20的值即可以得到圖幅的左下點(diǎn)坐標(biāo)值,同理可得到圖幅的右上點(diǎn),有這兩個(gè)點(diǎn)就可以確定圖幅的最右下點(diǎn),即標(biāo)題欄的基點(diǎn)。
3、程序的實(shí)現(xiàn)及流程圖
應(yīng)用程序采用VisualC++6.0語言開發(fā),VC語言提供了豐富的MFC類庫,使用者可以使用它的類庫,方便快捷的建立一些數(shù)據(jù)結(jié)構(gòu),比如用CPoint類定義基點(diǎn),CRect類定義矩形區(qū)域。并可以運(yùn)用CRect類中的成員函數(shù)PtInRect0判斷點(diǎn)是否落入矩形區(qū)域。
圖3為程序的總流程圖,需要先讀出基點(diǎn),再定義模板,然后讀出文本信息。圖4為讀取基點(diǎn)的流程圖,求得的變量maxx和miny即為基點(diǎn)的x,y坐標(biāo),由此可以構(gòu)造基點(diǎn)類對(duì)象。
為了方便信息錄人數(shù)據(jù)庫,還定義了一個(gè)自定義的CBiaoTiLanMod類,它的成員變量是文本框矩形類和兩個(gè)文本字符串,分別表示矩形框和它所包含的屬性名及文本值(定義略)。
根據(jù)基點(diǎn)和圖2提供的尺寸,創(chuàng)建標(biāo)題欄模板類對(duì)象組,以分別表示各個(gè)矩形區(qū)域和落人這個(gè)區(qū)域所對(duì)應(yīng)的文本值。程序讀出DXF文件中的文本框的值,并根據(jù)插人點(diǎn)判斷落人哪個(gè)對(duì)象的矩形區(qū)域后,將文本值賦予此對(duì)象的成員變量Text2,隨后將Text2存人相應(yīng)的數(shù)據(jù)庫表中。信息的錄人工作就可以完成了。
4、結(jié)論
本文提出在開發(fā)PDM系統(tǒng)“圖檔人庫”功能的過程中,圖形文件,數(shù)據(jù)文件,文本文件以及表格文件所采取的不同的文件存儲(chǔ)方式,并重點(diǎn)解決圖形文件人庫后圖檔對(duì)象的名稱、圖號(hào)、設(shè)計(jì)者等屬性的自動(dòng)生成的問題。通過分析DXF文件結(jié)構(gòu),讀取DXF文件結(jié)構(gòu)的CAD圖紙中的標(biāo)題欄信息,從而將電子圖紙中的標(biāo)題欄信息自動(dòng)提取人庫,并成功的運(yùn)用到實(shí)際操作中。
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國(guó)專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應(yīng)用 制表、數(shù)據(jù)處理及宏應(yīng)用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機(jī)械制圖基礎(chǔ)培訓(xùn)教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓(xùn)教程 [朱
- 2021-08-30電氣CAD實(shí)例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風(fēng)暴2:Maya影像實(shí)拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機(jī)械A(chǔ)utoCAD 項(xiàng)目教程 第3版 [繆希偉 主編] 2012年P(guān)DF