DXF-Datenformat
DXF-Dateien sind ASCII-Textdateien mit der Namenserweiterung .DXF und speziell formatiertem Text. Sie können leicht in das Format anderer CAD-Systeme übersetzt werden.
Eine DXF-Datei besteht aus fünf Abschnitten, die ihrerseits in verschiedene Gruppen aufgeteilt sind.
Abschnitte
Die DXF-Datei besteht aus fünf Abschnitten:
Der Abschnitt HEADER enthält die der Zeichnung zugeteilten Variablen. Die Variablen werden mit verschiedenen Befehlen gesetzt. Sie sind die Informationen, die vom Befehl STATUS angezeigt werden.
Jede Variable ist im HEADER-Abschnitt durch eine Gruppe 9 spezifiziert, die den Namen der Variablen angibt. Es folgt die Art der Gruppe, die den Wert angibt.
Beispiele für HEADER-Variablen, nachfolgende Gruppen und deren Werte:
$ANGBASE |
50 |
Richtung des Winkels |
$AUNITS |
70 |
EINHEIT-Format für Winkel |
$EXTMAX |
10,20,30 |
X-, Y- und Z-Zeichnungsgrenzen, obere rechte Ecke (im WKS) |
$EXTMIN |
10,20,30 |
X-, Y- und Z-Zeichnungsgrenzen, untere linke Ecke (im WKS) |
$INSBASE |
10,20,30 |
Einfügebasis gesetzt mit dem Befehl BASIS |
Dieser Abschnitt enthält Definitionen benannter Funktionen:
- Linientyp-Tabelle
- Layer-Tabelle
- Stil-Tabelle
- Ausschnitt-Tabelle
- BKS-Tabelle Benutzerkoordinatensystem
- AFENSTER-Tabelle Ansichtsfenster-Konfiguration
- BEMSTIL Bemaßungsstiltabelle
- APPID Applikations-Identifikationstabelle
Die LTYPE-Tabelle muss sich immer vor der LAYER-Tabelle befinden. Die Reihenfolge der übrigen Tabellen kann beliebig sein.
Jede Tabelle wird von einer Gruppe 0 mit der Bezeichnung TABLE eingeleitet. Es folgt eine Gruppe 2, die die entsprechende Tabelle identifiziert: VPORT, LTYPE, LAYER, STYLE, VIEW, DIMSTYLE, BKS oder APPID. Anschließend folgt die Gruppe 70, welche die Höchstzahl der nachfolgenden Tabellen-Einträge spezifiziert.
Tabellennamen werden immer in GROSSBUCHSTABEN angegeben!
Dieser Abschnitt enthält die Blockdefinitionen sämtlicher in der Zeichnung enthaltenen Blöcke und deren Objekte. Alle Objekte im Abschnitt BLOCK erscheinen zwischen BLOCK- und ENDBLK-Objekten.
Block-Definitionen werden niemals verschachtelt, d. h. es erscheint niemals ein BLOCK- oder ENDBLK-Objekt innerhalb eines anderen BLOCK-ENDBLK-Paares.
Dieser Abschnitt enthält die Zeichnungsobjekte einschließlich Block-Referenzen. Jedes Objekt beginnt mit einer Gruppe 0, die das Objekt identifiziert.
Jedes Objekt besitzt eine Gruppe 8, welche die Bezeichnung des Layers trägt, auf dem sich das Objekt befindet. Jedem Objekt kann eine Erhebungs- oder Objekthöhe und eine Linientyp- oder Farbinformation zugeordnet sein.
Die DXF-Datei endet immer mit dem END OF FILE-Eintrag: EOF
Das nachfolgende Beispiel zeigt eine leere DXF-Datei, die nur Abschnitt-Trennungszeichen und Tabellen-Kopfzeilen enthält:
0 Anfang des Abschnitts HEADER
SECTION
2
HEADER
<<von hier an sind alle Funktionen definiert>>
0
ENDSEC beendet den Abschnitt HEADER
0 Anfang des Abschnitts TABLES
SECTION
2
TABLES
0
TABLE
2
VPORT
70
Berechnung der maximalen Zahl von Elementen in der Tabelle VPORTS
<<Definition der Elemente in der Tabelle VPORTS>>
0
ENDTAB
0
TABLE
2
LTYPE, Layer, STYLE, UCS, ou DWGMGR
70
Berechnung der Maximalzahl von Tabellenelementen
<<Definition der verschiedenen Tabellenelemente>>
0
ENDTAB
0
ENDSEC
Ende der Sektion TABLES
0 Anfang der Sektion BLOCKS
SECTION
2
BLOCKS
<<Definition der Elemente, die sich auf Blöcke beziehen>>
0
ENDSEC
Ende der Sektion BLOCKS
0 Anfang der Sektion ENTITIES
SECTION
2
ENTITES
<<Definition aller Elemente der Zeichnung>>
0
ENDSEC
Ende der Sektion ENTITIES
0
EOF Ende der Datei
Gruppen
Eine DXF-Datei besteht aus einer Vielzahl von GRUPPEN, wovon jede Gruppe zwei Zeilen belegt. Die erste Zeile einer Gruppe ist ein Gruppen-Code, die zweite Zeile ist der Gruppen-Wert, dessen Format von der Art der Gruppe abhängt. Die Zuteilung der Gruppen-Codes hängt vom Element ab, das in der Datei beschrieben wird.
Gruppen-Code |
Werte |
Gruppen-Code |
Werte |
0 - 9 |
Zeichenkette |
999 |
Kommentar |
10 - 59 |
Gleitkomma |
1000 - 1009 |
Zeichenkette |
60 - 79 |
Ganzzahl |
1010 - 1059 |
Gleitkomma |
210 - 239 |
Gleitkomma |
1060 - 1079 |
Ganzzahl |
Gruppen-Codes werden verwendet, um den Typ des Gruppenwertes und die allgemeine Verwendung der Gruppe zu bezeichnen.
Gruppen mit Datei-Trennungszeichen (Gruppen-Code 0) dienen der Trennung der Datei-Abschnitte.
Gruppen-Code |
Werttyp |
0 |
Identifiziert den Anfang eines Objekts, eines Tabelleneintrags oder eines Datei-Trennungszeichens. Der darauf folgende Textwert zeigt die Art des Abschnittes. |
1 |
Primärer Textwert eines Objekts |
2 |
Ein Name; Attributbezeichnung, Blockname usw. |
3 - 4 |
andere Text- und Namenwerte |
5 |
Objektreferenz in hexadezimaler Zeichenkette |
6 |
Name des Linientypes festgelegt |
7 |
Name des Textstils festgelegt |
8 |
Name des Layers festgelegt |
9 |
Identifikator des Variablennamens (nur im HEADER Abschnitt der DXF-Datei) |
10 |
Primäre X-Koordinate Anfangspunkt einer Linie, eines Text-Elementes oder Kreiszentrum usw. |
11 - 18 |
andere X-Koordinaten |
20 |
Primäre Y-Koordinate |
21 - 28 |
andere Y-Koordinaten |
30 |
Primäre Z-Koordinate |
31 - 37 |
andere Z-Koordinaten |
38 |
Die Erhebung des Objekts, wenn ungleich 0 |
39 |
Die Höhe des Objekts, wenn ungleich 0 |
40 - 48 |
Gleitkommawerte für Texthöhe, Skalierfaktoren usw. |
49 |
Wiederholter Wert |
50 - 58 |
Winkel |
62 |
Farbnummer festgelegt |
66 |
„Elemente folgen“ Flag festgelegt |
70 - 78 |
Ganze Werte, z. B. wiederholte Zählungen, Flagbits oder Modi |
210, 220, 230 |
X-, Y- und Z-Komponente einer Hochzugsrichtung |
999 |
Kommentare |
1000 |
ASCII-Zeichenkette |
1001 |
Registrierter Applikationsname |
..... ...... |
Beispiel-Auszug aus der Tabelle des Gruppen-Codes