From b68f571e93255bfae0da6884a38965060f2fc08d Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 4 Feb 2019 13:35:00 -0200 Subject: [PATCH] Arch: Fixed encoding bug in OBJ importer --- src/Mod/Arch/importOBJ.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Mod/Arch/importOBJ.py b/src/Mod/Arch/importOBJ.py index d43165d504..c5efb49550 100644 --- a/src/Mod/Arch/importOBJ.py +++ b/src/Mod/Arch/importOBJ.py @@ -20,7 +20,7 @@ #* * #*************************************************************************** -import FreeCAD, DraftGeomUtils, Part, Draft, Arch, Mesh, os +import FreeCAD, DraftGeomUtils, Part, Draft, Arch, Mesh, os, sys if FreeCAD.GuiUp: from DraftTools import translate else: @@ -43,6 +43,13 @@ p = Draft.precision() if open.__module__ in ['__builtin__','io']: pythonopen = open +def decode(txt): + + if sys.version_info.major < 3: + if isinstance(txt,unicode): + return txt.encode("utf8") + return txt + def findVert(aVertex,aList): "finds aVertex in aList, returns index" for i in range(len(aList)): @@ -186,7 +193,7 @@ def export(exportList,filename): for f in flist: outfile.write("f" + f + "\n") outfile.close() - FreeCAD.Console.PrintMessage(translate("Arch","Successfully written") + " " + filename + "\n") + FreeCAD.Console.PrintMessage(translate("Arch","Successfully written") + " " + decode(filename) + "\n") if materials: outfile = pythonopen(filenamemtl,"wb") outfile.write("# FreeCAD v" + ver[0] + "." + ver[1] + " build" + ver[2] + " Arch module\n") @@ -209,7 +216,7 @@ def export(exportList,filename): done.append(mat.Name) outfile.write("# Material Count: " + str(len(materials))) outfile.close() - FreeCAD.Console.PrintMessage(translate("Arch","Successfully written") + ' ' + filenamemtl + "\n") + FreeCAD.Console.PrintMessage(translate("Arch","Successfully written") + ' ' + decode(filenamemtl) + "\n") def decode(name): @@ -287,7 +294,7 @@ def insert(filename,docname): material = line[7:] if activeobject: makeMesh(doc,activeobject,verts,facets,material,colortable) - FreeCAD.Console.PrintMessage(translate("Arch","Successfully imported") + ' ' + filename + "\n") + FreeCAD.Console.PrintMessage(translate("Arch","Successfully imported") + ' ' + decode(filename) + "\n") return doc def makeMesh(doc,activeobject,verts,facets,material,colortable):