對DWG文件解析的研究報告_第1頁
對DWG文件解析的研究報告_第2頁
對DWG文件解析的研究報告_第3頁
對DWG文件解析的研究報告_第4頁
對DWG文件解析的研究報告_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

有關(guān)DWG文獻解析的研究匯報(草稿)(張玄德)通過對DWG文獻的資料整頓和對華天軟件周云鵬經(jīng)理的征詢,Autodesk企業(yè)一直沒有公開DWG文獻的存儲格式,去年華天軟件也開始著手解析該文獻,此前一直采用第三方的組件實現(xiàn)。他們采用的是通過ODA數(shù)據(jù)互換平臺對DWG的文獻格式進行解析(見圖1)。圖1通過對比分析,目前主流的對DWG文獻解析的手段有6種。分別是:采用AutoLisp和VisualLisp進行二次開發(fā)。這種方式有點是集成性好,缺陷是無法掙脫CAD運行環(huán)境。采用ADS/ObjectARX實現(xiàn)DWG文獻的解析。ADS/ObjectARX是一種用C語言訪問的DWG文獻的開發(fā)工具,ObjectARX是一種基于C++的類庫,并且AutoCAD自身也是ObjectARX創(chuàng)立的CAD軟件系統(tǒng),因此可以采用ObjectARX對DWG文獻進行完全訪問,不過ObjectARX只能運行在AutoCAD內(nèi)核環(huán)境中。通過DXF文獻解析DWG文獻。DXF文獻是DWG文獻的一種文本形式的等價表達。不過后期通過DXF文獻很難完全訪問DWG文獻的內(nèi)在信息。通過COM/ActiveX方式實現(xiàn)對DWG文獻的解析。該種方式的進程透明性和位置透明性為不一樣應(yīng)用程序進程之間通過網(wǎng)絡(luò)進行數(shù)據(jù)通信提供了一種良好的機制,實現(xiàn)雙接口的組件既能保證強類型語言應(yīng)用程序的高效率。這種方式的缺陷是應(yīng)用程序作為客戶端無法獨立于AutoCAD這個ActiveX服務(wù)器單獨運行。采用ObjectDBX方式實現(xiàn)。由于AutoCAD所提供的四種訪問DWG文獻的措施都無法脫離CAD運行平臺獨立運行。ObjectDBX是一套基于C++的類庫。與ObjectARX不一樣的是ObjectDBX不在依賴AutoCAD平臺。只限制于Windows平臺和VisioC++開發(fā)工具。采用OpenDwgToolkit實現(xiàn)對DWG文獻的解析。由于ObjectDBX應(yīng)用程序只能在Windows平臺上采用VisualC++來開發(fā),而網(wǎng)絡(luò)應(yīng)用開發(fā)環(huán)境要比AutoCAD單個軟件運行的環(huán)境要復(fù)雜的多。OpenDwgToolkit簡稱ODT。除了其跨平臺優(yōu)勢外,對開發(fā)者而言O(shè)DT不僅是免費的,不需要OpenDBX比較昂貴的授權(quán)費用。AutoCAD軟件是我國目前最流行的微機軟件包之一,DWG文獻為AutoDesk企業(yè)推出的圖形格式文獻,可以理解成由點、線、面等構(gòu)成的圖形數(shù)據(jù)庫。其復(fù)雜性重要來自由對象的多樣性及屬性的復(fù)雜性。例如圖形、線形、樣式的關(guān)聯(lián)。一種DWG圖紙文獻由圖紙信息和多種圖元對象構(gòu)成。分為無圖形表達類和有圖形表達類。有圖形表達類對象以塊表方式寄存;無圖形表達類包括圖層、線形。DWG文獻內(nèi)容可以分為四個部分:(一)索引部;(二)標題部;(三)實體部;(四)名表部。索引部索引部重要是由AutoCAD的版本信息及各部的首地址、各分表的首地址、長度及個數(shù)等信息構(gòu)成,從DWG文獻中的#0000-#0050H。#00-#13Char*20AutoCAD版本信息#14-#17int*4實體部首址#18-#1Fint*4名表部首址#1C-#1Fint*4圖塊定義首址#20-#23int*4圖塊定義長度#24-#27int*4文獻總長度#28-#2Bint*4常數(shù)圖塊描述段:#2C-#2Dint*2圖塊名長度(25H)#2E-#2Fint*2圖塊個數(shù)#30-#31int*2標識數(shù)#32-#35int*2圖塊名表首址層描述段:#36-#37int*2層名長度(25H)#38-#39int*2層的個數(shù)#3A-#3Bint*2標識數(shù)#3C-#3Fint*2層名表首址字型描述段:#40-#41int*2字型名長度(C2H)#42-#43int*2字型個數(shù)#44-#45int*2標識數(shù)#46-#49int*2字型名表首址線形描述段:#4A-#4Bint*2線型名長度(BBH)#4C-#4Dint*2線型個數(shù)#4E-#4Fint*2標識數(shù)#50-#53int*4線型名表首址視圖描述段:#54-#55int*2視圖名長度(5BH)#56-#57int*2視圖個數(shù)#58-#59int*2標識數(shù)#5A-#5Dint*4視圖名表首址各個地址間的關(guān)系:實體部首址=索引部長度+標題部長度表部首址=實體部首址+實體部總長度塊實體首址=表部首址+表部總長度文獻總長度=塊實體首址+塊實體部總長度環(huán)境部該部給出了系統(tǒng)變量,屬性設(shè)置及目前狀態(tài)等信息,它位于DWG文獻的#005E-#03EEH。#05E-#075INSBASEreal*24#076-#077實體個數(shù)int*2#078-#08FEXTININreal*24#090-#0A7EXTMAXreal*24#0A8-#0B7LIMMINreal*16#0B8-#0C7LIMMIXreal*16#0C8-#0DFVIEWCTRreal*24#0E0-#0E7VIEWSIZEreal*8#0E8-#0E9SNAPNODEint*2#0EA-#0F9SNAPUNITint*16#0FA-#109SNAPBASEreal*16#10A-#111SNAPANCint*8#112-#113SNAPSTYLint*2#114-#115SNAPISOPAIRint*2#116-#117GRIDNODEint*2#118-#127GRIDUNITint*2#128-#129ORTHOMODEint*2#12A-#12BREGENNODEint*2#12C-#12DFILEMODEint*2#12E-#12FQTEXTMODEint*2#130-#131DRAGMODEint*2#132-#139LTSCALEint*8#13A-#141TEXTSIZEreal*8#142-#149TRACEWIDreal*8#14A-#14BCLAYERreal*2#14C-#163#164-#165LUNITSint*2#166-#167LUPRECint*2#168-#169AXISMODEint*2#16A-#179AXISUNITint*16#17A-#191SKETCHINCreal*8#182-#189FILLETRADreal*8#18A-#18BAUNITSint*2#18C-#18DAUPRECint*2#18E-#18F#190-#191OSMODEint*2#192-#193ATTMODEint*2#194-#1A2MENUchar*15#1A3-#1AADIMSCALEreal*8#1AB-#1B2DIMASZreal*8#1B3-#1BADIMEXOreal*8#1BB-#1C2DIMDLIreal*8#1C3-#1C4DIMEXEreal*8#1CB-#1D2DIMTPreal*8#1D3-#1DADIMTNreal*8#1DB-#1E2DIMTXTreal*8#1E3-#1EADIMCENreal*8#1E8-#1F2DIMTSZreal*8#1F3DIMTOLint*1#1F4DIMLINint*1#1F5DIMTIHint*1#1F6DIMTOHint*1#1F7DIMSE1int*1#1F8DIMSE2int*1#1F9DIMTADint*1#1FA-#228#229-#230ELEVATIONreal*8#234-#238THICHNESSreal*8#239-#250VIEWDIRreal*24#251-#2B2圖形顯示闡明#2E3-#2E4BLIPMODEint*2#2E5-#3EE備用實體部該部給出了所有圖形實體的描述,圖形實體又分為簡樸圖形實體和復(fù)雜圖形實體。簡樸圖形實體是點、直線等基本圖形。復(fù)雜圖形實體指多線段、圖塊等由基本圖形實體所構(gòu)成的圖形。每一種圖形實體均有描述段,他由描述首部和描述內(nèi)容兩部分所構(gòu)成,描述首部的格式是固定的,描述內(nèi)容各不相似。描述首部格式:LINE實體標識數(shù)為01H,描述段長度為28H。#00-#07描述首部#08-#17起點坐標值real*16#18-#27終點坐標值real*16POINT實體標識數(shù)為02H,描述段長度為18H#00-#07描述首部#08-#17點的坐標值real*16CIRCLE實體標識數(shù)為03H,描述段長度為20H#00-#07描述首部#08-#17圓心坐標值real*16#18-#1F圓的半徑real*8SHAPE實體標識數(shù)為04H,描述段長度可變#00-#07描述首部#08-#17插入坐標值real*16#18-#1F型體高度real*8#20型體號real*8#21-#28插入角度(可省略)real*8若描述首部中的屬性字第0位為1,讀值存在,否則缺省值為0#29型體文獻號(可?。﹊nt*1若描述首部中的屬性字第1位為1,讀值存在,否則缺省值為0TEXT實體標識數(shù)為07H,描述段長度可變#00-#07描述首部#08-#17文字頭的坐標值real*16#18-#1F字符高度real*8#20-#21字符串長度into*2#22字符串char*256#字符創(chuàng)旋轉(zhuǎn)角real*8ARC實體標識數(shù)為08H,描述段長度為30H#00-#07描述首部#08-#17圓心坐標值real*16#18-#1F半徑real*8#20-#27起始角real*8#28-#2F終止角real*8TRACE實體標識數(shù)為09H,描述段長度為48H#00-#07描述首部#08-#17第一點坐標值real*16#18-#1F第二點坐標值real*16#28-#37第三點坐標值real*16#38-#47第四點坐標值real*16SOLID實體標識數(shù)為0BH,描述段長度為48H#00-#07描述首部#08-#17第一點坐標值real*16#18-#1F第二點坐標值real*16#28-#37第三點坐標值real*16#38-#47第四點坐標值real*16復(fù)雜圖形實體在DWG文獻中,復(fù)雜圖形實體指反復(fù)圖形、圖塊和多段連線實體,它們都是有不止一種標識數(shù)的實體。反復(fù)圖形實體反復(fù)圖形指某些簡樸圖形的反復(fù)排列,它的描述由三部分構(gòu)成,開始實體、簡樸圖形實體和結(jié)束實體。(a)開始實體標識數(shù)為06H,描述段長度為08H,格式同描述首部。(b)結(jié)束實體標識數(shù)為07H,描述段長度為1CH。#00-#07描述首部#08-#09反復(fù)行數(shù)int*2#0A-#0B反復(fù)列數(shù)int*2#14-#1B反復(fù)行距real*8#14-#1B反復(fù)列距real*8實體圖塊圖塊實體就是將某些簡樸圖形實體看作一種整體,他的描述由三部分構(gòu)成,BLOCK(圖塊開始)實體,簡樸圖形實體和圖塊結(jié)束實體。BLOCK實體標識數(shù)為0CH,描述段長度為08H,格式同描述首部(b)圖塊結(jié)束實體標識數(shù)為0CH,描述段長度為18H。#00-#07描述首部#08-#17基點坐標值real*16POLYLINE實體多段連線指直線和圓弧所組合的曲線,它的描述也由三部分構(gòu)成:POLYINE(多段連線)實體、結(jié)點實體和結(jié)束實體。POLYLINE實體標識數(shù)為8013H,描述段長度可變#00-#07描述首部#08狀態(tài)值(可省)int*1(若屬性字第0位為1,該值存在,否則為0)數(shù)值0,正常;數(shù)值1封閉;數(shù)值2擬合#09-#10起始寬度(可省)#11-#18終止寬度(可?。┙Y(jié)點實體標識數(shù)為14H,描述長度可變#00-#07描述首部#08-#17結(jié)點坐標值#18-#1F結(jié)點起始寬度#20-#27結(jié)點終止寬度#28-#2F凹凸值#30結(jié)點狀態(tài)#31--#38光滑切線方向結(jié)束

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論