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.

This commit is contained in:
daid 2012-03-20 16:09:25 +01:00
parent d60d30a1d2
commit c71bc3e9e0
7 changed files with 18 additions and 18 deletions

View file

@ -18,6 +18,8 @@ def DEFSET(setting):
def storedSetting(name): def storedSetting(name):
return lambda setting: profile.getProfileSetting(name) return lambda setting: profile.getProfileSetting(name)
def storedPreference(name):
return lambda setting: profile.getPreference(name)
def ifSettingAboveZero(name): def ifSettingAboveZero(name):
return lambda setting: float(profile.getProfileSetting(name)) > 0 return lambda setting: float(profile.getProfileSetting(name)) > 0
@ -35,7 +37,7 @@ def storedPercentSetting(name):
def calculateEdgeWidth(setting): def calculateEdgeWidth(setting):
wallThickness = float(profile.getProfileSetting('wall_thickness')) wallThickness = float(profile.getProfileSetting('wall_thickness'))
nozzleSize = float(profile.getProfileSetting('nozzle_size')) nozzleSize = float(profile.getPreference('nozzle_size'))
if wallThickness < nozzleSize: if wallThickness < nozzleSize:
return wallThickness return wallThickness
@ -54,7 +56,7 @@ def calculateShellsBase(setting):
return calculateShellsImp(float(profile.getProfileSetting('wall_thickness')) + float(profile.getProfileSetting('extra_base_wall_thickness'))) return calculateShellsImp(float(profile.getProfileSetting('wall_thickness')) + float(profile.getProfileSetting('extra_base_wall_thickness')))
def calculateShellsImp(wallThickness): def calculateShellsImp(wallThickness):
nozzleSize = float(profile.getProfileSetting('nozzle_size')) nozzleSize = float(profile.getPreference('nozzle_size'))
if wallThickness < nozzleSize: if wallThickness < nozzleSize:
return 0 return 0
@ -150,7 +152,7 @@ def getSkeinPyPyProfileInformation():
'Line': ifSettingIs('infill_type', 'Line'), 'Line': ifSettingIs('infill_type', 'Line'),
'Infill_Perimeter_Overlap_ratio': storedPercentSetting('fill_overlap'), 'Infill_Perimeter_Overlap_ratio': storedPercentSetting('fill_overlap'),
'Infill_Solidity_ratio': storedPercentSetting('fill_density'), 'Infill_Solidity_ratio': storedPercentSetting('fill_density'),
'Infill_Width': storedSetting("nozzle_size"), 'Infill_Width': storedPreference("nozzle_size"),
'Solid_Surface_Thickness_layers': calculateSolidLayerCount, 'Solid_Surface_Thickness_layers': calculateSolidLayerCount,
'Start_From_Choice': DEFSET, 'Start_From_Choice': DEFSET,
'Surrounding_Angle_degrees': DEFSET, 'Surrounding_Angle_degrees': DEFSET,

View file

@ -97,17 +97,17 @@ class MachineSelectPage(InfoPage):
profile.putPreference('machine_width', '205') profile.putPreference('machine_width', '205')
profile.putPreference('machine_depth', '205') profile.putPreference('machine_depth', '205')
profile.putPreference('machine_height', '200') 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_x', '100')
profile.putProfileSetting('machine_center_y', '100') profile.putProfileSetting('machine_center_y', '100')
else: else:
profile.putPreference('machine_width', '80') profile.putPreference('machine_width', '80')
profile.putPreference('machine_depth', '80') profile.putPreference('machine_depth', '80')
profile.putPreference('machine_height', '60') 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_x', '40')
profile.putProfileSetting('machine_center_y', '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): class FirmwareUpgradePage(InfoPage):
def __init__(self, parent): def __init__(self, parent):

View file

@ -84,7 +84,7 @@ class mainWindow(configBase.configWindowBase):
configBase.TitleRow(left, "Accuracy") 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.') 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.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.') 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.validFloat(c, 0.0)
validators.wallThicknessValidator(c) validators.wallThicknessValidator(c)
@ -133,10 +133,6 @@ class mainWindow(configBase.configWindowBase):
validators.validInt(c, 10) validators.validInt(c, 10)
configBase.settingNotify(c, self.preview3d.updateCenterY) 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") 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') 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) validators.validFloat(c, 0.0)

View file

@ -16,13 +16,15 @@ class preferencesDialog(configBase.configWindowBase):
left, right, main = self.CreateConfigPanel(self) left, right, main = self.CreateConfigPanel(self)
configBase.TitleRow(left, 'Machine settings') 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') 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) 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) 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) 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) validators.validFloat(c, 10.0)
configBase.TitleRow(left, 'Communication settings') configBase.TitleRow(left, 'Communication settings')

View file

@ -331,7 +331,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
layerThickness = 0.0 layerThickness = 0.0
filamentRadius = float(profile.getProfileSetting('filament_diameter')) / 2 filamentRadius = float(profile.getProfileSetting('filament_diameter')) / 2
filamentArea = math.pi * filamentRadius * filamentRadius filamentArea = math.pi * filamentRadius * filamentRadius
lineWidth = float(profile.getProfileSetting('nozzle_size')) / 2 lineWidth = float(profile.getPreference('nozzle_size')) / 2
curLayerNum = 0 curLayerNum = 0
for path in self.parent.gcode.pathList: for path in self.parent.gcode.pathList:

View file

@ -21,7 +21,6 @@ profileDefaultSettings = {
'filament_density': '1.00', 'filament_density': '1.00',
'machine_center_x': '100', 'machine_center_x': '100',
'machine_center_y': '100', 'machine_center_y': '100',
'nozzle_size': '0.4',
'retraction_min_travel': '5.0', 'retraction_min_travel': '5.0',
'retraction_speed': '13.5', 'retraction_speed': '13.5',
'retraction_amount': '0.0', 'retraction_amount': '0.0',
@ -60,6 +59,7 @@ preferencesDefaultSettings = {
'machine_width': '205', 'machine_width': '205',
'machine_depth': '205', 'machine_depth': '205',
'machine_height': '200', 'machine_height': '200',
'nozzle_size': '0.4',
'steps_per_e': '0', 'steps_per_e': '0',
'serial_port': 'AUTO', 'serial_port': 'AUTO',
'serial_baud': '250000', 'serial_baud': '250000',

View file

@ -75,7 +75,7 @@ class wallThicknessValidator():
def validate(self): def validate(self):
try: try:
wallThickness = float(self.setting.GetValue()) wallThickness = float(self.setting.GetValue())
nozzleSize = float(profile.getProfileSetting('nozzle_size')) nozzleSize = float(profile.getPreference('nozzle_size'))
if wallThickness <= nozzleSize * 0.5: 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' 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: if wallThickness <= nozzleSize * 0.85:
@ -100,7 +100,7 @@ class printSpeedValidator():
def validate(self): def validate(self):
try: try:
nozzleSize = float(profile.getProfileSetting('nozzle_size')) nozzleSize = float(profile.getPreference('nozzle_size'))
layerHeight = float(profile.getProfileSetting('layer_height')) layerHeight = float(profile.getProfileSetting('layer_height'))
printSpeed = float(profile.getProfileSetting('print_speed')) printSpeed = float(profile.getProfileSetting('print_speed'))