1 __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License"
2 from __future__ import absolute_import
4 from Cura.util.meshLoaders import stl
5 from Cura.util.meshLoaders import obj
6 from Cura.util.meshLoaders import dae
7 from Cura.util.meshLoaders import amf
9 def loadSupportedExtensions():
10 return ['.stl', '.obj', '.dae', '.amf']
12 def saveSupportedExtensions():
13 return ['.amf', '.stl']
15 def loadWildcardFilter():
16 wildcardList = ';'.join(map(lambda s: '*' + s, loadSupportedExtensions()))
17 return "Mesh files (%s)|%s;%s" % (wildcardList, wildcardList, wildcardList.upper())
19 def saveWildcardFilter():
20 wildcardList = ';'.join(map(lambda s: '*' + s, saveSupportedExtensions()))
21 return "Mesh files (%s)|%s;%s" % (wildcardList, wildcardList, wildcardList.upper())
23 #loadMeshes loads 1 or more printableObjects from a file.
24 # STL files are a single printableObject with a single mesh, these are most common.
25 # OBJ files usually contain a single mesh, but they can contain multiple meshes
26 # AMF can contain whole scenes of objects with each object having multiple meshes.
27 # DAE files are a mess, but they can contain scenes of objects as well as grouped meshes
29 def loadMeshes(filename):
30 ext = filename[filename.rfind('.'):].lower()
32 return stl.loadScene(filename)
34 return obj.loadScene(filename)
36 return dae.loadScene(filename)
38 return amf.loadScene(filename)
39 print 'Error: Unknown model extension: %s' % (ext)
42 def saveMeshes(filename, objects):
43 ext = filename[filename.rfind('.'):].lower()
45 stl.saveScene(filename, objects)
48 amf.saveScene(filename, objects)
50 print 'Error: Unknown model extension: %s' % (ext)