Zurück zur HomepageZurück zu DokumenteZurück zum TextanfangHier sind Sie gerade
Änderungen im Abschnitt ENTITIES


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 meisten Veränderungen hat es im Abschnitt ENTITIES gegeben. Die aus AC1009 bekannten und in diesem Buch ausführlich beschriebenen Objekte blieben abgesehen von den oben genannten grundsätzlichen Änderungen und vom folgenden Kommentar über Bemaßungen erhalten. Der folgende Text beschreibt kurz die neu hinzugekommenen Objekte.

Veränderungen beim Objekt DIMENSION

Die Textobjekte im Bemaßungsstil und im Bemaßungsobjekt entsprechen nun dem in MTEXT verwendeten Textformat. Auf diese Weise sind u.a. Bruchdarstellungen im Maßtext möglich.

Die Objekte DIMENSION, LEADER und TOLERANCE verweisen auf einen Bemaßungsstil. Anders als in AC1009 ist es jedoch möglich, daß einzelne Einstellungen des Bemaßungsstils durch objektabhängige Einstellungen überschrieben werden. In diesem Fall besitzt das Objekt erweiterte Elementdaten der Applikation ACAD in der folgenden Form:

1001
ACAD
1000
DSTYLE
1002
{
1070
   178                Gruppennummer im DIMSTYLE
1070
     1                wird überschrieben durch diesen Wert
...
1002
}

RAY

Das Objekt RAY ist ein Strahl im 3D-Raum. Es besteht aus einem Startpunkt (Gruppen 10/20/30) und einem (normierten) Richtungsvektor (Gruppen 11/21/31). Der Strahl wird ab dem Startpunkt in die angegebene Richtung gezeichnet und unendlich verlängert. Strahlen besitzen einen Linientyp und eine Farbe, jedoch keine Dicke und Hochzugsrichtung.

XLINE

Das Objekt XLINE ist identisch zum Objekt RAY, nur daß es in beiden Richtungen unendlich verlängert wird.

ELLIPSE

Die Ellipse war ein schon lange gefordertes DXF-Objekt. Das Objekt Ellipse beschreibt sowohl vollständige Ellipsen als auch Ellipsenbögen. Eine Ellipse ist ein planares Objekt, besitzt deshalb eine Hochzugsrichtung (Basisebene), allerdings keine Objekthöhe.

Die Ellipse wird durch einen Punkt, zwei Vektoren und eine Zahl definiert. Der Punkt (Gruppen 10/20/30) bestimmt den Ellipsenmittelpunkt. Er wird in Weltkoordinaten gespeichert. Der erste Vektor (Gruppen 210/220/230) bestimmt die Ellipsenebene (vgl. Kapitel 3.6.3.1). Beachten Sie, daß der Hochzugsvektor ausschließlich die Ellipsennormale definiert, es existiert kein Elementkoordinatensystem, in das umgerechnet werden muß.

Der zweite Vektor (Gruppen 11/21/31) bestimmt die Richtung der ersten Halbachse der Ellipse (relativ zum Mittelpunkt) und ihre Länge. Die Zahl (Gruppe 40) liefert zusätzlich die Länge der zweiten Halbachse.

Ein Ellipsenbogen wird durch zwei Winkel bestimmt. Start- und Endwinkel werden in der Ellipsenebene relativ zur ersten Halbachse gemessen. Die Winkel werden im Bogenmaß als Zahl zwischen 0 und 2p gespeichert. Aus diesem Grund werden die Gruppen 41 (Startwinkel) und 42 (Endwinkel) verwendet. (Winkel wurden in AC1009 immer in den Gruppen 50-59 und im Gradmaß gespeichert.)

Eine vollständige Ellipse zeichnet sich durch die Gruppenwerte 0.0 (Startwinkel) und 2p (Endwinkel) aus. Diese Gruppen sind nicht optional.

SPLINE

