From: daid Date: Tue, 20 Mar 2012 15:09:25 +0000 (+0100) Subject: Moved "nozzle size" to preferences, as it is not something that really belongs are... X-Git-Tag: RC1~46 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=c71bc3e9e0a4d72def9ad9319000de3427e5dd10;p=cura.git Moved "nozzle size" to preferences, as it is not something that really belongs are you current setting, but is a configuration option for your machine, and never really changes unless you switch machine. --- diff --git a/SkeinPyPy/fabmetheus_utilities/settings.py b/SkeinPyPy/fabmetheus_utilities/settings.py index 7678b599..ce6f48be 100644 --- a/SkeinPyPy/fabmetheus_utilities/settings.py +++ b/SkeinPyPy/fabmetheus_utilities/settings.py @@ -18,6 +18,8 @@ def DEFSET(setting): def storedSetting(name): return lambda setting: profile.getProfileSetting(name) +def storedPreference(name): + return lambda setting: profile.getPreference(name) def ifSettingAboveZero(name): return lambda setting: float(profile.getProfileSetting(name)) > 0 @@ -35,7 +37,7 @@ def storedPercentSetting(name): def calculateEdgeWidth(setting): wallThickness = float(profile.getProfileSetting('wall_thickness')) - nozzleSize = float(profile.getProfileSetting('nozzle_size')) + nozzleSize = float(profile.getPreference('nozzle_size')) if wallThickness < nozzleSize: return wallThickness @@ -54,7 +56,7 @@ def calculateShellsBase(setting): return calculateShellsImp(float(profile.getProfileSetting('wall_thickness')) + float(profile.getProfileSetting('extra_base_wall_thickness'))) def calculateShellsImp(wallThickness): - nozzleSize = float(profile.getProfileSetting('nozzle_size')) + nozzleSize = float(profile.getPreference('nozzle_size')) if wallThickness < nozzleSize: return 0 @@ -150,7 +152,7 @@ def getSkeinPyPyProfileInformation(): 'Line': ifSettingIs('infill_type', 'Line'), 'Infill_Perimeter_Overlap_ratio': storedPercentSetting('fill_overlap'), 'Infill_Solidity_ratio': storedPercentSetting('fill_density'), - 'Infill_Width': storedSetting("nozzle_size"), + 'Infill_Width': storedPreference("nozzle_size"), 'Solid_Surface_Thickness_layers': calculateSolidLayerCount, 'Start_From_Choice': DEFSET, 'Surrounding_Angle_degrees': DEFSET, diff --git a/SkeinPyPy/newui/configWizard.py b/SkeinPyPy/newui/configWizard.py index 1b6f2f60..70701586 100644 --- a/SkeinPyPy/newui/configWizard.py +++ b/SkeinPyPy/newui/configWizard.py @@ -97,17 +97,17 @@ class MachineSelectPage(InfoPage): profile.putPreference('machine_width', '205') profile.putPreference('machine_depth', '205') profile.putPreference('machine_height', '200') - profile.putProfileSetting('nozzle_size', '0.4') + profile.putPreference('nozzle_size', '0.4') profile.putProfileSetting('machine_center_x', '100') profile.putProfileSetting('machine_center_y', '100') else: profile.putPreference('machine_width', '80') profile.putPreference('machine_depth', '80') profile.putPreference('machine_height', '60') - profile.putProfileSetting('nozzle_size', '0.5') + profile.putPreference('nozzle_size', '0.5') profile.putProfileSetting('machine_center_x', '40') profile.putProfileSetting('machine_center_y', '40') - profile.putProfileSetting('wall_thickness', float(profile.getProfileSetting('nozzle_size')) * 2) + profile.putProfileSetting('wall_thickness', float(profile.getPreference('nozzle_size')) * 2) class FirmwareUpgradePage(InfoPage): def __init__(self, parent): diff --git a/SkeinPyPy/newui/mainWindow.py b/SkeinPyPy/newui/mainWindow.py index 65ca69ba..fc7e4c88 100644 --- a/SkeinPyPy/newui/mainWindow.py +++ b/SkeinPyPy/newui/mainWindow.py @@ -84,7 +84,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.getPreference('nozzle_size')) * 80 / 100), "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) @@ -133,10 +133,6 @@ class mainWindow(configBase.configWindowBase): validators.validInt(c, 10) configBase.settingNotify(c, self.preview3d.updateCenterY) - configBase.TitleRow(left, "Machine nozzle") - c = configBase.SettingRow(left, "Nozzle size (mm)", 'nozzle_size', '0.4', 'The nozzle size is very important, this is used to calculate the line width of the infill, and used to calculate the amount of outside wall lines and thickness for the wall thickness you entered in the print settings.') - validators.validFloat(c, 0.1, 1.0) - configBase.TitleRow(left, "Retraction") c = configBase.SettingRow(left, "Minimal travel (mm)", 'retraction_min_travel', '5.0', 'Minimal amount of travel needed for a retraction to happen at all. To make sure you do not get a lot of retractions in a small area') validators.validFloat(c, 0.0) diff --git a/SkeinPyPy/newui/preferencesDialog.py b/SkeinPyPy/newui/preferencesDialog.py index 11369d31..539a69a7 100644 --- a/SkeinPyPy/newui/preferencesDialog.py +++ b/SkeinPyPy/newui/preferencesDialog.py @@ -16,13 +16,15 @@ class preferencesDialog(configBase.configWindowBase): left, right, main = self.CreateConfigPanel(self) configBase.TitleRow(left, 'Machine settings') + c = configBase.SettingRow(left, "Nozzle size (mm)", 'nozzle_size', '0.4', 'The nozzle size is very important, this is used to calculate the line width of the infill, and used to calculate the amount of outside wall lines and thickness for the wall thickness you entered in the print settings.', type = 'preference') + validators.validFloat(c, 0.1, 1.0) c = configBase.SettingRow(left, 'Steps per E', 'steps_per_e', '0', 'Amount of steps per mm filament extrusion', type = 'preference') validators.validFloat(c, 0.1) - c = configBase.SettingRow(left, 'Machine width', 'machine_width', '205', 'Size of the machine in mm', type = 'preference') + c = configBase.SettingRow(left, 'Machine width (mm)', 'machine_width', '205', 'Size of the machine in mm', type = 'preference') validators.validFloat(c, 10.0) - c = configBase.SettingRow(left, 'Machine depth', 'machine_depth', '205', 'Size of the machine in mm', type = 'preference') + c = configBase.SettingRow(left, 'Machine depth (mm)', 'machine_depth', '205', 'Size of the machine in mm', type = 'preference') validators.validFloat(c, 10.0) - c = configBase.SettingRow(left, 'Machine height', 'machine_height', '200', 'Size of the machine in mm', type = 'preference') + c = configBase.SettingRow(left, 'Machine height (mm)', 'machine_height', '200', 'Size of the machine in mm', type = 'preference') validators.validFloat(c, 10.0) configBase.TitleRow(left, 'Communication settings') diff --git a/SkeinPyPy/newui/preview3d.py b/SkeinPyPy/newui/preview3d.py index 040579a7..483af4dd 100644 --- a/SkeinPyPy/newui/preview3d.py +++ b/SkeinPyPy/newui/preview3d.py @@ -331,7 +331,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas): layerThickness = 0.0 filamentRadius = float(profile.getProfileSetting('filament_diameter')) / 2 filamentArea = math.pi * filamentRadius * filamentRadius - lineWidth = float(profile.getProfileSetting('nozzle_size')) / 2 + lineWidth = float(profile.getPreference('nozzle_size')) / 2 curLayerNum = 0 for path in self.parent.gcode.pathList: diff --git a/SkeinPyPy/newui/profile.py b/SkeinPyPy/newui/profile.py index ec415b76..3c1ec2ac 100644 --- a/SkeinPyPy/newui/profile.py +++ b/SkeinPyPy/newui/profile.py @@ -21,7 +21,6 @@ profileDefaultSettings = { 'filament_density': '1.00', 'machine_center_x': '100', 'machine_center_y': '100', - 'nozzle_size': '0.4', 'retraction_min_travel': '5.0', 'retraction_speed': '13.5', 'retraction_amount': '0.0', @@ -60,6 +59,7 @@ preferencesDefaultSettings = { 'machine_width': '205', 'machine_depth': '205', 'machine_height': '200', + 'nozzle_size': '0.4', 'steps_per_e': '0', 'serial_port': 'AUTO', 'serial_baud': '250000', diff --git a/SkeinPyPy/newui/validators.py b/SkeinPyPy/newui/validators.py index 6352debd..79a3d318 100644 --- a/SkeinPyPy/newui/validators.py +++ b/SkeinPyPy/newui/validators.py @@ -75,7 +75,7 @@ class wallThicknessValidator(): def validate(self): try: wallThickness = float(self.setting.GetValue()) - nozzleSize = float(profile.getProfileSetting('nozzle_size')) + nozzleSize = float(profile.getPreference('nozzle_size')) if wallThickness <= nozzleSize * 0.5: return ERROR, 'Trying to print walls thinner then the half of your nozzle size, this will not produce anything usable' if wallThickness <= nozzleSize * 0.85: @@ -100,7 +100,7 @@ class printSpeedValidator(): def validate(self): try: - nozzleSize = float(profile.getProfileSetting('nozzle_size')) + nozzleSize = float(profile.getPreference('nozzle_size')) layerHeight = float(profile.getProfileSetting('layer_height')) printSpeed = float(profile.getProfileSetting('print_speed'))