色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

dwg格式文件里到底存儲了什么

謝彥文2年前36瀏覽0評論

dwg格式文件里到底存儲了什么?

AutoCAD作為計算機輔助設計軟件,其文件存儲方式仍是采用二進制0、1的方式進行存儲,在該軟件設計之初即定義了dwg文件各結構部分的表示內容和表示方法、即首先制定了生成圖形和解析圖形的協議,雖然AutoCAD的源代碼并未開放,但是仍然有跡可循。

以下摘錄對AutoCAD的dwg格式文件的研究內容:

AutoCAD軟件是我國目前最流行的微機軟件包之一,DWG文件為Auto Desk公司推出的圖形格式文件,可以理解成由點、線、面等構成的圖形數據庫。其復雜性主要來自由對象的多樣性及屬性的復雜性。比如圖形、線形、樣式的關聯。一個DWG圖紙文件由圖紙信息和各種圖元對象組成。分為無圖形表示類和有圖形表示類。有圖形表示類對象以塊表方式存放;無圖形表示類包括圖層、線形。DWG文件內容可以分為四個部分:(一)索引部;(二)環境部;(三)實體部;(四)名表部。

(一) 索引部

索引部主要是由Auto CAD的版本信息及各部的首地址、各分表的首地址、長度及個數等信息構成,從DWG文件中的#0000-#0050H。

#00-#13 Char*20 AutoCAD版本信息

#14-#17 int *4 實體部首址

#18-#1F int *4 名表部首址

#1C-#1F int *4 圖塊定義首址

#20-#23 int *4 圖塊定義長度

#24-#27 int *4 文件總長度

#28-#2B int *4 常數

1、 圖塊描述段:

#2C-#2D int *2 圖塊名長度(25H)

#2E-#2F int *2 圖塊個數

#30-#31 int *2 標識數

#32-#35 int *2 圖塊名表首址

2、 層描述段:

#36-#37 int *2 層名長度(25H)

#38-#39 int *2 層的個數

#3A-#3B int *2 標識數

#3C-#3F int *2 層名表首址

3、 字型描述段:

#40-#41 int *2 字型名長度(C2H)

#42-#43 int *2 字型個數

#44-#45 int *2 標識數

#46-#49 int *2 字型名表首址

4、 線形描述段:

#4A-#4B int *2 線型名長度(BBH)

#4C-#4D int *2 線型個數

#4E-#4F int *2 標識數

#50-#53 int *4 線型名表首址

5、 視圖描述段:

#54-#55 int *2 視圖名長度(5BH)

#56-#57 int *2 視圖個數

#58-#59 int *2 標識數

#5A-#5D int *4 視圖名表首址

6、 各個地址間的關系:

實體部首址=索引部長度+標題部長度

表部首址=實體部首址+實體部總長度

塊實體首址=表部首址+表部總長度

文件總長度=塊實體首址+塊實體部總長度

(二) 環境部

該部給出了系統變量,屬性設置及當前狀態等信息,它位于DWG文件的#005E-#03EEH。

#05E-#075 INSBASE real*24

#076-#077 實體個數 int *2

#078-#08F EXTININ real*24

#090-#0A7 EXTMAX real*24

#0A8-#0B7 LIMMIN real*16

#0B8-#0C7 LIMMIX real*16

#0C8-#0DF VIEWCTR real*24

#0E0-#0E7 VIEWSIZE real*8

#0E8-#0E9 SNAPNODE int*2

#0EA-#0F9 SNAPUNIT int*16

#0FA-#109 SNAPBASE real*16

#10A-#111 SNAPANC int *8

#112-#113 SNAPSTYL int *2

#114-#115 SNAPISOPAIR int *2

#116-#117 GRIDNODE int *2

#118-#127 GRIDUNIT int *2

#128-#129 ORTHOMODE int *2

#12A-#12B REGENNODE int *2

#12C-#12D FILEMODE int *2

#12E-#12F QTEXTMODE int *2

#130-#131 DRAGMODE int *2

#132-#139 LTSCALE int *8

#13A-#141 TEXTSIZE real*8

#142-#149 TRACEWID real*8

#14A-#14B CLAYER real*2

#14C-#163

#164-#165 LUNITS int*2

#166-#167 LUPREC int *2

#168-#169 AXISMODE int *2

#16A-#179 AXISUNIT int *16

#17A-#191 SKETCHINC real * 8

#182-#189 FILLETRAD real * 8

#18A-#18B AUNITS int *2

#18C-#18D AUPREC int *2

#18E-#18F

#190-#191 OSMODE int *2

#192-#193 ATTMODE int *2

#194-#1A2 MENU char *15

#1A3-#1AA DIMSCALE real*8

#1AB-#1B2 DIMASZ real*8

#1B3-#1BA DIMEXO real*8

#1BB-#1C2 DIMDLI real*8

#1C3-#1C4 DIMEXE real*8

#1CB-#1D2 DIMTP real*8

#1D3-#1DA DIMTN real*8

#1DB-#1E2 DIMTXT real*8

#1E3-#1EA DIMCEN real*8

#1E8-#1F2 DIMTSZ real*8

#1F3 DIMTOL int *1

#1F4 DIMLIN int *1

#1F5 DIMTIH int *1

#1F6 DIMTOH int *1

#1F7 DIMSE1 int *1

#1F8 DIMSE2 int *1

#1F9 DIMTAD int *1

#1FA-#228

#229-#230 ELEVATION real*8

#234-#238 THICHNESS real*8

#239-#250 VIEWDIR real*24

#251-#2B2 圖形顯示說明

#2E3-#2E4 BLIPMODE int *2

#2E5-#3EE 備用

(三) 實體部

