From cbceb87d9595601ed0edf5ca55372021d1728f03 Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Fri, 29 Jan 2021 17:01:22 -0600 Subject: [PATCH] Fix DXF import with no layers As discussed in https://forum.freecadweb.org/viewtopic.php?f=3&t=54842, if OpenSCAD creates a DXF with no layers in it, the code that is supposed to handle that in FreeCAD has a minor type error in it that prevents the import from working. --- src/Mod/Draft/importDXF.py | 2 +- src/Mod/OpenSCAD/OpenSCAD2Dgeom.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Mod/Draft/importDXF.py b/src/Mod/Draft/importDXF.py index 49430955ba..fac0493aa3 100644 --- a/src/Mod/Draft/importDXF.py +++ b/src/Mod/Draft/importDXF.py @@ -2220,7 +2220,7 @@ def processdxf(document, filename, getShapes=False, reComputeFlag=True): drawstyle = "Dashdot" locateLayer(name, color, drawstyle) else: - locateLayer("0", [0.0, 0.0, 0.0], "Solid") + locateLayer("0", (0.0, 0.0, 0.0), "Solid") # Draw lines lines = drawing.entities.get_type("line") diff --git a/src/Mod/OpenSCAD/OpenSCAD2Dgeom.py b/src/Mod/OpenSCAD/OpenSCAD2Dgeom.py index 378eea52fb..f65e59034b 100644 --- a/src/Mod/OpenSCAD/OpenSCAD2Dgeom.py +++ b/src/Mod/OpenSCAD/OpenSCAD2Dgeom.py @@ -500,7 +500,9 @@ def importDXFface(filename,layer=None,doc=None): #shapeobj.Document.removeObject(shapeobj.Name) #groupobj[0].Document.removeObject(groupobj[0].Name) for layer in layers: #remove everything that has been imported - layer.removeObjectsFromDocument() + removeOp = getattr(layer, "removeObjectsFromDocument", None) + if callable(removeOp): + layer.removeObjectsFromDocument() #for obj in layer.Group: # obj.Document.removeObject(obj.Name) layer.Document.removeObject(layer.Name)