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.

master
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):
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,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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