AC1009 erlaubte lediglich die Beschreibung uniformer nicht-rationaler B-Spline-Kurven (vgl. Kapitel 6.7.8). Das neue Objekt SPLINE erweitert dies auf beliebige nicht-uniforme rationale und nicht -rationale B-Spline-Kurven (NURBS). Für die allgemeine Definition dieser Kurven wird auf die gängige Fachliteratur verwiesen.Eine interessante Darstellung, allerdings in englischer Sprache, bietet die Universität von Pittsburgh [Nachtrag Mai 2003: Die angesprochene Seite wurde leider aus dem Netz genommen.].

SPLINE-Objekte können planare und nicht-planare, rationale und nicht-rationale, geschlossene und offene sowie periodische Spline-Kurven beschreiben. Die Unterscheidung ergibt sich aus dem Wert der Gruppe 70. Diesen bildet die Summe aus folgenden Zahlen:

1 wenn der Spline geschlossen ist
2 wenn der Spline periodisch ist
4 wenn der Spline rational ist
8 wenn der Spline planar ist
16 wenn der Spline linear ist (in diesem Fall ist er automatisch auch planar)

Die Splinedefinition in DXF beginnt mit dem Normalenvektor (Gruppen 210/220/230). Bei nicht-planaren Spline-Kurven wird dieser weggelassen. Der Vektor beschreibt nur die Spline-Ebene. Alle Punkte sind in Weltkoordinaten gespeichert. Es folgt die oben beschriebene Gruppe 70.

In der Gruppe 71 wird die Ordnung der Spline-Kurve gespeichert. Es handelt sich um eine Ganzzahl zwischen 3 und 25. Es folgt die Länge des Trägervektors (Gruppe 72), die Anzahl der Scheitelpunkte (Gruppe 73) sowie bei nicht-rationalen Spline-Kurven die Anzahl der vorgegebenen Kontrollpunkte (Gruppe 74).

Es folgen drei Toleranzwerte, die festlegen, wie exakt die Scheitelpunkte (Gruppe 42) und die Kontrollpunkte (Gruppe 43) berechnet werden. Beide betragen üblicherweise 0.0000001. Gibt es eine Genauigkeitsvorgabe vom Anwender, steht diese in der Gruppe 44.

Als nächste Parameter werden die Tangentenrichtungen im Start- und Endpunkt gespeichert. Es handelt sich jeweils um Einheitsvektoren relativ zum entsprechenden Endpunkt. Die Gruppen 12/22/32 enthalten die Tangentenrichtung im Startpunkt, die Gruppen 13/23/33 die Richtung im Endpunkt. Es folgt der Trägervektor, dessen Länge in der Gruppe 72 gespeichert ist. Jede Zahl des Trägervektors wird durch eine Gruppe 40 dargestellt. Bei offenen Splines der Ordnung n sind die ersten n+1 Komponenten und die letzten n+1 Komponenten jeweils gleich, um zu garantieren, daß der Spline exakt im Kontroll-/Scheitelpunkt endet.

In den anschließenden Gruppen finden Sie das Scheitelpolygon des Splines. Die Anzahl der Punkte ist in der Gruppe 73 gespeichert. Für jeden Scheitelpunkt folgt zunächst die Position (Gruppen 10/20/30) und anschließend (nur bei rationalen Splines) die Gewichtung des Scheitelpunkts (Gruppe 41).

Bei nicht-rationalen Splines folgt abschließend das Kontrollpolygon der vom Anwender vorgegebenen Stützstellen. Jeder Kontrollpunkt ist als Gruppe 11/21/31 gespeichert.

MLINE

Das Objekt MLINE beschreibt mehrere parallele Linienzüge, eine sogenannte "Multilinie". Die Definition besteht im Wesentlichen aus einer Folge von Stützpunkten ähnlich einer Polylinie. Das Objekt MLINE beschreibt den Verlauf der Linienzüge und eventuelle Manipulationen. Die eigentliche Beschreibung des Linienzugaufbaus, d. h. wieviele Linien in welchen Abständen und mit welchen Eigenschaften, ergibt sich aus dem zugehörigen Multilinientypstil, der im Abschnitt OBJECTS definiert ist. Dort wird auch festgelegt, wie die Enden der Multilinie gezeichnet werden und ob die Multilinienfläche in einer Farbe gefüllt wird.

