概述
DXF是一種開放的矢量數據格式,可以分為兩類:ASCII格式和二進制格式;ASCII具有可讀性好的特點,但占用的空間較大;二進制格式則占用的空間小、讀取速度快。由于AutoCAD現在是最流行的CAD系統,DXF也被廣泛使用,成為事實上的标準。絕大多數CAD系統都能讀入或輸出DXF文件。
DXF文件是由很多的“代碼”和“值”組成的“數據對”構造而成,這裡的代碼稱為“組碼”(group code),指定其後的值的類型和用途。每個組碼和值必須為單獨的一行的。
DXF文件被組織成為多個“段”(section),每個段以組碼“0”和字符串“SECTION”開頭,緊接着是組碼“2”和表示段名的字符串(如HEADER)。段的中間,可以使用組碼和值定義段中的元素。段的結尾使用組碼“0”和字符串“ENDSEC”來定義。
DXF-Drawing Exchange File(圖形交換文件),這是一種ASCII文本文件,它包含對應的DWG文件的全部信息,不是ASCII碼形式,可讀性差,但用它形成圖形速度快.不同類型的計算機(如PC及其兼容機與SUN工作站具體不同的CPU用總線)哪怕是用同一版本的文件,其DWG文件也是不可交換的。
為了克服這一缺點,AutoCAD提供了DXF類型文件,其内部為ASCII碼,這樣不同類型的計算機可通過交換DXF文件來達到交換圖形的目的,由于DXF文件可讀性好,用戶可方便地對它進行修改,編程,達到從外部圖形進行編輯和修改的目的。
文件結構
ASCII格式的DXF可以用文本編輯器進行查看。DXF文件的基本組成如下所示:
HEADER部分-圖的總體信息。每個參數都有一個變量名和相應的值。
CLASSES部分-包括應用程序定義的類的信息,這些實例将顯示在BLOCKS、ENTITIES以及
OBJECTS部分。通常不包括用于充分用于與其它應用程序交互的信息。
TABLES部分-這部分包括命名條目的定義。
ApplicationID(APPID)表
BlockRecod(BLOCK_RECORD)表
DimensionStyle(DIMSTYPE)表
Layer(LAYER)表
Linetype(LTYPE)表
Textstyle(STYLE)表
UserCoordinateSystem(UCS)表
View(VIEW)表
Viewportconfiguration(VPORT)表
BLOCKS部分-這部分包括BlockDefinition實體用于定義每個Block的組成。
ENTITIES部分-這部分是繪圖實體,包括BlockReferences在内。
OBJECTS部分--包括非圖形對象的數據,供AutoLISP以及ObjectARX應用程序所使用。
THUMBNAILIMAGE部分--包括DXF文件的預覽圖。
ENDOFFILE
實體部分
(ENTITIES)
該部分内容包含了所繪制圖形的所有數據。
例如:定義直線的數據為起點坐标和終點坐标。格式如下:
AcDbline
......
x1
......
y1
......
x2
......
y2
類似地,有定義圓及圓弧的數據。
總之,這些數據可以通過編程将其提取出來用于其他用途。筆者提取以上圖形的數據用來生成加工代碼,以進行數控系統的開發。



















