chiark / gitweb /
Remove the load/prepare/print buttons from the bottom as they are in the 3D window...
[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
13 from optparse import OptionParser
14
15 from Cura.util import profile
16
17 __author__ = 'Daid'
18 __credits__ = """
19 David Braam (daid303@gmail.com)
20 Enrique Perez (perez_enrique@yahoo.com)
21 Adrian Bowyer <http://forums.reprap.org/profile.php?12,13>
22 Brendan Erwin <http://forums.reprap.org/profile.php?12,217>
23 Greenarrow <http://forums.reprap.org/profile.php?12,81>
24 Ian England <http://forums.reprap.org/profile.php?12,192>
25 John Gilmore <http://forums.reprap.org/profile.php?12,364>
26 Jonwise <http://forums.reprap.org/profile.php?12,716>
27 Kyle Corbitt <http://forums.reprap.org/profile.php?12,90>
28 Michael Duffin <http://forums.reprap.org/profile.php?12,930>
29 Marius Kintel <http://reprap.soup.io/>
30 Nophead <http://www.blogger.com/profile/12801535866788103677>
31 PJR <http://forums.reprap.org/profile.php?12,757>
32 Reece.Arnott <http://forums.reprap.org/profile.php?12,152>
33 Wade <http://forums.reprap.org/profile.php?12,489>
34 Xsainnz <http://forums.reprap.org/profile.php?12,563>
35 Zach Hoeken <http://blog.zachhoeken.com/>
36 Ilya Kulakov (kulakov.ilya@gmail.com)
37
38 Organizations:
39 Ultimaker <http://www.ultimaker.com>
40 Art of Illusion <http://www.artofillusion.org/>"""
41
42 __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
43
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",
48                 help="Load settings from a profile ini file")
49         parser.add_option("-r", "--print", action="store", type="string", dest="printfile",
50                 help="Open the printing interface, instead of the normal cura interface.")
51         parser.add_option("-p", "--profile", action="store", type="string", dest="profile",
52                 help="Internal option, do not use!")
53         parser.add_option("-s", "--slice", action="store_true", dest="slice",
54                 help="Slice the given files instead of opening them in Cura")
55         (options, args) = parser.parse_args()
56
57         if options.profile is not None:
58                 profile.loadGlobalProfileFromString(options.profile)
59         if options.profileini is not None:
60                 profile.loadGlobalProfile(options.profileini)
61
62         if options.printfile is not None:
63                 from Cura.gui import printWindow
64                 printWindow.startPrintInterface(options.printfile)
65         elif options.slice is not None:
66                 from Cura.util import sliceRun
67                 sliceRun.runSlice(args)
68         else:
69                 #Place any unused arguments as last file, so Cura starts with opening those files.
70                 if len(args) > 0:
71                         profile.putPreference('lastFile', ';'.join(args))
72                         profile.putProfileSetting('model_matrix', '1,0,0,0,1,0,0,0,1')
73                         profile.setPluginConfig([])
74
75                 #Do not import anything from Cura.gui before this spot, as the above code also needs to run in pypy.
76                 from Cura.gui import app
77                 app.CuraApp().MainLoop()
78
79 if __name__ == '__main__':
80         main()