Eine Multilinie ist ein planares Objekt, es besitzt eine Basisebene (definiert durch die Flächennormale in den Gruppen 210/220/230), jedoch keine Objekthöhe. Alle Punkte werden in Weltkoordinaten gespeichert.

Die nicht von AcDbEntity geerbten Gruppen tragen folgende Bedeutung in der Reihenfolge, in der Sie in der DXF-Datei stehen. Die Gruppen 2 (Multilinienstilname) und 340 (Multilinienstilobjekt) verbinden das Objekt MLINE mit der passenden Stildefinition. Die doppelte Speicherung ist redundant, aber notwendig.

Die Gruppe 40 enthält einen Maßstabsfaktor, der auf alle Maße in der Stildefinition angewandt wird. Die Gruppe 70 beschreibt die Ausrichtung der Multilinie in Bezug auf den durch die Stützpunkte vorgegebenen Linienzug: 0 = oben (die Multilinie wird rechts von den Stützpunkten gezeichnet, die Maße der Definition so verschoben, daß das Element mit dem größten Abstandswert auf dem eingegebenen Linienzug gezeichnet wird), 1 = mitte (das Element mit dem Abstandswert 0.0 wird auf dem eingegebenen Linienzug gezeichnet), 2 = unten (also komplett links von den Stützpunkten). Die Gruppe 71 gibt an, ob der Linienzug geschlossen ist. Der Wert 1 beschreibt einen offenen, der Wert 3 einen geschlossenen Linienzug, bei dem der erste und letzte Stützpunkt ebenfalls durch eine Multilinie verbunden wird.

Die Gruppen 72 (Anzahl der Stützpunkte) und 73 (Anzahl der parallelen Linien) sind ebenfalls redundant. Es folgt der Startpunkt der Multilinie (der später nochmals als erster Stützpunkt auftritt) in den Gruppen 10/20/30 und der Normalenvektor in den Gruppen 210/220/230. Beide definieren die Ebene, in der die Multilinie gezeichnet wird.

Die folgenden Gruppen werden für jeden Abschnitt des Linienzugs wiederholt: Die Gruppen 11/21/31 enthalten den Stützpunkt, die Gruppen 12/22/32 einen Einheitsvektor von diesem Stützpunkt in Richtung des nächsten Stützpunkts (redundant), die Gruppen 13/23/33 einen Einheitsvektor in Richtung der "Gehrung" an diesem Stützpunkt (ebenfalls redundant).

Damit ist der Linienzugabschnitt jedoch noch nicht vollständig definiert. Jede parallele Linie der Multilinie kann mehrfach unterbrochen werden, z.B. an der Kreuzung mit einer anderen Linie. Aus diesem Grund folgt nun für jede einzelne Linie der Multilinie zwischen dem angegebenen und dem nächsten Stützpunkt eine Modifikationsliste. Sie beginnt mit einer Gruppe 74, dann folgen mehrere Gruppen 41 und abschließend eine Gruppe 75. Die Gruppe 74 enthält lediglich die Anzahl der folgenden Gruppen 41. Die erste Gruppe 41 beschreibt den Referenzpunkt der Einzellinie, und zwar als Abstand vom Stützpunkt entlang des Gehrungsvektors. (Ja, auch diese Information ist redundant.) Die zweite Gruppe 41 beschreibt den wirklichen Startpunkt der Linie (der Anfang könnte ja von einer Kreuzung überlagert sein). Es handelt sich um den Abstand des wirklichen Startpunkts vom soeben bestimmten Referenzpunkt in Richtung auf den nächsten Stützpunkt. Es folgen eventuelle weitere Unterbrechungen, jeweils durch ihren Abstand vom Referenzpunkt bestimmt. Alternierend wird die Linie an den angegebenen Punkten ein oder ausgeschaltet. Die Gruppe 75 hat grundsätzlich den Wert 0. Angeblich soll sie die Unterbrechungen in der Füllung der Multilinie beschreiben (Gruppe 75 Anzahl der dann folgenden Gruppen 42), allerdings kann die aktuelle AutoCAD-Version 13c4 eine unterbrochene Füllung nicht produzieren, außerdem müßte diese Eigenschaft komplett für das Segment und nicht für jede Einzellinie gespeichert werden.