該部給出了所有圖形實體的描述,圖形實體又分為簡單圖形實體和復雜圖形實體。簡單圖形實體是點、直線等基本圖形。復雜圖形實體指多線段、圖塊等由基本圖形實體所組成的圖形。

圖形的大部分信息都在實體部段中,因此讀取實體段的內容很重要。讀取實體段的數據首先要考慮讀取數據的存儲方式,然后再進行后一步的處理或存入數據文件中。此處用鏈表結構來存儲。各個實體的數據分成兩塊:公共數據塊和特殊數據塊。公共數據塊存儲每個實體都具有特征參數,如所在圖層,實體標識,線型名等。特殊數據塊存儲每個實體特有的數據,如實體LINE,它里面有兩個端點的坐標值;實體CIRCLE中有圓心坐標值和半徑值等

每一個圖形實體都有描述段,他由描述首部和描述內容兩部分所組成,描述首部的格式是固定的,描述內容各不相同。描述首部格式:

(1) LINE實體

標識數為01H,描述段長度為28H。

#00-#07 描述首部

#08-#17 起點坐標值 real *16

#18-#27 終點坐標值 real *16

(2) POINT實體

標識數為02H,描述段長度為18H

#00-#07 描述首部

#08-#17 點的坐標值 real*16

(3) CIRCLE實體

標識數為03H,描述段長度為20H

#00-#07 描述首部

#08-#17 圓心坐標值 real*16

#18-#1F 圓的半徑 real*8

(4) SHAPE實體

標識數為04H,描述段長度可變

#00-#07 描述首部

#08-#17 插入坐標值 real*16

#18-#1F 型體高度 real*8

#20 型體號 real*8

#21-#28 插入角度(可省略) real*8

若描述首部中的屬性字第0位為1,讀值存在,否則缺省值為0

#29 型體文件號(可省) int*1

若描述首部中的屬性字第1位為1,讀值存在,否則缺省值為0

(5) TEXT實體

標識數為07H,描述段長度可變

#00-#07 描述首部

#08-#17 文字頭的坐標值 real*16

#18-#1F 字符高度 real*8

#20-#21 字符串長度 into*2

#22 字符串 char*256

# 字符創旋轉角 real*8

(6) ARC實體

標識數為08H,描述段長度為30H

#00-#07 描述首部

#08-#17 圓心坐標值 real*16

#18-#1F 半徑 real*8

#20-#27 起始角 real*8

#28-#2F 終止角 real*8

(7) TRACE實體

標識數為09H,描述段長度為48H

#00-#07 描述首部

#08-#17 第一點坐標值 real*16

#18-#1F 第二點坐標值 real*16

#28-#37 第三點坐標值 real*16

#38-#47 第四點坐標值 real*16

(8) SOLID實體

標識數為0BH,描述段長度為48H

#00-#07 描述首部

#08-#17 第一點坐標值 real*16

#18-#1F 第二點坐標值 real*16

#28-#37 第三點坐標值 real*16

#38-#47 第四點坐標值 real*16

復雜圖形實體:

在DWG文件中,復雜圖形實體指重復圖形、圖塊和多段連線實體,它們都是有不止一個標識數的實體。

(1) 重復圖形實體

重復圖形指某些簡單圖形的重復排列,它的描述由三部分組成,開始實體、簡單圖形實體和結束實體。

(a)開始實體

標識數為06H,描述段長度為08H,格式同描述首部。

(b)結束實體

標識數為07H,描述段長度為1CH。

#00-#07 描述首部

#08-#09 重復行數 int *2

#0A-#0B 重復列數 int*2

#14-#1B 重復行距 real*8

#14-#1B 重復列距 real*8

(2) 實體圖塊

圖塊實體就是將某些簡單圖形實體看作一個整體,他的描述由三部分組成,BLOCK(圖塊開始)實體,簡單圖形實體和圖塊結束實體。

(a) BLOCK實體

標識數為0CH,描述段長度為08H,格式同描述首部

(b)圖塊結束實體

標識數為0CH,描述段長度為18H。

#00-#07 描述首部

#08-#17 基點坐標值 real*16

(3) POLYLINE實體

多段連線指直線和圓弧所組合的曲線,它的描述也由三部分組成:POLYINE(多段連線)實體、結點實體和結束實體。

(a) POLYLINE實體

標識數為8013H,描述段長度可變

#00-#07 描述首部

#08 狀態值(可省) int*1

(若屬性字第0位為1,該值存在,否則為0)

數值0,正常;數值1 封閉;數值2 擬合

#09-#10 起始寬度(可省)

#11-#18 終止寬度(可省)

(b) 結點實體

標識數為14H,描述長度可變

#00-#07 描述首部

#08-#17 結點坐標值

#18-#1F 結點起始寬度

#20-#27 結點終止寬度

#28-#2F 凹凸值

#30 結點狀態

#31--#38 光滑切線方向

(c) 結束實體

標識數為11H,描述段長度為12H

#00-#07 描述首部

#08-#11 開始實體的首址

(四) 名表部

該部給出了所有有名實體的描述,有名實體具體指圖塊名、LAYER圖層名、字體格式名、型體文件名,線型名和視圖名

(1) 圖塊名

圖塊名表的首地址存在于DWG文件的#32-#35H中,描述段的長度為25H,其格式為:

#00 標識 int *1

#01-#20 名字 char *32

#21-#24 地址 int *4

(2) 層名

層名表的首地址存于DWG文件的#3C-#3FH中。描述段長度為25H.

在對DWG文件進行解析的過程中需要什么信息就可以在相應的段中尋找。例如你需要得到DWG文件的直線就可以去實體部段里取LINE實體對應的起點坐標和重點坐標屬性,構造出自定義直線類,其他類似。

java arcnode,dwg格式文件里到底存儲了什么