Zurück zur HomepageZurück zu DokumenteZurück zum TextanfangHier sind Sie gerade
Grundsätzliche Änderungen


Hinweis: Zum Buch "Der DXF-Standard" haben wir, die Autoren, eine überarbeitete Neuauflage veröffentlicht. Diese trägt den Titel "DXF intern" und enthält neben Fehlerkorrekturen auch einen Anhang über neuere DXF-Versionen (eine überarbeitete Fassung dieses Texts). Wenn Sie sich für neuere DXF-Versionen im Detail interessieren, so sei Ihnen außerdem das Buch "AutoCAD-Objekte" von Dietmar Rudolph empfohlen. Dieses beschreibt die Elemente der AutoCAD-Versionen 13, 14, 2000 und 2000i in allen Details sowie ihre Speicherung in DXF, AutoLISP, ActiveX und ObjectDBX.

VG-Wort Access-ZählmarkeDie Version AC1012 umfaßt einige grundlegende Veränderungen, die praktisch alle vorhandenen DXF-Konverter zum Absturz bringen. Es handelt sich dabei um grundlegende Veränderungen im inhaltlichen Aufbau, um grundlegende Veränderungen in der Speicherung und um grundlegende Veränderungen im Zeichenvorrat.

Zusätzliche Abschnitte

Eine DXF-Datei der Version AC1009 umfaßt die Abschnitte HEADER, TABLES, BLOCKS, ENTITIES und EOF. Eine DXF-Datei der Version AC1012 umfaßt die Abschnitte HEADER, TABLES, BLOCKS, CLASSES, ENTITIES, OBJECTS und EOF.

Der neue Abschnitt CLASSES definiert die in der DXF-Datei benutzten selbstdefinierten Objekte. Leider definiert er aber nicht ihre grafische Darstellung, sondern lediglich ihre Verbindung zu der Funktion im erzeugenden Programm, das für die Darstellung zuständig ist.

Der neue Abschnitt OBJECTS umfaßt eine lange geforderte Erweiterung der DXF-Struktur. Während der bekannte Abschnitt ENTITIES ausschließlich Objekte umfaßt, die eine grafische Darstellung besitzen, enthält der Abschnitt OBJECTS alle Datenstrukturen, die keine grafische Darstellung besitzen. Nun ja, zumindest in der Theorie. In der Praxis enthält der Abschnitt TABLES heute immer noch die wichtigsten nicht-grafischen Informationen.

Der Abschnitt OBJECTS kann für sämtliche Strukturen genutzt werden, die früher in externen Datenbanken gespeichert wurden. Dabei kann es sich um Materialinformationen genauso wie um Arbeitspläne handeln. AutoCAD Release 13 selbst benutzt diesen Abschnitt, um eine Gruppierungsfunktion für grafische Objekte zu implementieren (hier ist jedes GROUP-Objekt eine List von Zeigern auf die zugehörigen grafischen Objekte) sowie um eine Tabelle von Multilinienstilen entsprechend der Linientyptabelle zu definieren.

Dateiformat für Binärdateien

Das im Kapitel 2 des Buches "Der DXF-Standard" vorgestellte Dateiformat für Binär-DXF ist historisch gewachsen und deshalb inkonsistent. Zunächst gab es nur Gruppencodes kleiner 255. Sie ließen sich als ein Byte in der DXF-Datei darstellen. Mit AutoCAD Release 10 (AC1006) wurden die Erweiterten Elementdaten eingeführt. Sie haben Gruppennummern ab 1000 und lassen sich deshalb nicht in einem Byte speichern. Als Abhilfe wurde das Byte 255 als Escapecode definiert, auf den dann die eigentliche Gruppennummer als 16-Bit-Ganzzahl folgte.

In AC1012 wurde diese inkonsistente Speicherung aufgeräumt. Nun wird in Binär-DXF jeder Gruppencode (egal ob unter 255 oder über 1000) als 16-Bit-Ganzzahl gespeichert. Für den Gruppencode 67 (Papierbereich) hieß bisher die Binärdarstellung 43h, nun lautet sie 4300h. Für den Gruppencode 1004 wurde bisher die Folge FFEC03h gespeichert, nun verwendet man EC03h.

Diese abweichende Speicherung ist vor allem beim Schreiben von DXF-Dateien zu beachten. Beim Lesen von Binärdateien müssen Sie sowieso exakt wissen, um welche Version es sich handelt, da zusätzliche Gruppen in neuen Versionen (wie AC1012) auch vollständig abweichende Längen haben können. In AC1012 gibt es eine Vielzahl neuer Gruppencodes, einige davon Zeichenfolgen, andere 8-, 16- oder 32-Bit-Ganzzahlen. Im folgenden Text finden Sie eine Aufstellung der in AC1012 zulässigen Gruppen und ihrer Datentypen.

Zeichenvorrat

Eine weitere Veränderung der DXF-Definition betrifft ebenfalls fast alle Stellen einer DXF-Datei: der Zeichenvorrat. Bisher war es so, daß DXF-Dateien einen eingeschränkten, plattformspezifischen Zeichenvorrat benutzten. Die Tabelle in Kapitel 6.5.4 beschreibt den Zuordnung der in AC1009 verwendeten Zeichen zu ihrer eigentlichen Bedeutung (als Unicode-Zeichen), in Abhängigkeit von der jeweils benutzten Plattform.

Auf einem System mit der Codeseite DOS850 war jeder Bitfolge in einer Zeichenkette genau eines von 256 Zeichen zugeordnet. Zeichen, die in dieser Codeseite nicht definiert sind, konnten in der DXF-Datei nicht angesprochen werden. AC1012 erlaubt nun eine Speicherung auch solcher Zeichen, die die jeweilige Codeseite nicht enthält. Sie werden in Form ihrer Unicode-Numerierung gespeichert, eingeleitet durch die Sonderzeichen \U+. Die Darstellung \U+03A0 steht beispielsweise für ein großes griechisches Pi. Beachten Sie aber, daß alle Zeichen, die in der unter $DWGCODEPAGE gespeicherten Codeseite definiert sind, nicht durch ihre Unicode-Darstellung ersetzt werden.

Diese Variante erlaubt den Austausch von DXF-Dateien über sämtliche Sprachen hinweg. Eine Zeichnung kann deshalb eine amerikanische, europäische und japanische Beschriftung tragen, alle verwendeten Schriftzeichen werden ohne zusätzliche Umrechnungen entweder direkt oder als Unicode-Äquivalent gespeichert.

Beachten Sie, daß eine Unicode-Ersatzdarstellung (7 Zeichen) als ein einziges Zeichen gilt. Ein freier Text, der in AC1009 maximal 255 Zeichen lang sein konnte, kann in AC1012 im Extremfall 1785 Zeichen lang sein.

Beachten Sie außerdem, daß Unicode-Folgen nicht nur in freien Texten, sondern in jeglicher Zeichenkette auftreten können. Dies gilt insbesondere für Symbolname wie Layer- oder Linientypbezeichnungen. Jedes benannte Symbol darf in AC1012 Umlaute enthalten oder sogar griechische/kyrillische Zeichen.

Dies ist ein Shareware-Dokument. Was ist ein Shareware-Dokument? Hat Ihnen dieses Dokument etwas genutzt? Haben Sie damit Geld gespart? Dann revanchieren Sie sich bitte:


Kontakt CR/LF GmbH

© 1999-2011 by CR/LF GmbH, Essen/Germany. All rights reserved.
No part of this document may be reproduced or published without written consent by CR/LF GmbH.
Last modification: 01.04.2011