LEADER

In AutoCAD Release 12 (AC1009) war es nicht möglich, Führungslinien als Ganzes zu speichern. Dort bestand jede Führungslinie aus mehreren, nicht miteinander verbundenen Objekten.

In AC1012 finden wir zu diesem Zweck ein neue Objekt namens LEADER. Diese Führungslinie besitzt einen Bemaßungsstil (Gruppe 3), der Pfeilspitze, Textposition, Maßstab usw. festlegt. Das Objekt LEADER ist planar, die Hochzugsrichtung beschreibt deshalb ausschließlich die Ebenennormale. Alle Koordinaten werden in Weltkoordinaten gespeichert.

Eine Führungslinie besteht aus einem Pfeil, aus dem durch mehrere Punkte bestimmten Linienzug (eckig oder Spline) und einer Ansatzlinie. Der zugehörige Maßtext, der auch ein Block oder ein TOLERANCE-Objekt sein kann, gehört nicht zum Objekt LEADER und ist mit diesem auch nicht verbunden. Einige Schalter steuern das Aussehen der Führungslinie: die Gruppe 71 gibt an, ob eine Pfeilspitze gezeichnet wird (1), die Gruppe 72 wählt zwischen Linienzug (0) und Spline (1). Die Gruppe 73 gibt an, wie die Führungslinie entstanden ist: 0 = mit Text, 1 = mit TOLERANCE-Objekt, 2 = mit Blockeinfügung, 3 = ohne alles.

Die beiden folgenden Gruppen enthalten die Informationen für eine eventuelle Ansatzlinie: die Gruppe 74 gibt an, ob die Ansatzlinie in derselben Richtung verläuft wie die "Horizontale" des Objekts (1) oder umgekehrt (0), die Gruppe 75 gibt an, ob überhaupt eine Ansatzlinie gezeichnet wird (1). Wurde die Führungslinie mit einem Text versehen, so ist dieser in einem separaten MTEXT-Objekt gespeichert. Trotzdem finden Sie in diesem Fall im Objekt LEADER zwei Zahlen, die die Höhe (Gruppe 40) und Breite (Gruppe 41) des Textblocks angeben.

Es folgt die Anzahl der Stützstellen der Führungslinie (Gruppe 76) und die Liste der Stützstellen (jeweils Gruppen 10/20/30). Durch diese Punkte verläuft der Linienzug. Bei einem Spline werden diese Punkte als Kontrollpolygon verwendet.

Die Führungslinie erscheint in der Farbe, die wie üblich in der Gruppe 62 gespeichert ist. Diese ergibt sich aus der Einstellung DIMCLRD des zugeordneten Bemaßungsstils. Die beim Erzeugen des LEADER-Objekts aktive Farbe wird zusätzlich in der Gruppe 77 gespeichert. Sie wird verwendet, wenn die entsprechende Farbe im Bemaßungsstil auf "ByBlock" gesetzt ist.

Den Abschluß der Führungsliniendefinition bildet der Normalenvektor (Gruppen 210/220/230) und die Richtung der Horizontalen des Objekts (Gruppen 211/221/231) (Vorgabe 1,0,0).

TOLERANCE

Das Objekt TOLERANCE beschreibt eine Form- und Lagetoleranzbeschriftung. Wie beim Objekt LEADER wird ein Bemaßungsstil verwendet (Gruppe 3), um Texthöhe, Farbe usw. festzulegen. Auch die Form- und Lagetoleranzbeschriftung ist selbstverständlich ein planares Objekt.

