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