From 5a2d769c1b110287260fa7953298956d40b25631 Mon Sep 17 00:00:00 2001 From: Bill Bumgarner Date: Sat, 10 Mar 2012 11:01:46 -0800 Subject: [PATCH 1/6] - build.sh can now take an optional argument that is the architecture of the target platform. I.e.: ./build.sh osx64 - updated to use the latest nightly pypy as it both seems relatively stable and the URL is subject to less rot - updated pronterface.sh to push user to installing Cocoa variant of wxPython and to no longer launch in 32 bit mode --- build.sh | 6 +++--- scripts/osx64/pronterface.sh | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.sh b/build.sh index e6981c5e95..51a08c6362 100755 --- a/build.sh +++ b/build.sh @@ -9,7 +9,7 @@ ##Select the build target -BUILD_TARGET=win32 +BUILD_TARGET=${1:-win32} #BUILD_TARGET=linux #BUILD_TARGET=osx64 @@ -20,7 +20,7 @@ BUILD_NAME=NewUI-Beta4 TARGET_DIR=${BUILD_TARGET}-SkeinPyPy-${BUILD_NAME} ##Which versions of external programs to use -PYPY_VERSION=c-jit-53274-487174b08100 +PYPY_VERSION=c-jit-latest WIN_PORTABLE_PY_VERSION=2.7.2.1 WIN_PYSERIAL_VERSION=2.5 @@ -126,7 +126,7 @@ if [ $BUILD_TARGET = "win32" ]; then mv ${TARGET_DIR}/pypy-${PYPY_VERSION}* ${TARGET_DIR}/pypy else cd ${TARGET_DIR}; $TAR -xjf ../pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2; cd .. - mv ${TARGET_DIR}/pypy-${PYPY_VERSION}* ${TARGET_DIR}/pypy + mv ${TARGET_DIR}/pypy-*-${BUILD_TARGET} ${TARGET_DIR}/pypy fi #Cleanup pypy rm -rf ${TARGET_DIR}/pypy/lib-python/2.7/test diff --git a/scripts/osx64/pronterface.sh b/scripts/osx64/pronterface.sh index 93005942b0..83896aa0c7 100644 --- a/scripts/osx64/pronterface.sh +++ b/scripts/osx64/pronterface.sh @@ -1,8 +1,8 @@ #!/bin/bash -arch -arch i386 python2.7 -c 'import wx' +python2.7 -c 'import wx' if [ $? != 0 ]; then - echo "Requires wx. Download and install from:" + echo "Requires wx. Download and install (the Cocoa/64-bit variant) from:" echo " http://www.wxpython.org/download.php" exit 1 fi @@ -15,5 +15,5 @@ if [ $? != 0 ]; then fi SCRIPT_DIR=`dirname $0` -arch -arch i386 python2.7 ${SCRIPT_DIR}/Printrun/pronterface.py +python2.7 ${SCRIPT_DIR}/Printrun/pronterface.py From 8d78a0224f12fdf77264f4a89989eeacd83b341a Mon Sep 17 00:00:00 2001 From: Bill Bumgarner Date: Sat, 10 Mar 2012 11:25:11 -0800 Subject: [PATCH 2/6] - build.sh now copies just the startup scripts, and not any editor turds. - startup scripts on Mac OS X are marked executable - startup scripts now make sure that PyOpenGL is installed --- build.sh | 6 +++++- scripts/osx64/pronterface.sh | 0 scripts/osx64/skeinpypy.sh | 26 ++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) mode change 100644 => 100755 scripts/osx64/pronterface.sh create mode 100755 scripts/osx64/skeinpypy.sh diff --git a/build.sh b/build.sh index 51a08c6362..d3e1acd465 100755 --- a/build.sh +++ b/build.sh @@ -138,7 +138,11 @@ cp -a SkeinPyPy_NewUI ${TARGET_DIR}/SkeinPyPy mv Printrun ${TARGET_DIR}/Printrun #add script files -cp -a scripts/${BUILD_TARGET}/* $TARGET_DIR/ +if [ $BUILD_TARGET = "win32" ]; then + cp -a scripts/${BUILD_TARGET}/*.bat $TARGET_DIR/ +else + cp -a scripts/${BUILD_TARGET}/*.sh $TARGET_DIR/ +fi #add readme file cp README ${TARGET_DIR}/README.txt diff --git a/scripts/osx64/pronterface.sh b/scripts/osx64/pronterface.sh old mode 100644 new mode 100755 diff --git a/scripts/osx64/skeinpypy.sh b/scripts/osx64/skeinpypy.sh new file mode 100755 index 0000000000..736b301881 --- /dev/null +++ b/scripts/osx64/skeinpypy.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +python2.7 -c 'import OpenGL' +if [ $? != 0 ]; then + echo "Requires PyOpenGL" + echo " sudo easy_install-2.7 PyOpenGL" + exit 1 +fi + +python2.7 -c 'import wx' +if [ $? != 0 ]; then + echo "Requires wx. Download and install (the Cocoa/64-bit variant) from:" + echo " http://www.wxpython.org/download.php" + exit 1 +fi + +python2.7 -c 'import serial' +if [ $? != 0 ]; then + echo "Requires pyserial." + echo " sudo easy_install-2.7 pyserial" + exit 1 +fi + +SCRIPT_DIR=`dirname $0` +python2.7 ${SCRIPT_DIR}/SkeinPyPy/skeinpypy.py + From f5e5278fc4601fac8089dc3f8672f25fa62cec18 Mon Sep 17 00:00:00 2001 From: Bill Bumgarner Date: Sun, 11 Mar 2012 11:23:44 -0700 Subject: [PATCH 3/6] updated readme --- README | 81 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 28 deletions(-) diff --git a/README b/README index 735b4df900..e087e1a904 100644 --- a/README +++ b/README @@ -1,45 +1,70 @@ For documentation check: https://github.com/daid/SkeinPyPy/wiki For downloads check: https://github.com/daid/SkeinPyPy/downloads +This package includes two programs: +Pronterface: + An application for both manually controlling and automatically feeding gcode to a 3D printer. +SkeinPyPy: + A easy to use program for slicing STL files using SkeinForge. SkeinPyPy can also visualize the 3D models in a variety of ways. -(Old README, is outdated!) + On first run, SkeinPyPy will ask to go through a set of calibration steps that will perform a series of operations on your 3D printer. + One of those steps involves extruding a bit of filament where the filament is initially nearly fully extracted. As such, it you will + probably need to run Pronterface first, heat up the extruder enough to be able to extract the filament and then use the Pronterface + interface to reverse the extruder motor until the filament is at the right position (specifically, until the filament end is even with + where the Bowden tube leaves the extuder motor assembly, on an Ultimaker). -SkeinPyPy is a patched version of Skeinforge. Made to make use of PyPy in combination with Skeinforge easier. -It's also packaged with a customized version of PrintRun. To make a compleet software package. +======== +BUILDING +======== -It's best to use this package with the Marlin firmware. See: http://wiki.ultimaker.com/Skeinforge_PyPy + ./build.sh + +The build script defaults to building for Windows. If you want to build for Mac OS X or Linux, choose one of: -====How to use=== -Download the package for your operating system. + ./build.sh osx64 + ./build.sh linux -Windows: - Double click the "skeinforge.bat" for Skeinforge, this can be used to slice your models into GCode. - Double click the "Printrun.bat" for "PrintRun" this is a graphical command&control interface for your printer. This can run the generated GCode. +Note that Mac OS X currently requires the manual installation of wxPython, PySerial, and PyOpenGL: -Linux/MacOSX: (experimental, no packaged python) - First you'll need to have python installed on your system! With pyserial when you want to use PrintRun. You do not need pypy, this is packaged with SkeinPyPy - Then run SkeinPyPy/skeinforge_application/skeinforge.py for skeinforge to slice your model - Or run printrun\\pronterface.py for the PrintRun interface to print your model + sudo easy_install-2.7 pyserial + sudo easy_install-2.7 PyOpenGL -====What is changed==== -* Do not show settings when ran from command line -* Run PyPy to slice a model instead of normal python -* Changing "Perimeter width over thickness (ratio)" into "Perimeter width". - With 5D machines this makes more sense, as you have good control over the width. -* Save settings in .skeinforge_pypy to not mess up normal skeinforge profiles. -* Default settings changed to match Ultimaker with dimension firmware (Marlin or Sprinter) and PLA. -* Modified "Object first layer speed" settings to work on the first 3 layers (configurable) -* Added "Object first layer travel speed" setting, to slow down the travel on the first layers. - Reduces the chance that a travel pulls the first layer lose. +You will need to download the appropriate wxPython Installer package and install it. It is available from: -====Bugs==== -The graphical analize plugins don't work (Skeinlayer and Skeiniso) + http://www.wxpython.org/download.php -====How does it work==== -The user interface still runs in normal python (as PyPy with TK is a bit hard to build, especially for windows), - and when you slice it will run command line PyPy to slice the model. +Specifically, install "wxPython2.9-osx-cocoa-py2.7" as it is the build that supports 64-bit execution. + +======= +RUNNING +======= + +Windows +------- + +Double-click skeinforge.bat and Printrun.bat. + +Mac OS X & Linux +---------------- + +Once built, the two apps -- Pronterface and SkeinPyPy -- must be started from the command line (for now): + + # open a new terminal window and.... + cd osx64-SkeinPyPy-NewUI-Beta4 + ./pronterface.sh & + ./skeinpypy.sh & + +This will start both applications with their console logging output directed into the terminal window. + +======== +FIRMWARE +======== + +For Ultimaker users, it is highly recommended -- nearly required -- that you upgrade your firmware to the latest Marlin builds. See: + + http://wiki.ultimaker.com/Skeinforge_PyPy From c70edc80de66d3135a08dec519e178bad8b56825 Mon Sep 17 00:00:00 2001 From: Bill Bumgarner Date: Sun, 11 Mar 2012 11:26:43 -0700 Subject: [PATCH 4/6] update format --- README | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README b/README index e087e1a904..20f2b209d2 100644 --- a/README +++ b/README @@ -11,11 +11,7 @@ SkeinPyPy: A easy to use program for slicing STL files using SkeinForge. SkeinPyPy can also visualize the 3D models in a variety of ways. - On first run, SkeinPyPy will ask to go through a set of calibration steps that will perform a series of operations on your 3D printer. - One of those steps involves extruding a bit of filament where the filament is initially nearly fully extracted. As such, it you will - probably need to run Pronterface first, heat up the extruder enough to be able to extract the filament and then use the Pronterface - interface to reverse the extruder motor until the filament is at the right position (specifically, until the filament end is even with - where the Bowden tube leaves the extuder motor assembly, on an Ultimaker). + On first run, SkeinPyPy will ask to go through a set of calibration steps that will perform a series of operations on your 3D printer. One of those steps involves extruding a bit of filament where the filament is initially nearly fully extracted. As such, it you will probably need to run Pronterface first, heat up the extruder enough to be able to extract the filament and then use the Pronterface interface to reverse the extruder motor until the filament is at the right position (specifically, until the filament end is even with where the Bowden tube leaves the extuder motor assembly, on an Ultimaker). ======== BUILDING From a055b03422e972b285d65eeaf02cd9a6f3fe8084 Mon Sep 17 00:00:00 2001 From: Lawrence Johnston Date: Sat, 7 Apr 2012 13:28:43 -0700 Subject: [PATCH 5/6] https://github.com/daid/Cura/issues/37 package.sh does not run correctly when current directory is not script directory --- package.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.sh b/package.sh index 2a9038ae32..d059f665f7 100755 --- a/package.sh +++ b/package.sh @@ -40,6 +40,11 @@ function checkTool # Actual build script ############################# +# Change working directory to the directory the script is in +# http://stackoverflow.com/a/246128 +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $SCRIPT_DIR + checkTool git "git: http://git-scm.com/" checkTool curl "curl: http://curl.haxx.se/" if [ $BUILD_TARGET = "win32" ]; then From d3bfafb2bd6d92db4a7116fd17ab6b939b7bed40 Mon Sep 17 00:00:00 2001 From: Lawrence Johnston Date: Sat, 7 Apr 2012 13:34:15 -0700 Subject: [PATCH 6/6] https://github.com/daid/Cura/issues/38 .gitignore does not ignore packages now that NewUI is no longer part of the name --- .gitignore | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 6c1debd6df..417c7e31f1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ *.pyc *.zip *.exe -osx64-Cura-NewUI* -win32-Cura-NewUI* -linux-Cura-NewUI* -Printrun +osx64-Cura-* +win32-Cura-* +linux-Cura-* +Printrun \ No newline at end of file