Die Definition des TOLERACE-Objekts ist sehr einfach. Sie besteht aus einem Referenzpunkt (Gruppen 10/20/30), der in Weltkoordinaten den Mittelpunkt der linken Seite des die erste Zeile umschreibenden Rechtecks darstellt. Es folgt ein Text (Gruppe 1), der den Inhalt dieser Beschriftung angibt. Anschließend folgen noch ggfs. der Normalenvektor (Gruppen 210/220/230) und die Horizontale (Gruppen 211/221/231).

Der Aufbau des definierenden Texts ist nicht definiert. Offensichtlich stellen aber die Zeichen %%v den Trenner zwischen den einzelnen Feldern dar (max. 6 pro Zeile), die Zeichen ^J den Trenner zwischen den Zeilen (max. 4). In jedem Feld findet man Ziffern und Buchstaben sowie ähnlich wie im Objekt MTEXT Verweise der Form {\Fgdt;x} auf die Sonderschrift GDT.SHX, über die sich die verwendeten Sonderzeichen ergeben.

MTEXT

Das Objekt MTEXT ist eine Erweiterung des in Kapitel 6.5 beschriebenen Objekts TEXT. Während das Objekt Text nur eine einzelne Textzeile von maximal 255 Zeichen enthalten darf, lassen sich mit MTEXT beliebig große Textblöcke speichern. Der Textblock wird auf der Zeichnung in Zeilen einer vorgegebenen Breite umbrochen. Der Zeilenumbruch ist abhängig von der verwendeten Schrift sowie den Textattributen, läßt sich also nur begrenzt festlegen.

Ein MTEXT besitzt ebenso wie ein TEXT eine vorgegebene Zeichenhöhe und einen Textstil, der die zu verwendende Schrift bestimmt. Beide können aber für einzelne Abschnitte des Textblocks verändert werden.

Die MTEXT-Definition beginnt mit einem Referenzpunkt (Gruppen 10/20/30) in Weltkoordinaten. Es folgt die vorgegebene Zeichenhöhe (Gruppe 40) und die maximale Zeilenlänge (Gruppe 41). Der in Zeilen umbrochene Text wird dann relativ zum Referenzpunkt plaziert. Die Orientierung ergibt sich aus den Werten der Gruppen 71 und 72: Ausrichtung (Gruppe 71) 1 = Referenzpunkt ist oben links, 2 = oben mitte, 3 = oben rechts, 4 = mitte links, 5 = mitte, 6 = mitte rechts, 7 = unten links, 8 = unten mitte, 9 = unten rechts; Orientierung (Gruppe 72) 1 = Schrift läuft von links nach rechts, 2 = von rechts nach links, 3= von oben nach unten, 4 = von unten nach oben.

Es folgt der Inhalt des Textblocks. Dieser wird in Stücke von je 255 Zeichen aufgeteilt. Alle Stücke werden als Gruppe 3, nur das letzte Stück wird als Gruppe 1 gespeichert. Der Text kann neben Buchstaben und Ziffern auch Unicode-Codierungen sowie Steuersequenzen enthalten. Steuersequenzen werden durch einen inversen Schrägstrich (\) eingeleitet und gelten für den gesamten folgenden Text. Soll die Steuersequenz nur für einen begrenzten Abschnitt gelten, so wird der Abschnitt beginnend mit dem Steuerzeichen in geschweifte Klammern ({...}) eingeschlossen. Folgende Steuerzeichen sind zulässig:

