關于 ASCII DXF 檔案
本節介紹 ASCII DXF 檔案的格式。隻有自行編寫程式處理 DXF 檔案,或者使用由 AutoLISP ® 和 ObjectARX ® 應用程式獲得的圖元資訊時,才需要使用本節中包含的資訊。
相關參考
- 關于圖形交換檔案格式 (DXF)
- 關于 DXF 檔案的基本結構 (DXF)
- 關于 DXF 檔案中的組碼 (DXF)
- DXF 檔案中的标題組碼 (DXF)
- DXF 檔案中的類組碼 (DXF)
- DXF 檔案中的符号表組碼 (DXF)
- DXF 檔案中的塊組碼 (DXF)
- DXF 檔案中的圖元組碼 (DXF)
- DXF 檔案中的對象組碼 (DXF)
- 關于編寫 DXF 接口程式
關于圖形交換檔案格式 (DXF)
AutoCAD ® 使用各種格式的檔案與其他應用程式交換圖形資料。這些格式包括圖形交換檔案 (DXF™)、二進制 DXF、幻燈片 (SLD) 和幻燈片庫 (SLB) 檔案格式。
DXF 檔案可以是 ASCII 格式,也可以是二進制格式。由于 ASCII DXF 檔案格式比二進制檔案格式更常用,是以術語 DXF 檔案用來表示 ASCII DXF 檔案,而術語二進制 DXF 檔案則用來表示二進制格式。
相關參考
- 關于 ASCII DXF 檔案
- 關于二進制 DXF 檔案 (DXF)
- 幻燈片檔案 (DXF)
- 關于幻燈片庫檔案 (DXF)
關于 DXF 檔案的基本結構 (DXF)
DXF 檔案本質上由代碼及關聯值對組成。代碼(通常稱為組碼)表明其後的值的類型。使用這些組碼和值對,可以将 DXF 檔案組織到由記錄組成的區域中,這些記錄由組碼和資料項目組成。在 DXF 檔案中,每個組碼和值都各占一行。
每段都以一個後跟字元串 SECTION 的組碼 0 開始,其後是組碼 2 和表示該段名稱的字元串(例如,HEADER)。每段都由定義其元素的組碼和值組成。每段都以一個後跟字元串 ENDSEC 的組碼 0 結束。
從小圖形中生成 DXF 檔案,列印出來并在閱讀本文時參考,可能會有助于使用者了解本文的内容。
DXF 檔案完整的結構如下:
- HEADER 段。包含圖形的基本資訊。它由 AutoCAD 資料庫版本号和一些系統變量組成。每個參數都包含一個變量名稱及其關聯的值。
- CLASSES 段。包含應用程式定義的類的資訊,這些類的執行個體出現在資料庫的 BLOCKS、ENTITIES 和 OBJECTS 段中。類定義在類的層次結構中是固定不變的。
- TABLES 段。包含以下符号表的定義:
APPID(應用程式辨別表)
BLOCK_RECORD(塊參照表)
DIMSTYLE(标注樣式表)
LAYER(圖層表)
LTYPE(線型表)
STYLE(文字樣式表)
UCS(使用者坐标系表)
VIEW(視圖表)
VPORT(視口配置表)
- BLOCKS 段。包含構成圖形中每個塊參照的塊定義和圖形圖元。
- ENTITIES 段。包含圖形中的圖形對象(圖元),其中包括塊參照(插入圖元)。
- OBJECTS 段。包含圖形中的非圖形對象。除圖元、符号表記錄以及符号表以外的所有對象都存儲在此段。OBJECTS 段中的條目樣例是包含多線樣式群組的詞典。
- THUMBNAILIMAGE 段。包含圖形的預覽圖像資料。此段為可選。
如果使用 SAVE 或 SAVEAS 指令的“選擇對象”選項,那麼所得到的 DXF 檔案的 ENTITIES 區域将隻包含選擇的圖元。
相關參考
- 關于 ASCII DXF 檔案
關于 DXF 檔案中的組碼 (DXF)
組碼和關聯值定義對象或圖元的特定方面。緊接着組碼的一行是關聯值。該值可以是字元串、整數或浮點值,例如點的 X 坐标。組中第二行後面的行(如果存在)由組定義和與組關聯的資料确定。
特殊組碼用作檔案分隔符,例如用于表示段和表的開始和結束,以及檔案本身結束的标記。
圖元、對象、類、表和表條目以及檔案分隔符通過 0 組碼(其後是用于描述該組的名稱)引入。
DXF 檔案字元串的最大長度是 256 個字元。如果 AutoCAD 圖形中包含的字元串超出了此數字,則在執行 SAVE、SAVEAS 和 WBLOCK 時将截斷那些字元串。如果 DXF 檔案包含的字元串超出了此長度,OPEN 和 INSERT 指令将失敗。
相關參考
- 關于 ASCII DXF 檔案
- 關于 DXF 檔案中的 ASCII 控制字元
DXF 檔案中的标題組碼 (DXF)
應用程式可以使用 AutoLISP getvar 函數檢索這些變量的值。
以下是 DXF™ 檔案的 HEADER 區域的樣例:
SECTION 2 HEADER | HEADER 段的開始 |
9 $<變量> <組碼> <值> | 為每個标題變量重複一次 |
ENDSEC | HEADER 段的結束 |
相關參考
- 關于 ASCII DXF 檔案
DXF 檔案中的類組碼 (DXF)
以下是 DXF 檔案 CLASSES 段的樣例:
SECTION 2 CLASSES | CLASSES 段的開始 |
CLASS 1 <類 dxf 記錄> 2 <類名> 3 <應用程式名> 90 <标志> 280 <标志> 281 <标志> | 為每個條目重複一次 |
ENDSEC | CLASSES 段的結束 |
相關參考
- 關于 ASCII DXF 檔案
DXF 檔案中的符号表組碼 (DXF)
以下是 DXF 檔案 TABLES 段的樣例。
SECTION 2 TABLES | TABLES 段的開始 |
TABLE 2 <表類型> 5 <句柄> 100 AcDbSymbolTable 70 <最大條目數量> | 通用表組碼;為每個條目重複一次 |
<表類型> 5 <句柄> 100 AcDbSymbolTableRecord . . <資料> . | 表條目資料;為每個表記錄重複一次 |
ENDTAB | 表的結束 |
ENDSEC | TABLES 段的結束 |
相關參考
- 關于 ASCII DXF 檔案
- 符号表樣例 (DXF)
DXF 檔案中的塊組碼 (DXF)
以下是 DXF 檔案 BLOCKS 段的樣例:
SECTION 2 BLOCKS | BLOCKS 段的開始 |
BLOCK 5 <句柄> 100 AcDbEntity 8 <圖層> 100 AcDbBlockBegin 2 <塊名> 70 <标志> 10 <X 值> 20 <Y 值> 30 <Z 值> 3 <塊名> 1 <外部參照路徑> | 每個塊條目的開始(塊圖元定義) |
<圖元類型> . . <資料> . | 塊中的每個圖元定義有一個條目 |
ENDBLK 5 <句柄> 100 AcDbBlockEnd | 每個塊條目的結束(endblk 圖元定義) |
ENDSEC | BLOCKS 段的結束 |
相關參考
- 關于 ASCII DXF 檔案
DXF 檔案中的圖元組碼 (DXF)
以下是 DXF 檔案 ENTITIES 段的樣例:
SECTION 2 ENTITIES | ENTITIES 段的開始 |
<圖元類型> 5 <句柄> 330 <指向所有者的指針> 100 AcDbEntity 8 <圖層> 100 AcDb<類名> . . <資料> . | 每個圖元定義一個條目 |
ENDSEC | ENTITIES 段的結束 |
相關參考
- 關于 ASCII DXF 檔案
DXF 檔案中的對象組碼 (DXF)
以下是 DXF 檔案 OBJECTS 段的樣例:
SECTION 2 OBJECTS | OBJECTS 段的開始 |
DICTIONARY 5 <句柄> 100 AcDbDictionary | 命名對象詞典(根詞典對象)的開始 |
3 <詞典名> 350 <子對象句柄> | 為每個條目重複一次 |
<對象類型> . . <資料> . | 對象資料組 |
ENDSEC | OBJECTS 段的結束 |
相關參考
- 關于 ASCII DXF 檔案
關于編寫 DXF 接口程式
通過 DXF 檔案編寫與 AutoCAD 通信的程式似乎比實際情況要難。使用 DXF 格式可以輕松地忽略不需要的資訊,而隻讀取需要的資訊。
相關參考
- 關于 ASCII DXF 檔案
- 讀取 DXF 檔案 (DXF)
- 編寫 DXF 檔案 (DXF)
關于 DXF 格式慣例
DXF 參考主題中列出的每個組碼均由數字組碼值和說明表示。所有組碼都可以應用于 DXF™ 檔案和/或應用程式(AutoLISP 或 ObjectARX)。如果應用程式與 DXF 檔案具有不同的代碼說明(代碼說明隻适用于二者之一),說明前面将添加以下辨別符:
- APP。應用程式特定的說明。
- DXF。DXF 檔案特定的說明。
如果 DXF 檔案和應用程式具有相同的代碼說明,說明前面将不顯示任何辨別符。
可選代碼的說明中有“可選”字樣。
相關概念
- 關于 DXF 格式 (DXF)
關于對象和圖元代碼 (DXF)
在 DXF™ 格式中,對象的定義與圖元的定義不同:對象沒有圖形表示,而圖元則有圖形表示。例如,詞典是對象而不是圖元。圖元也稱為圖形對象,而對象稱為非圖形對象。
圖元出現在 DXF 檔案的 BLOCK 和 ENTITIES 段。組碼在這兩段中的用法相同。
定義圖元的某些組碼始終顯示;其他組碼是可選的,僅當其值與預設值不同時才顯示。
編寫程式時請不要按照此處顯示的次序。圖元的結尾由下一個 0 組表示,該組表示下一個圖元的開始或訓示此段已結束。
注意:如果以表驅動的方式編寫 DXF 處理程式,忽略未定義的組碼,且對圖元中的組碼次序不做任何假定,那麼将比較容易在 AutoCAD ® 以後的版本中調整 DXF 檔案。在每個新的 AutoCAD 發行版中,都會在圖元中添加一些新組碼,以提供更多功能。
相關概念
- 關于 DXF 格式 (DXF)