chiark / gitweb /
195029f6cdc7e104b3d1228695c7df46451ccaaa
[cura.git] / Cura / cura.py
1 #!/usr/bin/python
2 """
3 This page is in the table of contents.
4 ==Overview==
5 ===Introduction===
6 Cura is a GPL tool chain to forge a gcode skein for a model. Based on Skeinforge.
7
8 The slicing code is the same as Skeinforge. But the UI has been revamped to be... sane.
9
10 """
11 from __future__ import absolute_import
12 import __init__
13
14 import sys
15 import platform
16 from optparse import OptionParser
17
18 from util import profile
19 from util import sliceRun
20
21 __author__ = 'Daid'
22 __credits__ = """
23 Enrique Perez (perez_enrique@yahoo.com)
24 Adrian Bowyer <http://forums.reprap.org/profile.php?12,13>
25 Brendan Erwin <http://forums.reprap.org/profile.php?12,217>
26 Greenarrow <http://forums.reprap.org/profile.php?12,81>
27 Ian England <http://forums.reprap.org/profile.php?12,192>
28 John Gilmore <http://forums.reprap.org/profile.php?12,364>
29 Jonwise <http://forums.reprap.org/profile.php?12,716>
30 Kyle Corbitt <http://forums.reprap.org/profile.php?12,90>
31 Michael Duffin <http://forums.reprap.org/profile.php?12,930>
32 Marius Kintel <http://reprap.soup.io/>
33 Nophead <http://www.blogger.com/profile/12801535866788103677>
34 PJR <http://forums.reprap.org/profile.php?12,757>
35 Reece.Arnott <http://forums.reprap.org/profile.php?12,152>
36 Wade <http://forums.reprap.org/profile.php?12,489>
37 Xsainnz <http://forums.reprap.org/profile.php?12,563>
38 Zach Hoeken <http://blog.zachhoeken.com/>
39
40 Organizations:
41 Art of Illusion <http://www.artofillusion.org/>"""
42
43 __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
44
45 def main():
46         parser = OptionParser(usage="usage: %prog [options] <filename>.stl")
47         parser.add_option("-i", "--ini", action="store", type="string", dest="profileini", help="Load settings from a profile ini file")
48         parser.add_option("-P", "--project", action="store_true", dest="openprojectplanner", help="Open the project planner")
49         parser.add_option("-F", "--flat", action="store_true", dest="openflatslicer", help="Open the 2D SVG slicer")
50         parser.add_option("-r", "--print", action="store", type="string", dest="printfile", help="Open the printing interface, instead of the normal cura interface.")
51         parser.add_option("-p", "--profile", action="store", type="string", dest="profile", help="Internal option, do not use!")
52         (options, args) = parser.parse_args()
53         if options.profile != None:
54                 profile.loadGlobalProfileFromString(options.profile)
55         if options.profileini != None:
56                 profile.loadGlobalProfile(options.profileini)
57         if options.openprojectplanner != None:
58                 from gui import projectPlanner
59                 projectPlanner.main()
60                 return
61         if options.openflatslicer != None:
62                 from gui import flatSlicerWindow
63                 flatSlicerWindow.main()
64                 return
65         if options.printfile != None:
66                 from gui import printWindow
67                 printWindow.startPrintInterface(options.printfile)
68                 return
69
70         if len( args ) > 0:
71                 sliceRun.runSlice(args)
72         else:
73                 from gui import mainWindow
74                 mainWindow.main()
75
76 if __name__ == '__main__':
77         main()
78