diff --git a/src/Mod/Draft/Resources/ui/preferences-dxf.ui b/src/Mod/Draft/Resources/ui/preferences-dxf.ui
index 9bce9377b0..e986336cb0 100644
--- a/src/Mod/Draft/Resources/ui/preferences-dxf.ui
+++ b/src/Mod/Draft/Resources/ui/preferences-dxf.ui
@@ -6,8 +6,8 @@
0
0
- 506
- 647
+ 649
+ 773
@@ -52,6 +52,19 @@
+ -
+
+
+ Use legacy python exporter
+
+
+ dxfUseLegacyExporter
+
+
+ Mod/Draft
+
+
+
-
diff --git a/src/Mod/Draft/importDXF.py b/src/Mod/Draft/importDXF.py
index e148bed764..84b3ffc93a 100644
--- a/src/Mod/Draft/importDXF.py
+++ b/src/Mod/Draft/importDXF.py
@@ -1940,8 +1940,14 @@ def getStrGroup(ob):
def export(objectslist,filename,nospline=False,lwPoly=False):
"called when freecad exports a file. If nospline=True, bsplines are exported as straight segs. lwPoly=True is for OpenSCAD DXF"
-
readPreferences()
+ if not dxfUseLegacyExporter:
+ import Import
+ version = 14
+ if nospline:
+ version = 12
+ Import.writeDXFObject(objectslist,filename,version,lwPoly)
+ return
getDXFlibs()
if dxfLibrary:
global exportList
@@ -2307,6 +2313,7 @@ def readPreferences():
global dxfMakeBlocks, dxfJoin, dxfRenderPolylineWidth, dxfImportTexts, dxfImportLayouts
global dxfImportPoints, dxfImportHatches, dxfUseStandardSize, dxfGetColors, dxfUseDraftVisGroups
global dxfFillMode, dxfBrightBackground, dxfDefaultColor, dxfUseLegacyImporter, dxfExportBlocks, dxfScaling
+ global dxfUseLegacyExporter
dxfCreatePart = p.GetBool("dxfCreatePart",True)
dxfCreateDraft = p.GetBool("dxfCreateDraft",False)
dxfCreateSketch = p.GetBool("dxfCreateSketch",False)
@@ -2324,6 +2331,7 @@ def readPreferences():
dxfUseDraftVisGroups = p.GetBool("dxfUseDraftVisGroups",False)
dxfFillMode = p.GetBool("fillmode",True)
dxfUseLegacyImporter = p.GetBool("dxfUseLegacyImporter",False)
+ dxfUseLegacyExporter = p.GetBool("dxfUseLegacyExporter",False)
dxfBrightBackground = isBrightBackground()
dxfDefaultColor = getColor()
dxfExportBlocks = p.GetBool("dxfExportBlocks",True)