chiark / gitweb /
Fixed some windows UI bugs
authorDaid <daid303@gmail.com>
Fri, 24 Feb 2012 21:37:53 +0000 (22:37 +0100)
committerDaid <daid303@gmail.com>
Fri, 24 Feb 2012 21:37:53 +0000 (22:37 +0100)
Set some defaults for settings
Fixed start/end swap (oops)
Fixed rounding error (again)

SkeinPyPy_NewUI/fabmetheus_utilities/settings.py
SkeinPyPy_NewUI/newui/alterationPanel.py
SkeinPyPy_NewUI/newui/mainWindow.py

index ccae2dca793d4f4791141dbfe0156dc87d6678cc..75dfcb7852b5afff49b926bda5590088ca191e83 100644 (file)
@@ -53,8 +53,7 @@ def calculateShells(setting):
 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():
@@ -152,7 +151,7 @@ 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,
@@ -163,7 +162,7 @@ def getSkeinPyPyProfileInformation():
                        '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,
@@ -208,18 +207,18 @@ def getSkeinPyPyProfileInformation():
                        '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,
@@ -227,17 +226,17 @@ def getSkeinPyPyProfileInformation():
                        '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,
@@ -296,7 +295,7 @@ def getSkeinPyPyProfileInformation():
                        'X_Backlash_mm': defaultSetting,
                        'Y_Backlash_mm': defaultSetting,
                },'fillet': {
-                       'Activate_Fillet': defaultSetting,
+                       'Activate_Fillet': "False",
                        'Arc_Point': defaultSetting,
                        'Arc_Radius': defaultSetting,
                        'Arc_Segment': defaultSetting,
@@ -306,28 +305,28 @@ def getSkeinPyPyProfileInformation():
                        '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': {
index d2dfcaf59ba4fe40cb55cd92af2d1dc510adca88..509e516365e0d13f8e39b353b08ee4e4478944ac 100644 (file)
@@ -34,6 +34,6 @@ class alterationPanel(wx.Panel):
 \r
        def OnFocusLost(self, e):\r
                filename = os.path.join(archive.getSkeinforgePath('alterations'), self.alterationFileList[self.list.GetSelection()])\r
-               f = open(filename, "w")\r
+               f = open(filename, "wb")\r
                f.write(self.textArea.GetValue())\r
                f.close()\r
index bee825893789d02ad679f47a6e4e2a1aee0916bd..7953f9c69728e2395da75faa5c8be4db92a1901f 100644 (file)
@@ -1,7 +1,7 @@
 from __future__ import absolute_import
 import __init__
 
-import wx, os
+import wx, os, platform
 
 from fabmetheus_utilities import settings
 
@@ -54,15 +54,15 @@ class mainWindow(wx.Frame):
                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")
@@ -73,9 +73,9 @@ class mainWindow(wx.Frame):
                (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))
@@ -139,7 +139,7 @@ class mainWindow(wx.Frame):
                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)
 
 
@@ -174,6 +174,11 @@ class mainWindow(wx.Frame):
                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)
@@ -317,6 +322,7 @@ class SettingRow():
                        self.ctrl.SetBackgroundColour('Yellow')
                else:
                        self.ctrl.SetBackgroundColour(wx.NullColour)
+               self.ctrl.Refresh()
                settings.putSetting(self.configName, self.GetValue())
                self.validationMsg = '\n'.join(msgs)