Arch: Fixed encoding bug in OBJ importer

This commit is contained in:
Yorik van Havre
2019-02-04 13:35:00 -02:00
parent 303e518c93
commit b68f571e93

View File

@@ -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):