self.AddSeperator()
self.AddText(_("You will have to manually install Marlin or Sprinter firmware."))
self.AddSeperator()
+ self.machineName = self.AddLabelTextCtrl(_("Machine name"), "RepRap")
self.machineWidth = self.AddLabelTextCtrl(_("Machine width (mm)"), "80")
self.machineDepth = self.AddLabelTextCtrl(_("Machine depth (mm)"), "80")
self.machineHeight = self.AddLabelTextCtrl(_("Machine height (mm)"), "60")
self.HomeAtCenter = self.AddCheckbox(_("Bed center is 0,0,0 (RoStock)"))
def StoreData(self):
- profile.putPreference('machine_width', self.machineWidth.GetValue())
- profile.putPreference('machine_depth', self.machineDepth.GetValue())
- profile.putPreference('machine_height', self.machineHeight.GetValue())
+ profile.putMachineSetting('machine_name', self.machineName.GetValue())
+ profile.putMachineSetting('machine_width', self.machineWidth.GetValue())
+ profile.putMachineSetting('machine_depth', self.machineDepth.GetValue())
+ profile.putMachineSetting('machine_height', self.machineHeight.GetValue())
profile.putProfileSetting('nozzle_size', self.nozzleSize.GetValue())
profile.putProfileSetting('wall_thickness', float(profile.getProfileSettingFloat('nozzle_size')) * 2)
- profile.putPreference('has_heated_bed', str(self.heatedBed.GetValue()))
- profile.putPreference('machine_center_is_zero', str(self.HomeAtCenter.GetValue()))
- profile.putPreference('extruder_head_size_min_x', '0')
- profile.putPreference('extruder_head_size_min_y', '0')
- profile.putPreference('extruder_head_size_max_x', '0')
- profile.putPreference('extruder_head_size_max_y', '0')
- profile.putPreference('extruder_head_size_height', '0')
-
+ profile.putMachineSetting('has_heated_bed', str(self.heatedBed.GetValue()))
+ profile.putMachineSetting('machine_center_is_zero', str(self.HomeAtCenter.GetValue()))
+ profile.putMachineSetting('extruder_head_size_min_x', '0')
+ profile.putMachineSetting('extruder_head_size_min_y', '0')
+ profile.putMachineSetting('extruder_head_size_max_x', '0')
+ profile.putMachineSetting('extruder_head_size_max_y', '0')
+ profile.putMachineSetting('extruder_head_size_height', '0')
+ profile.checkAndUpdateMachineName()
class MachineSelectPage(InfoPage):
def __init__(self, parent):
self.Bind(wx.EVT_MENU, self.onCopyProfileClipboard,i)
self.menubar.Append(toolsMenu, _("Tools"))
+ #Machine menu for machine configuration/tooling
+ self.machineMenu = wx.Menu()
+ self.updateMachineMenu()
+
+ self.menubar.Append(self.machineMenu, _("Machine"))
+
expertMenu = wx.Menu()
i = expertMenu.Append(-1, _("Open expert settings..."))
self.normalModeOnlyItems.append(i)
self.Bind(wx.EVT_MENU, self.OnExpertOpen, i)
expertMenu.AppendSeparator()
- if firmwareInstall.getDefaultFirmware() is not None:
- i = expertMenu.Append(-1, _("Install default Marlin firmware"))
- self.Bind(wx.EVT_MENU, self.OnDefaultMarlinFirmware, i)
- i = expertMenu.Append(-1, _("Install custom firmware"))
- self.Bind(wx.EVT_MENU, self.OnCustomFirmware, i)
- expertMenu.AppendSeparator()
i = expertMenu.Append(-1, _("Run first run wizard..."))
self.Bind(wx.EVT_MENU, self.OnFirstRunWizard, i)
i = expertMenu.Append(-1, _("Run bed leveling wizard..."))
i = expertMenu.Append(-1, _("Run head offset wizard..."))
self.Bind(wx.EVT_MENU, self.OnHeadOffsetWizard, i)
- i = expertMenu.Append(-1, _("Add new machine..."))
- self.Bind(wx.EVT_MENU, self.OnAddNewMachine, i)
-
self.menubar.Append(expertMenu, _("Expert"))
helpMenu = wx.Menu()
self.updateSliceMode()
self.updateProfileToAllControls()
+ def updateMachineMenu(self):
+ #Remove all items so we can rebuild the menu. Inserting items seems to cause crashes, so this is the safest way.
+ for item in self.machineMenu.GetMenuItems():
+ self.machineMenu.RemoveItem(item)
+
+ #Add a menu item for each machine configuration.
+ for n in xrange(0, profile.getMachineCount()):
+ i = self.machineMenu.Append(n, profile.getMachineSetting('machine_name', n), kind=wx.ITEM_RADIO)
+ if n == int(profile.getPreferenceFloat('active_machine')):
+ i.Check(True)
+ self.Bind(wx.EVT_MENU, lambda e: self.OnSelectMachine(e.GetId()), i)
+
+ #Add tools for machines.
+ self.machineMenu.AppendSeparator()
+ i = self.machineMenu.Append(-1, _("Install custom firmware"))
+ self.Bind(wx.EVT_MENU, self.OnCustomFirmware, i)
+
+ i = self.machineMenu.Append(-1, _("Install default Marlin firmware"))
+ self.Bind(wx.EVT_MENU, self.OnDefaultMarlinFirmware, i)
+
+ self.machineMenu.AppendSeparator()
+ i = self.machineMenu.Append(-1, _("Add new machine..."))
+ self.Bind(wx.EVT_MENU, self.OnAddNewMachine, i)
+
def OnLoadProfile(self, e):
dlg=wx.FileDialog(self, _("Select profile file to load"), os.path.split(profile.getPreference('lastFile'))[0], style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST)
dlg.SetWildcard("ini files (*.ini)|*.ini")
configWizard.configWizard(True)
self.Show()
self.reloadSettingPanels()
+ self.updateMachineMenu()
+
+ def OnSelectMachine(self, index):
+ profile.setActiveMachine(index)
+ self.reloadSettingPanels()
def OnBedLevelWizard(self, e):
configWizard.bedLevelWizard()