Commit 9350ffa6 authored by Kliment's avatar Kliment

Merge branch 'master' of github.com:kliment/Printrun

parents 1307f980 55052854
# Sample .pronsolerc file - copy this into your home directory and rename it to .pronsolerc # Sample .pronsolerc file - copy this into your home directory and rename it to .pronsolerc
!print "Loaded " + self.rc_filename !print "Loaded " + self.rc_filename
macro up move Z 10 macro loud
macro loud !self.p.loud = 1 !if self.p.loud:
macro quiet !self.p.loud = 0 !self.p.loud = 0
!if hasattr(self,"cur_button") and self.cur_button is not None:
!self.onecmd('button %d "loud (off)" /c green loud' % self.cur_button)
!else:
!self.p.loud = 1
!if hasattr(self,"cur_button") and self.cur_button is not None:
!self.onecmd('button %d "loud (on)" /c yellow loud' % self.cur_button)
button 0 "loud (off)" /c "green" loud
This is a python-based host software for reprap printers, in various forms.
Printrun consists of printcore, pronsole and pronterface, and a small collection of helpful scripts. Printrun consists of printcore, pronsole and pronterface, and a small collection of helpful scripts.
printcore.py is a library that makes writing reprap hosts easy * printcore.py is a library that makes writing reprap hosts easy
pronsole.py is an interactive command-line host software with tabcompletion goodness * pronsole.py is an interactive command-line host software with tabcompletion goodness
pronterface.py is a graphical host software with the same functionality as pronsole * pronterface.py is a graphical host software with the same functionality as pronsole
INSTALLING DEPENDENCIES
# INSTALLING DEPENDENCIES
## Windows
Download the following, and install in this order:
1. http://python.org/ftp/python/2.7.2/python-2.7.2.msi
2. http://pypi.python.org/packages/any/p/pyserial/pyserial-2.5.win32.exe
3. http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.12.0-py27.exe
4. http://launchpad.net/pyreadline/trunk/1.7/+download/pyreadline-1.7.win32.exe
## Ubuntu/Debian
`sudo apt-get install python-serial python-wxgtk2.8`
## Fedora 15
`sudo yum install pyserial wxpython`
On Windows, download the following, and install in this order: ## Mac OS X Lion
http://python.org/ftp/python/2.7.2/python-2.7.2.msi
http://pypi.python.org/packages/any/p/pyserial/pyserial-2.5.win32.exe
http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.12.0-py27.exe
http://launchpad.net/pyreadline/trunk/1.7/+download/pyreadline-1.7.win32.exe
On Ubuntu/debian, do: 1. Ensure that the active Python is the system version. (`brew uninstall python` or other appropriate incantations)
sudo apt-get install python-serial python-wxgtk2.8 2. Download an install [wxPython version 2.9-Carbon](http://wxpython.org/download.php#unstable) (the Cocoa version doesn't work)
3. Download and unpack pyserial from http://pypi.python.org/packages/source/p/pyserial/pyserial-2.5.tar.gz
4. In a terminal, change to the folder you unzipped to, then type in: `sudo python setup.py install`
On Fedora 15 do: The tools will run just fine in 64bit on Lion, you don't need to mess
sudo yum install pyserial wxpython with any of the 32bit settings.
On Mac OS X, download and install: ## Mac OS X (pre Lion)
http://downloads.sourceforge.net/wxpython/wxPython2.8-osx-unicode-2.8.12.0-universal-py2.6.dmg 1. Download and install http://downloads.sourceforge.net/wxpython/wxPython2.8-osx-unicode-2.8.12.0-universal-py2.6.dmg
Grab the source for pyserial from http://pypi.python.org/packages/source/p/pyserial/pyserial-2.5.tar.gz 2. Grab the source for pyserial from http://pypi.python.org/packages/source/p/pyserial/pyserial-2.5.tar.gz
Unzip pyserial to a folder. Then, in a terminal, change to the folder you unzipped to, then type in: 3. Unzip pyserial to a folder. Then, in a terminal, change to the folder you unzipped to, then type in:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
sudo python setup.py install `defaults write com.apple.versioner.python Prefer-32-Bit -bool yes`
`sudo python setup.py install`
Alternatively, you can run python in 32 bit mode by setting the following environment variable before running the setup.py command: Alternatively, you can run python in 32 bit mode by setting the following environment variable before running the setup.py command:
export VERSIONER_PYTHON_PREFER_32_BIT=yes
`export VERSIONER_PYTHON_PREFER_32_BIT=yes`
Then repeat the same with http://launchpad.net/pyreadline/trunk/1.7/+download/pyreadline-1.7.zip Then repeat the same with http://launchpad.net/pyreadline/trunk/1.7/+download/pyreadline-1.7.zip
USING PRONTERFACE # USING PRONTERFACE
To use pronterface, you need: To use pronterface, you need:
python (ideally 2.6.x or 2.7.x),
pyserial (or python-serial on ubuntu/debian), * python (ideally 2.6.x or 2.7.x),
pyreadline (not needed on Linux) and * pyserial (or python-serial on ubuntu/debian),
wxPython * pyreadline (not needed on Linux) and
* wxPython
Download and install the above, and start pronterface.py Download and install the above, and start pronterface.py
Select the port name you are using from the first drop-down, select your baud rate, and hit connect. Select the port name you are using from the first drop-down, select your baud rate, and hit connect.
...@@ -48,12 +63,13 @@ The command box recognizes all pronsole commands, but has no tabcompletion. ...@@ -48,12 +63,13 @@ The command box recognizes all pronsole commands, but has no tabcompletion.
If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge". If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge".
The "skeinforge" folder must be in the same folder as pronterface.py The "skeinforge" folder must be in the same folder as pronterface.py
USING PRONSOLE # USING PRONSOLE
To use pronsole, you need: To use pronsole, you need:
python (ideally 2.6.x or 2.7.x),
pyserial (or python-serial on ubuntu/debian) and * python (ideally 2.6.x or 2.7.x),
pyreadline (not needed on Linux) * pyserial (or python-serial on ubuntu/debian) and
* pyreadline (not needed on Linux)
Start pronsole and you will be greeted with a command prompt. Type help to view the available commands. Start pronsole and you will be greeted with a command prompt. Type help to view the available commands.
All commands have internal help, which you can access by typing "help commandname", for example "help connect" All commands have internal help, which you can access by typing "help commandname", for example "help connect"
...@@ -61,16 +77,17 @@ All commands have internal help, which you can access by typing "help commandnam ...@@ -61,16 +77,17 @@ All commands have internal help, which you can access by typing "help commandnam
If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge". If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge".
The "skeinforge" folder must be in the same folder as pronsole.py The "skeinforge" folder must be in the same folder as pronsole.py
USING PRINTCORE: # USING PRINTCORE
To use printcore you need python (ideally 2.6.x or 2.7.x) and pyserial (or python-serial on ubuntu/debian) To use printcore you need python (ideally 2.6.x or 2.7.x) and pyserial (or python-serial on ubuntu/debian)
See pronsole for an example of a full-featured host, the bottom of printcore.py for a simple command-line See pronsole for an example of a full-featured host, the bottom of printcore.py for a simple command-line
sender, or the following code example: sender, or the following code example:
p=printcore('/dev/ttyUSB0',115200) p=printcore('/dev/ttyUSB0',115200)
p.startprint(data) # data is an array of gcode lines p.startprint(data) # data is an array of gcode lines
p.send_now("M105") # sends M105 as soon as possible p.send_now("M105") # sends M105 as soon as possible
p.pause() p.pause()
p.resume() p.resume()
p.disconnect() p.disconnect()
...@@ -391,10 +391,10 @@ class pronsole(cmd.Cmd): ...@@ -391,10 +391,10 @@ class pronsole(cmd.Cmd):
os.rename(rci.name,rci.name+"~old") os.rename(rci.name,rci.name+"~old")
rco.close() rco.close()
os.rename(rco.name,self.rc_filename) os.rename(rco.name,self.rc_filename)
if definition != "": #if definition != "":
print "Saved '"+key+"' to '"+self.rc_filename+"'" # print "Saved '"+key+"' to '"+self.rc_filename+"'"
else: #else:
print "Removed '"+key+"' from '"+self.rc_filename+"'" # print "Removed '"+key+"' from '"+self.rc_filename+"'"
except Exception, e: except Exception, e:
print "Saving failed for",key+":",str(e) print "Saving failed for",key+":",str(e)
finally: finally:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment