Funkcja DXF, środowiska Rysunek Roboczy jest modułem oprogramowania używanym przez polecenia Otwórz,
Importuj i
Eksportuj do obsługi formatu pliku DXF.
From the user's point of view, the DXF import/export module will be loaded automatically when any of those commands are invoked and the file to open, import or export is a DXF file. The main difference between Std Open and the import command is that the former will create a new FreeCAD document and then do the import, whereas the later will import the DXF file and insert the result in the currently active document.
Rysunek Qcad wyeksportowany do DXF, który jest następnie otwierany w programie FreeCAD
Dostępne są dwa importery, który z nich będzie używany można określić w menu Edycja → Preferencje → Import/Eksport → DXF: Pierwszy jest wbudowany, oparty na C++ i szybki, drugi jest starszy, zakodowany w Pythonie, wolniejszy i wymaga instalacji dodatku, ale czasami lepiej radzi sobie z niektórymi wystąpieniami obiektów i potrafi tworzyć bardziej dopracowane obiekty FreeCAD. Oba obsługują wszystkie wersje DXF począwszy od R12.
Bryły 3D wewnątrz pliku DXF są przechowywane w binarnym bloku ACIS/SAT, który w tej chwili nie może być odczytany przez FreeCAD.
Obiekt | Importer C++ | Starszy importer |
---|---|---|
Linie | ✓ | ✓ |
Polilinie (i LWPOLYLINES) | ✓ | ✓ |
Łuki | ✓ | ✓ |
Okręgi | ✓ | ✓ |
Elipsy | ✓ | ✓ |
Krzywe złożone | ✓ | ✓ |
Teksty i obiekty MText | ✓ | ✓ |
Linie odniesienia | ✓ | ✓ |
Warstwy | ✓ | ✓ |
Punkty | ✓ | ✗ |
Wymiary | ✓ | ✗ |
Bloki | ✓ (Tylko geometria; teksty, wymiary i atrybuty wewnątrz bloków są pomijane) |
✗ |
Obiekty obszaru kartki | ✓ | ✗ |
Ściany 3D | ✗ | ✓ |
Istnieją również dwa eksportery. Starszy eksporter eksportuje do formatu R12 DXF, a eksporter C++ do formatu R14 DXF. Oba formaty mogą być obsługiwane przez wiele aplikacji.
Feature | C++ exporter (R14) | Legacy exporter (R12) |
---|---|---|
Supported 2D Geometry | All except Bezier curves. Ellipses and Splines are exported natively. | All except Points. Ellipses and B-splines may be inaccurate or exported as polylines. |
Points | ✓ (If the "Export points" preference is enabled) |
✗ |
3D Objects | Edges from faces are exported. Curved edges only if on XY plane. May create duplicate lines. | Exported as flattened 2D views. |
Texts and Dimensions | ✗ | ✓ |
Colors | ✗ | ✓ (Based on object line color) |
Layers | ✓ (Mapped from object names) |
✓ (Mapped from layers and nested groups) |
Compounds | ✗ | ✓ (Exported as blocks) |
Z powodów licencyjnych, wymagane biblioteki importu/eksportu DXF potrzebne dla starszej wersji importera, nie są częścią kodu źródłowego programu FreeCAD. Aby uzyskać więcej informacji zobacz stronę: FreeCAD i import DXF.
Aby uzyskać więcej informacji zobacz stronę Ustawienia Importu i Eksportu.
Ponieważ format DWG jest prawnie zastrzeżonym, zamkniętym i nieudokumentowanym formatem, trudno jest go wspierać w projektach open-source takich jak FreeCAD. Dlatego też FreeCAD polega na zewnętrznych konwerterach do odczytu i zapisu plików DWG. Aby zaimportować plik DWG używa się konwertera, który najpierw tworzy plik DXF, który następnie może być przetworzony przez importer FreeCAD DXF. Podczas eksportowania do DWG następuje odwrotna konwersja: DXF utworzony przez eksporter FreeCAD DXF jest zamieniany w DWG.
Należy pamiętać, że format DXF umożliwia konwersję 1:1 formatu DWG. Wszystkie aplikacje, które mogą odczytywać i zapisywać pliki DWG, mogą to samo robić z plikami DXF, bez utraty danych. Tak więc prośba o pliki DXF zamiast plików DWG, a następnie dostarczenie plików DXF z kolei, nie powinna powodować żadnych problemów.
Wbudowane jest wsparcie dla następujących konwerterów DWG:
Zobacz strony Ustawienia Importu i Eksportu i FreeCAD i import DWG, aby uzyskać więcej informacji.
Zobacz również: Dokumentacja API generowana automatycznie oraz Podstawy tworzenia skryptów FreeCAD.
Do eksportu obiektów do DXF użyj metody export
modułu importDXF.
importDXF.export(objectslist, filename, nospline=False, lwPoly=False)
filename
.Przykład:
import FreeCAD as App
import Draft
import importDXF
doc = App.newDocument()
polygon1 = Draft.make_polygon(3, radius=500)
polygon2 = Draft.make_polygon(5, radius=1500)
doc.recompute()
objects = [polygon1, polygon2]
importDXF.export(objects, "/home/user/Pictures/myfile.dxf")