Upstream merge

master
Ferdi van der Werf 2012-04-08 22:43:39 +02:00
commit e2f4ce4ef6
10 changed files with 47 additions and 85 deletions

6
.gitignore vendored
View File

@ -3,9 +3,9 @@
*.pyc
*.zip
*.exe
osx64-Cura-NewUI*
win32-Cura-NewUI*
linux-Cura-NewUI*
osx64-Cura-*
win32-Cura-*
linux-Cura-*
Printrun
.idea
.DS_Store

View File

@ -270,12 +270,12 @@ def getProfileInformation():
'Perimeter_Outside_Stretch_Over_Perimeter_Width_ratio': DEFSET,
'Stretch_From_Distance_Over_Perimeter_Width_ratio': DEFSET,
},'skin': {
'Activate_Skin': "False",
'Horizontal_Infill_Divisions_integer': DEFSET,
'Horizontal_Perimeter_Divisions_integer': DEFSET,
'Vertical_Divisions_integer': DEFSET,
'Hop_When_Extruding_Infill': DEFSET,
'Layers_From_index': DEFSET,
'Activate_Skin': storedSetting("enable_skin"),
'Horizontal_Infill_Divisions_integer': "1",
'Horizontal_Perimeter_Divisions_integer': "1",
'Vertical_Divisions_integer': "2",
'Hop_When_Extruding_Infill': "False",
'Layers_From_index': "1",
},'comb': {
'Activate_Comb': "True",
'Running_Jump_Space_mm': DEFSET,

View File

@ -10,10 +10,10 @@ from gui import sliceProgessPanel
from gui import alterationPanel
from gui import validators
class advancedConfigWindow(configBase.configWindowBase):
"Advanced configuration window"
class expertConfigWindow(configBase.configWindowBase):
"Expert configuration window"
def __init__(self):
super(advancedConfigWindow, self).__init__(title='Expert config')
super(expertConfigWindow, self).__init__(title='Expert config')
wx.EVT_CLOSE(self, self.OnClose)

View File

@ -4,7 +4,7 @@ import __init__
import wx, os, platform, types, webbrowser
from gui import configBase
from gui import advancedConfig
from gui import expertConfig
from gui import preview3d
from gui import sliceProgessPanel
from gui import alterationPanel
@ -96,7 +96,7 @@ class mainWindow(configBase.configWindowBase):
configBase.TitleRow(left, "Accuracy")
c = configBase.SettingRow(left, "Layer height (mm)", 'layer_height', '0.2', 'Layer height in millimeters.\n0.2 is a good value for quick prints.\n0.1 gives high quality prints.')
validators.validFloat(c, 0.0)
validators.warningAbove(c, lambda : (float(profile.getProfileSetting('nozzle_size')) * 80 / 100), "Thicker layers then %.2fmm (80%% nozzle size) usually give bad results and are not recommended.")
validators.warningAbove(c, lambda : (float(profile.getProfileSetting('nozzle_size')) * 80.0 / 100.0), "Thicker layers then %.2fmm (80%% nozzle size) usually give bad results and are not recommended.")
c = configBase.SettingRow(left, "Wall thickness (mm)", 'wall_thickness', '0.8', 'Thickness of the walls.\nThis is used in combination with the nozzle size to define the number\nof perimeter lines and the thickness of those perimeter lines.')
validators.validFloat(c, 0.0)
validators.wallThicknessValidator(c)
@ -126,7 +126,7 @@ class mainWindow(configBase.configWindowBase):
configBase.TitleRow(right, "Support")
c = configBase.SettingRow(right, "Support type", 'support', ['None', 'Exterior Only', 'Everywhere', 'Empty Layers Only'], 'Type of support structure build.\nNone does not do any support.\nExterior only only creates support on the outside.\nEverywhere creates support even on the insides of the model.\nOnly on empty layers is for stacked objects.')
c = configBase.SettingRow(right, "Add raft", 'enable_raft', False, 'A raft is a few layers of lines below the bottom of the object. It prevents warping. Full raft settings can be found in the advanced settings.\nFor PLA this is usually not required. But if you print with ABS it is almost required.')
c = configBase.SettingRow(right, "Add raft", 'enable_raft', False, 'A raft is a few layers of lines below the bottom of the object. It prevents warping. Full raft settings can be found in the expert settings.\nFor PLA this is usually not required. But if you print with ABS it is almost required.')
configBase.TitleRow(right, "Filament")
c = configBase.SettingRow(right, "Diameter (mm)", 'filament_diameter', '2.89', 'Diameter of your filament, as accurately as possible.\nIf you cannot measure this value you will have to callibrate it, a higher number means less extrusion, a smaller number generates more extrusion.')
@ -174,6 +174,8 @@ class mainWindow(configBase.configWindowBase):
configBase.TitleRow(right, "Accuracy")
c = configBase.SettingRow(right, "Initial layer thickness (mm)", 'bottom_thickness', '0.0', 'Layer thickness of the bottom layer. A thicker bottom layer makes sticking to the bed easier. Set to 0.0 to have the bottom layer thickness the same as the other layers.')
validators.validFloat(c, 0.0)
validators.warningAbove(c, lambda : (float(profile.getProfileSetting('nozzle_size')) * 3.0 / 4.0), "A bottom layer of more then %.2fmm (3/4 nozzle size) usually give bad results and is not recommended.")
c = configBase.SettingRow(right, "Enable 'skin'", 'enable_skin', False, 'Skin prints the outer lines of the prints twice, each time with half the thickness. This gives the illusion of a higher print quality.')
nb.AddPage(alterationPanel.alterationPanel(nb), "Start/End-GCode")
@ -291,9 +293,9 @@ class mainWindow(configBase.configWindowBase):
printWindow.printFile(self.filename[: self.filename.rfind('.')] + "_export.gcode")
def OnExpertOpen(self, e):
acw = advancedConfig.advancedConfigWindow()
acw.Centre()
acw.Show(True)
ecw = expertConfig.expertConfigWindow()
ecw.Centre()
ecw.Show(True)
def removeSliceProgress(self, spp):
self.progressPanelList.remove(spp)

View File

@ -28,6 +28,7 @@ class sliceProgessPanel(wx.Panel):
'speed': 12.759510994,
'raft': 31.4580039978,
'skirt': 19.3436040878,
'skin': 1.0,
'joris': 1.0,
'comb': 23.7805759907,
'cool': 27.148763895,

View File

@ -105,7 +105,7 @@ class gcode():
else:
pos.z += z * scale
#Check if we have a new layer.
if oldPos.z != pos.z and startCodeDone:
if oldPos.z < pos.z and startCodeDone and len(currentLayer) > 0:
self.layerList.append(currentLayer)
currentLayer = []
if f is not None:

View File

@ -42,6 +42,8 @@ profileDefaultSettings = {
'flip_x': 'False',
'flip_y': 'False',
'flip_z': 'False',
'swap_xz': 'False',
'swap_yz': 'False',
'model_rotate_base': '0',
'model_multiply_x': '1',
'model_multiply_y': '1',
@ -54,6 +56,7 @@ profileDefaultSettings = {
'support_rate': '50',
'support_distance': '0.5',
'joris': 'False',
'enable_skin': 'False',
'enable_raft': 'False',
'cool_min_feedrate': '5',
'bridge_speed': '100',

66
README
View File

@ -1,66 +0,0 @@
For documentation check: https://github.com/daid/Cura/wiki
For downloads check: https://github.com/daid/Cura/downloads
This package includes two programs:
Pronterface:
An application for both manually controlling and automatically feeding gcode to a 3D printer.
Cura:
A easy to use program for slicing STL files using SkeinForge. Cura can also visualize the 3D models in a variety of ways.
On first run, Cura 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
========
./package.sh
The build script defaults to building for Windows. If you want to build for Mac OS X or Linux, choose one of:
./package.sh osx64
./package.sh linux
Note that Mac OS X currently requires the manual installation of wxPython, PySerial, and PyOpenGL:
sudo easy_install-2.7 pyserial
sudo easy_install-2.7 PyOpenGL
You will need to download the appropriate wxPython Installer package and install it. It is available from:
http://www.wxpython.org/download.php
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 Cura -- must be started from the command line (for now):
# open a new terminal window and....
cd osx64-Cura-NewUI-Beta4
./pronterface.sh &
./Cura.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

17
README.md Normal file
View File

@ -0,0 +1,17 @@
Cura
====
If you are reading this, then you are looking at the *development* version of Cura. If you just want to use Cura look at the following location: https://github.com/daid/Cura/wiki
Development
===========
Cura is developed in Python. Getting Cura up and running for development is not very difficult. If you copy the python and pypy from a release into your Cura development checkout then you can use Cura right away, just like you would with a release.
For development with git, check the help on github. Pull requests is the fastest way to get changes into Cura.
Packaging
---------
Cura development comes with a script "package.sh", this script has been designed to run under unix like OSes (Linux, MacOS). Running it from sygwin is not a priority.
The "package.sh" script generates a final release package. You should not need it during development, unless you are changing the release process. If you want to distribute your own version of Cura, then the package.sh script will allow you to do that.

View File

@ -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