DXF/de

Hintergrundgeschichte

Das Drawing Exchange Format (DXF) ist ein proprietäres CAD Datenformat, das von Autodesk entwickelt wurde, um den Dateiaustausch zwischen dem Flaggschiffprodukt AutoCAD und anderer Software zu ermöglichen. Es gibt eine Reihe von guten Softwarebibliotheken zum Lesen/Schreiben des DXF Formats.

Es gibt viele Versionen des DXF Formats. Du wirst von bestimmten Schlüsselversionen hören, wie z. B. R12 (von 1992) oder R14 (von 1997, die Splines hatte). Spätere Versionen von DXF haben 3D Elemente, aber diese werden nur selten verwendet oder implementiert. Wie du DXF nutzt, um CAD Daten zwischen Programmen auszutauschen, hängt hauptsächlich von den Begrenzungen und Fehlern in den entsprechenden Lesern/Importeuren und Schreibern/Exporteuren ab. Diese sind selten vollständig dokumentiert und können eine große Quelle der Frustration sein.

Wenn du DXF Dateien bearbeitest und möchtest, dass sie beim Speichern nahezu unverändert bleiben, empfehlen wir dir die Programme LibreCAD oder QCad, da die internen Datenstrukturen dieser Programme mit den Objekten in der DXF Datei kompatibel sind.

In FreeCAD müssen die DXF Leser die Geometrie (z. B. Spline Formen) aus der DXF Datei in die spezifischen internen Darstellungen des Arbeitsbereichs übersetzen.

Methoden zum Importieren von DXF in FreeCAD

Wenn Du die Einstellungen häufig überprüfen willst, empfehlen wir, in Bearbeiten → Einstellungen → Import-Export → DXF das Kästchen "[ ] Diesen Dialog beim importieren und exportieren anzeigen" zu aktivieren.

Mehr Informationen gibt es auf den Seiten Draft DXF und FreeCAD und DXF Import.

Wenn Du die importierte Geometrie nutzen willst, um 3D-Formen im PartDesign-Arbeitsbereich zu erstellen, dann versuche Skizzierer überprüfen, nachdem Du DXF in eine Skizze importiert hast.

C++ DXF-Importer

Diese Implementation ist schnell, überspringt aber Merkmale, die nicht erkannt werden, wie etwa DXF-Splines. Es kann außerdem nur Geometrien als einzelne Einträge im Modellbaum in den Draft-Arbeitsbereich importieren. Diese können die Farben aus der Datei importieren, wenn diese Option aktiviert ist. Weitere Informationen gibt es im (engl.) Forumseintrag.

Python DXF-Importer

Dieser Importer muss vor der Verwendung heruntergeladen und installiert werden. Dafür wird die Option "[ ] FreeCAD das automatische Herunterladen und Aktualisieren der DXF-Bibliotheken erlauben" (in Bearbeiten → Einstellungen → Import/Export → DXF) verwendet.

Dieser Importeur hat mehr Funktionen (wie das Importieren von Splines) und hat die Option zum Laden der DXF Formen in den Skizzierer. Sei jedoch gewarnt, dass alle Elemente der Skizze ein weiteres Mal einzeln im Modellbaum erscheinen, was verwirrend sein kann. Du kannst all diese einzelnen Objekte löschen und die einzelne Skizze beibehalten (die als zweiter Eintrag in der Liste der neuen Elemente erscheint).

Unglücklicherweise implementiert der Arbeitsbereich Skizze keine Farben, so dass alle Geometrien auf einer Ebene erscheinen, was zum Problem wird, wenn die Datei viele Konstruktionslinien enthält. Eine Umgehungslösung besteht darin, die Datei in LibreCAD zu öffnen und all die Geometrien zu löschen, die nicht erscheinen sollen, so dass eine Datei gespeichert wird, die genau die Geometrien enthält, die Du laden möchtest.

Makros

Hab' ein Auge auf das FreeCAD Forum oder die Makro Rezepte, um alternative Ausführungen von DXF Import und Aufräumroutinen kennenzulernen, während sie entwickelt werden.

DXF speichern

Zusätzlich zu den Optionen unter Bearbeiten → Voreinstellungen kann der TechDraw Arbeitsbereich auch Zeichnungsseiten mit der Funktion TechDraw ExportSeiteDXF nach DXF exportieren.


DXF Begriffe und Definitionen

Anonyme Blöcke

Bei der Erörterung von DXF-Dateien werden mehrere Begriffe verwendet, um Blöcke zu beschreiben, die automatisch vom CAD-Programm und nicht vom Benutzer generiert werden.

Im Wesentlichen ist "anonymer Block" der technische Name, "Systemblock" beschreibt seine Funktion und "versteckter Block" beschreibt sein typisches Verhalten in der Benutzeroberfläche. Im Zusammenhang mit dem FreeCAD-DXF-Importer beziehen sich alle drei Begriffe aus praktischen Gründen auf dieselbe Kategorie von Blöcken.

Klassen von anonymen Blöcken

Anonyme Blöcke werden anhand des Zeichens, das auf das Sternchen folgt, weiter unterteilt. Dieses Präfix gibt den spezifischen Zweck des Blocks an. Die gängigsten Klassen sind:

BLOCKs und INSERTs

Die BLOCK-Entität

Ein BLOCK ist eine benannte Sammlung geometrischer Elemente (Linien, Bögen, Polylinien usw.), die zu einer einzigen Objektdefinition zusammengefasst sind. Man kann sich das wie eine Vorlage vorstellen.

Ein BLOCK:

Die INSERT-Entität

Eine INSERT-Entität platziert eine Kopie oder Instanz der Geometrie eines BLOCK im Modellbereich oder Papierbereich der Zeichnung. Es handelt sich um eine sehr leichtgewichtige Entität, da sie nicht die Geometrie selbst enthält, sondern lediglich einen Verweis auf eine BLOCK-Definition und Anweisungen zum Platzieren und Transformieren.

Ein INSERT:

BLOCK Platzierungs-Strategien

Eine DXF-Datei trennt die Definition einer Komponente von ihrer Platzierung.

Es gibt zwei primäre Arbeitsabläufe zum benutzen von Blöcken und Einfügungen:

  1. Vorlage und Instanz-Arbeitsablauf: Es wird eine einzige BLOCK-Definition erstellt, und mehrere INSERT-Elemente werden verwendet, um Instanzen davon in der gesamten Zeichnung zu platzieren. Dies ist eine effiziente Methode für die Bearbeitung sich wiederholender Elemente. Beispielsweise wird die Geometrie für einen Stuhl einmal in einem BLOCK definiert und dann mehrfach durch INSERT-Elemente referenziert.
  2. Arbeitsablauf für zusammengesetzte Objekte: Ein BLOCK wird aus vorhandener Geometrie erstellt, um diese Objekte einfach als eine einzige, auswählbare Einheit zu gruppieren. In diesem Fall wird die BLOCK-Definition nur von einer einzigen INSERT-Entität verwendet.

Der DXF-Importer muss zwischen diesen beiden Anwendungsfällen unterscheiden können, um die Absicht der Originalzeichnung korrekt darzustellen, entweder durch Erstellen vieler verknüpfter Instanzen zu einem einzigen Basisobjekt (Vorlagenmodell) oder durch Erstellen eines einzigen sichtbaren Objekts (gruppiertes Objektmodell).