\\                    einfacher inverser Schrägstrich \ als Textzeichen
\{                    einfache öffnende Klammer { als Textzeichen
\}                    einfache schließende Klammer } als Textzeichen
\~                    geschütztes Leerzeichen
\AZahl;               Ausrichtung (0=unten, 1=Mitte, 2=oben)
\CZahl;               Farbwechsel
\FSchrift;            Schriftwechsel (Dateiname, nicht Textstilname!)
\HZahl;               Wechsel der Buchstabenhöhe
\L ... \l             Unterstreichen ein/aus
\O ... \o             Überstreichen ein/aus
\P                    fester Zeilenwechsel
\QZahl;               Wechsel des Neigungswinkels
\S ... / ...          Bruch
\S ... ^ ...          Übereinanderstellen von Texten
\TZahl;               Wechsel des Buchstabenabstands
\U+nnnn               Sonderzeichen mit der Unicode-Kennung nnnn
\WZahl;               Wechsel der Buchstabenbreite

Im Anschluß an die letzte Textgruppe 1 folgt der zugeordnete Textstil (Gruppe 7), die Normalenrichtung (Gruppen 210/220/230) sowie die Richtung der Horizontalen (Gruppen 11/21/31).

3DSOLID, BODY und REGION

Wie bereits erwähnt, benutzt AutoCAD Release 13 wie viele andere CAD-Systeme den 3D-Volumenmodellierer ACIS von Spatial Technology. Innerhalb von AutoCAD und den AutoCAD-Zeichnungsdateien werden deshalb ACIS-Objekte der Datentypen 3DSOLID, BODY und REGION gespeichert. Da eine DXF-Datei eine 100%ige Kopie einer AutoCAD-Zeichnungsdatei ist, findet man diese ACIS-Objekte auch in der DXF-Datei wieder.

Da allerdings ACIS und die ACIS-Datenstruktur Eigentum der Firma Spatial Technology sind, durfte Autodesk die Bedeutung der ACIS-Objekte nicht beschreiben. Autodesk mußte die Daten aus Lizenzgründen sogar verschlüsselt in die DXF-Datei schreiben, zum Ärgernis aller DXF-Leser.

ACIS verwendet ein eigenes Datenaustasuchformat, mit dem sich allerdings lediglich die ACIS-Modelle austauschen lassen. Dieses Datenformat trägt die Bezeichnung SAT, eine Beschreibung ist über den Web-Server von Spatial Technology erreichbar.

Die Objekte 3DSOLID, BODY und REGION bestehen jeweils aus einer Gruppe 70 mit dem Wert 1, gefolgt von der verschlüsselten SAT-Datei des ACIS-Objekts. Die SAT-Datei besteht aus Zeilen, jede Zeile wird in Stücke zu maximal 255 Zeichen zerlegt. Wie beim Objekt MTEXT bekommen die Stücke die Gruppennummer 3, nur das letzte Stück jeder Zeile bekommt die Gruppennummer 1. Beim Lesen der DXF-Datei müssen deshalb die Gruppen 3 und die folgende Gruppe 1 zu einer Zeile zusammengesetzt werden.

Der verwendeten Verschlüsselung ist deutlich anzumerken, daß sie ausschließlich aus dem Grund angewendet wurde, daß irgendeine Verschlüsselung stattfinden muß. Als EDV-Profi sollten Sie nicht länger als fünf Minuten brauchen, um diese Denksportaufgabe zu lösen.

OLEFRAME

Ähnlich zu den ACIS-Objekten sind die OLE-Objekte. Hier jedoch gibt es keine Verschlüsselung und keine Lizenzprobleme. Stattdessen liegt es in der Natur der OLE-Objekte, daß ausschließlich das erzeugende Programm über den Inhalt und die Datenstruktur der gespeicherten Information Bescheid weiß. Ein OLEFRAME-Objekt ist deshalb eine ASCII-Speicherung des kompletten OLE-Objekts. Nur das erzeugende Programm weiß, ob es sich um ein Paintbrush-Bild, einen Klang oder einen Film handelt.

Die DXF-Darstellung eines OLE-Objekts besteht aus einer undokumentierten Gruppe 70, einer undokumentierten Gruppe 90, vielen Gruppen 340 und dem Text OLE (Gruppe 1). Die Gruppen 340 enthalten die Binärdaten des OLE-Objekts.

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