def calculateSolidLayerCount(setting):
layerHeight = float(getSetting('layer_height'))
solidThickness = float(getSetting('solid_layer_thickness'))
- ret = int(math.ceil(solidThickness / layerHeight))
- print "calculateSolidLayerCount: " + str(ret) + " " + str(solidThickness / layerHeight)
+ ret = int(math.ceil(solidThickness / layerHeight - 0.0001))
return ret
def getSkeinPyPyProfileInformation():
'Perimeter_Flow_Rate_Multiplier_ratio': defaultSetting,
'Travel_Feed_Rate_mm/s': storedSetting("travel_speed"),
},'temperature': {
- 'Activate_Temperature': defaultSetting,
+ 'Activate_Temperature': "False",
'Cooling_Rate_Celcius/second': defaultSetting,
'Heating_Rate_Celcius/second': defaultSetting,
'Base_Temperature_Celcius': defaultSetting,
'Support_Layers_Temperature_Celcius': defaultSetting,
'Supported_Layers_Temperature_Celcius': defaultSetting,
},'raft': {
- 'Activate_Raft': defaultSetting,
+ 'Activate_Raft': "False",
'Add_Raft,_Elevate_Nozzle,_Orbit': defaultSetting,
'Base_Feed_Rate_Multiplier_ratio': defaultSetting,
'Base_Flow_Rate_Multiplier_ratio': defaultSetting,
'Maximum_Tower_Height_layers': defaultSetting,
'Tower_Start_Layer_integer': defaultSetting,
},'jitter': {
- 'Activate_Jitter': defaultSetting,
+ 'Activate_Jitter': "False",
'Jitter_Over_Perimeter_Width_ratio': defaultSetting,
},'clip': {
- 'Activate_Clip': defaultSetting,
+ 'Activate_Clip': "False",
'Clip_Over_Perimeter_Width_ratio': defaultSetting,
'Maximum_Connection_Distance_Over_Perimeter_Width_ratio': defaultSetting,
},'smooth': {
- 'Activate_Smooth': defaultSetting,
+ 'Activate_Smooth': "False",
'Layers_From_index': defaultSetting,
'Maximum_Shortening_over_Width_float': defaultSetting,
},'stretch': {
- 'Activate_Stretch': defaultSetting,
+ 'Activate_Stretch': "False",
'Cross_Limit_Distance_Over_Perimeter_Width_ratio': defaultSetting,
'Loop_Stretch_Over_Perimeter_Width_ratio': defaultSetting,
'Path_Stretch_Over_Perimeter_Width_ratio': defaultSetting,
'Perimeter_Outside_Stretch_Over_Perimeter_Width_ratio': defaultSetting,
'Stretch_From_Distance_Over_Perimeter_Width_ratio': defaultSetting,
},'skin': {
- 'Activate_Skin': defaultSetting,
+ 'Activate_Skin': "False",
'Horizontal_Infill_Divisions_integer': defaultSetting,
'Horizontal_Perimeter_Divisions_integer': defaultSetting,
'Vertical_Divisions_integer': defaultSetting,
'Hop_When_Extruding_Infill': defaultSetting,
'Layers_From_index': defaultSetting,
},'comb': {
- 'Activate_Comb': defaultSetting,
+ 'Activate_Comb': "True",
'Running_Jump_Space_mm': defaultSetting,
},'cool': {
- 'Activate_Cool': defaultSetting,
+ 'Activate_Cool': "True",
'Bridge_Cool_Celcius': defaultSetting,
'Cool_Type': defaultSetting,
'Maximum_Cool_Celcius': defaultSetting,
'X_Backlash_mm': defaultSetting,
'Y_Backlash_mm': defaultSetting,
},'fillet': {
- 'Activate_Fillet': defaultSetting,
+ 'Activate_Fillet': "False",
'Arc_Point': defaultSetting,
'Arc_Radius': defaultSetting,
'Arc_Segment': defaultSetting,
'Reversal_Slowdown_Distance_over_Perimeter_Width_ratio': defaultSetting,
'Use_Intermediate_Feed_Rate_in_Corners': defaultSetting,
},'limit': {
- 'Activate_Limit': defaultSetting,
+ 'Activate_Limit': "False",
'Maximum_Initial_Feed_Rate_mm/s': defaultSetting,
},'unpause': {
- 'Activate_Unpause': defaultSetting,
+ 'Activate_Unpause': "False",
'Delay_milliseconds': defaultSetting,
'Maximum_Speed_ratio': defaultSetting,
},'dimension': {
'Activate_Dimension': "True",
'Absolute_Extrusion_Distance': "True",
'Relative_Extrusion_Distance': "False",
- 'Extruder_Retraction_Speed_mm/s': defaultSetting,
- 'Filament_Diameter_mm': defaultSetting,
- 'Filament_Packing_Density_ratio': defaultSetting,
+ 'Extruder_Retraction_Speed_mm/s': storedSetting('retraction_speed'),
+ 'Filament_Diameter_mm': storedSetting("filament_diameter"),
+ 'Filament_Packing_Density_ratio': storedSetting("filament_density"),
'Maximum_E_Value_before_Reset_float': defaultSetting,
- 'Minimum_Travel_for_Retraction_millimeters': defaultSetting,
+ 'Minimum_Travel_for_Retraction_millimeters': storedSetting("retraction_min_travel"),
'Retract_Within_Island': defaultSetting,
- 'Retraction_Distance_millimeters': defaultSetting,
- 'Restart_Extra_Distance_millimeters': defaultSetting,
+ 'Retraction_Distance_millimeters': storedSetting('retraction_amount'),
+ 'Restart_Extra_Distance_millimeters': storedSetting('retraction_extra'),
},'alteration': {
- 'Activate_Alteration': defaultSetting,
- 'Name_of_End_File': "start.gcode",
- 'Name_of_Start_File': "end.gcode",
+ 'Activate_Alteration': "True",
+ 'Name_of_End_File': "end.gcode",
+ 'Name_of_Start_File': "start.gcode",
'Remove_Redundant_Mcode': "True",
'Replace_Variable_with_Setting': defaultSetting,
},'export': {
from __future__ import absolute_import
import __init__
-import wx, os
+import wx, os, platform
from fabmetheus_utilities import settings
validators.wallThicknessValidator(c)
TitleRow(left, "Fill")
- c = SettingRow(left, "Bottom/Top thickness (mm)", 'solid_layer_thickness', '0.6', 'This controls the thickness of the bottom and top layers, the amount of solid layers put down is calculated by the layer thickness and this value.')
+ c = SettingRow(left, "Bottom/Top thickness (mm)", 'solid_layer_thickness', '0.6', 'This controls the thickness of the bottom and top layers, the amount of solid layers put down is calculated by the layer thickness and this value.\nHaving this value a multiply of the layer thickness makes sense. And keep it near your wall thickness to make an evenly strong part.')
validators.validFloat(c, 0.0)
c = SettingRow(left, "Fill Density (%)", 'fill_density', '20', 'This controls how densily filled the insides of your print will be. For a solid part use 100%, for an empty part use 0%. A value around 20% is usually enough')
validators.validFloat(c, 0.0, 100.0)
TitleRow(left, "Skirt")
- c = SettingRow(left, "Line count", 'skirt_line_count', '1')
+ c = SettingRow(left, "Line count", 'skirt_line_count', '1', 'The skirt is a line drawn around the object at the first layer. This helps to prime your extruder, and to see if the object fits on your platform.\nSetting this to 0 will disable the skirt.')
validators.validInt(c, 0, 10)
- c = SettingRow(left, "Start distance (mm)", 'skirt_gap', '6.0')
+ c = SettingRow(left, "Start distance (mm)", 'skirt_gap', '6.0', 'The distance between the skirt and the first layer.\nThis is the minimal distance, multiple skirt lines will be put outwards from this distance.')
validators.validFloat(c, 0.0)
TitleRow(right, "Cool")
(left, right) = self.CreateConfigTab(nb, 'Machine && Filament')
TitleRow(left, "Machine size")
- c = SettingRow(left, "Machine center X (mm)", 'machine_center_x', '100')
+ c = SettingRow(left, "Machine center X (mm)", 'machine_center_x', '100', 'The center of your machine, your print will be placed at this location')
validators.validInt(c, 10)
- c = SettingRow(left, "Machine center Y (mm)", 'machine_center_y', '100')
+ c = SettingRow(left, "Machine center Y (mm)", 'machine_center_y', '100', 'The center of your machine, your print will be placed at this location')
validators.validInt(c, 10)
#self.AddSetting(left, "Width (mm)", settings.IntSpin().getFromValue(10, "machine_width", None, 1000, 205))
#self.AddSetting(left, "Depth (mm)", settings.IntSpin().getFromValue(10, "machine_depth", None, 1000, 205))
self.popup.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK))
self.popup.text = wx.StaticText(self.popup, -1, '');
self.popup.sizer = wx.BoxSizer()
- self.popup.sizer.Add(self.popup.text, flag=wx.EXPAND)
+ self.popup.sizer.Add(self.popup.text, flag=wx.EXPAND|wx.ALL, border=1)
self.popup.SetSizer(self.popup.sizer)
else:
self.popup.text.SetLabel(setting.helpText)
self.popup.text.Wrap(350)
+ if platform.system() == "Windows":
+ #for some reason, under windows, the popup is relative to the main window...
+ wx, wy = self.ClientToScreenXY(0, 0)
+ x -= wx
+ y -= wy
self.popup.SetPosition((x, y+sy))
self.popup.Fit()
self.popup.Show(True)
self.ctrl.SetBackgroundColour('Yellow')
else:
self.ctrl.SetBackgroundColour(wx.NullColour)
+ self.ctrl.Refresh()
settings.putSetting(self.configName, self.GetValue())
self.validationMsg = '\n'.join(msgs)