DXF
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.
- Anonyme Blöcke (oder "Asterisk" block): Dies ist der vom DXF-Standard definierte Fachbegriff. Er bezieht sich auf jeden Block, dessen Name mit einem Sternchen beginnt (
*). Es ist der übergeordnete Begriff.
- Systemblock: Dieser Begriff beschreibt den Zweck der meisten anonymen Blöcke. Sie werden in der Regel nicht direkt von einem Benutzer erstellt. Stattdessen generiert die CAD-Anwendung (z. B. AutoCAD) sie automatisch, um komplexe Objekte darzustellen, die aus einfacheren geometrischen Elementen wie Schraffuren und Bemaßungen bestehen.
- Versteckter Block: Dieser Begriff beschreibt das typische Verhalten anonymer Blöcke innerhalb der Benutzeroberfläche eines CAD-Programms. Da sie vom System generiert werden und nicht für die direkte Bearbeitung durch den Benutzer vorgesehen sind, werden sie in der Regel aus der Liste der Blöcke ausgeblendet, die ein Benutzer einfügen kann.
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:
*D...(Dimensions): Ein Block, der die grafischen Komponenten einer Dimensionsentität darstellt (Linien, Pfeilspitzen usw.).*X...(Hatches): Ein Block, der die Geometrie darstellt, aus der ein Schraffurmuster besteht.*P...(Paper Space Layouts): Ein Block, der alle Elemente enthält, die auf einem bestimmten Papierbereichslayout vorhanden sind. Das Hauptmodell befindet sich in der Regel in einem Block mit dem Namen*Model_Space, und die einzelnen Layouts heißen*Paper_Space,*Paper_Space0,*Paper_Space1usw.*U...(Dynamic Blocks): Dies sind komplexe Blöcke, die für die dynamische Blockfunktionalität von AutoCAD verwendet werden.*E...,*T..., etc.: Für spezielle Objekte wie assoziative Pfeilspitzen und Tabellen gibt es weitere Präfixe.
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:
- Hat einen Namen: Jeder vom Benutzer erstellte Block hat einen eindeutigen Namen (z. B. „CHAIR-01”, „BOLT-M8”). Dieser Name wird verwendet, um auf den Block zu verweisen.
- Hat einen Basispunkt: Dies ist der Ursprungspunkt (0,0,0) innerhalb des blockinternen Koordinatensystems. Beim Einfügen des Blocks wird dieser Basispunkt an den angegebenen Einfügekoordinaten ausgerichtet.
- Ist an sich nicht sichtbar: Die Definition von
BLOCKwird in einem bibliotheksähnlichen Abschnitt der DXF-Datei (dem AbschnittBLOCKS) gespeichert. Die Geometrie innerhalb des Blocks erscheint erst dann in der endgültigen Zeichnung, wenn eine Instanz davon erstellt wird.
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:
- Referenziert einen Block anhand seines Namens: Es gibt an, welche
BLOCK-Definition verwendet werden soll (z. B. "Ich bin eine Instanz des Blocks ‚CHAIR-01‘"). - Hat einen Einfügepunkt: Dies ist die (X, Y, Z)-Koordinate in der Zeichnung, an der der Basispunkt des Blocks platziert werden soll.
- Hat Transformationen: Jede Instanz kann unabhängig voneinander transformiert werden, ohne die ursprüngliche Blockdefinition zu beeinflussen. Diese Transformationen umfassen:
- Maßstab: Die Instanz kann in X-, Y- und Z-Richtung unterschiedlich skaliert werden.
- Rotation: Die Instanz kann um ihren Einfügepunkt gedreht werden.
BLOCK Platzierungs-Strategien
Eine DXF-Datei trennt die Definition einer Komponente von ihrer Platzierung.
- Ein
BLOCKist die Vorlage oder der Entwurf. Er enthält die Geometrie, aus der eine Komponente besteht, wie beispielsweise ein Stuhl oder ein Fenster. Diese Definitionen werden im AbschnittBLOCKSder Datei gespeichert und sind in der endgültigen Zeichnung nicht direkt sichtbar. - Ein
INSERTist die Anweisung, einenBLOCKan einer bestimmten Position, Ausrichtung und Skalierung in die Zeichnung einzufügen. Dies sind die sichtbaren Instanzen des Blocks, die im AbschnittENTITIESzu finden sind.
Es gibt zwei primäre Arbeitsabläufe zum benutzen von Blöcken und Einfügungen:
- Vorlage und Instanz-Arbeitsablauf: Es wird eine einzige
BLOCK-Definition erstellt, und mehrereINSERT-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 einemBLOCKdefiniert und dann mehrfach durchINSERT-Elemente referenziert. - Arbeitsablauf für zusammengesetzte Objekte: Ein
BLOCKwird aus vorhandener Geometrie erstellt, um diese Objekte einfach als eine einzige, auswählbare Einheit zu gruppieren. In diesem Fall wird dieBLOCK-Definition nur von einer einzigenINSERT-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).
- Erste Schritte
- Installation: Herunterladen, Windows, Linux, Mac, Zusätzliche Komponenten, Docker, AppImage, Ubuntu Snap
- Grundlagen: Über FreeCAD, Graphische Oberfläche, Mausbedienung, Auswahlmethoden, Objektname, Voreinstellungseditor, Arbeitsbereiche, Dokumentstruktur, Objekteigenschaften, FreeCAD unterstützen, Spenden
- Hilfe: Anleitungen, Videoanleitungen
- Arbeitsbereiche: Std Base, Arch, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework