From 1ea6fb9c544b8e37ece0918ef64d17f48b84ad80 Mon Sep 17 00:00:00 2001 From: Sebastian Hoogen Date: Fri, 12 Jul 2013 11:59:43 +0200 Subject: [PATCH] OpenSCAD: close csg file and allow unlink to fail --- src/Mod/OpenSCAD/OpenSCADCommands.py | 6 +++++- src/Mod/OpenSCAD/importCSG.py | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Mod/OpenSCAD/OpenSCADCommands.py b/src/Mod/OpenSCAD/OpenSCADCommands.py index d1750c718..778e310a7 100644 --- a/src/Mod/OpenSCAD/OpenSCADCommands.py +++ b/src/Mod/OpenSCAD/OpenSCADCommands.py @@ -224,7 +224,11 @@ class AddSCADTask: else: import importCSG importCSG.insert(tmpfilename,doc.Name) - os.unlink(tmpfilename) + try: + os.unlink(tmpfilename) + except OSError: + pass + except OpenSCADUtils.OpenSCADError, e: FreeCAD.Console.PrintError(e.value) diff --git a/src/Mod/OpenSCAD/importCSG.py b/src/Mod/OpenSCAD/importCSG.py index d3215d20a..7cc5c0548 100644 --- a/src/Mod/OpenSCAD/importCSG.py +++ b/src/Mod/OpenSCAD/importCSG.py @@ -139,8 +139,10 @@ def processcsg(filename): # Swap statements to enable Parser debugging #result = parser.parse(f.read(),debug=1) result = parser.parse(f.read()) - if printverbose: print 'End Parser' - if printverbose: print result + f.close() + if printverbose: + print 'End Parser' + print result FreeCAD.Console.PrintMessage('End processing CSG file\n') doc.recompute() @@ -158,7 +160,7 @@ def p_block_list_(p): p[0] = p[1] + p[2] else : p[0] = p[1] - if printverbose: print "End Block List" + if printverbose: print "End Block List" def p_render_action(p): 'render_action : render LPAREN keywordargument_list RPAREN OBRACE block_list EBRACE'