1 from __future__ import absolute_import
3 from Cura.util.meshLoaders import stl
4 from Cura.util.meshLoaders import obj
5 from Cura.util.meshLoaders import dae
6 from Cura.util.meshLoaders import amf
8 def loadSupportedExtensions():
9 return ['.stl', '.obj', '.dae', '.amf']
11 def saveSupportedExtensions():
12 return ['.amf', '.stl']
14 def loadWildcardFilter():
15 wildcardList = ';'.join(map(lambda s: '*' + s, loadSupportedExtensions()))
16 return "Mesh files (%s)|%s;%s" % (wildcardList, wildcardList, wildcardList.upper())
18 def saveWildcardFilter():
19 wildcardList = ';'.join(map(lambda s: '*' + s, saveSupportedExtensions()))
20 return "Mesh files (%s)|%s;%s" % (wildcardList, wildcardList, wildcardList.upper())
22 #loadMeshes loads 1 or more printableObjects from a file.
23 # STL files are a single printableObject with a single mesh, these are most common.
24 # OBJ files usually contain a single mesh, but they can contain multiple meshes
25 # AMF can contain whole scenes of objects with each object having multiple meshes.
26 # DAE files are a mess, but they can contain scenes of objects as well as grouped meshes
28 def loadMeshes(filename):
29 ext = filename[filename.rfind('.'):].lower()
31 return stl.loadScene(filename)
33 return obj.loadScene(filename)
35 return dae.loadScene(filename)
37 return amf.loadScene(filename)
38 print 'Error: Unknown model extension: %s' % (ext)
41 def saveMeshes(filename, objects):
42 ext = filename[filename.rfind('.'):].lower()
44 stl.saveScene(filename, objects)
47 amf.saveScene(filename, objects)
49 print 'Error: Unknown model extension: %s' % (ext)