Beispiel #1
0
	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 + 0x1000, profile.getMachineName(n).title(), 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() - 0x1000), i)

		self.machineMenu.AppendSeparator()
		i = self.machineMenu.Append(-1, _("Add new machine..."))
		self.Bind(wx.EVT_MENU, self.OnAddNewMachine, i)
		i = self.machineMenu.Append(-1, _("Machine settings..."))
		self.Bind(wx.EVT_MENU, self.OnMachineSettings, i)

		#Add tools for machines.
		self.machineMenu.AppendSeparator()

		self.defaultFirmwareInstallMenuItem = self.machineMenu.Append(-1, _("Install default firmware..."))
		self.Bind(wx.EVT_MENU, self.OnDefaultMarlinFirmware, self.defaultFirmwareInstallMenuItem)

		i = self.machineMenu.Append(-1, _("Install custom firmware..."))
		self.Bind(wx.EVT_MENU, self.OnCustomFirmware, i)
Beispiel #2
0
	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()):
			machine_name = profile.getMachineName(n)
			machine_title = machine_name.title()
			machine_title = machine_title.replace('Taz', 'TAZ')
			machine_title = machine_title.replace('Lulzbot', 'LulzBot')
			machine_title = machine_title.replace('Moarstruder', 'MOARstruder')
			i = self.machineMenu.Append(n + 0x1000, machine_title, 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() - 0x1000), i)

		self.machineMenu.AppendSeparator()
		i = self.machineMenu.Append(-1, _("Add new machine..."))
		self.Bind(wx.EVT_MENU, self.OnAddNewMachine, i)
		i = self.machineMenu.Append(-1, _("Machine settings..."))
		self.Bind(wx.EVT_MENU, self.OnMachineSettings, i)

		#Add tools for machines.
		self.machineMenu.AppendSeparator()

		self.defaultFirmwareInstallMenuItem = self.machineMenu.Append(-1, _("Install default firmware..."))
		self.Bind(wx.EVT_MENU, self.OnDefaultMarlinFirmware, self.defaultFirmwareInstallMenuItem)

		i = self.machineMenu.Append(-1, _("Install custom firmware..."))
		self.Bind(wx.EVT_MENU, self.OnCustomFirmware, i)
Beispiel #3
0
    def __init__(self,
                 parent=None,
                 filename=None,
                 port=None,
                 machineIndex=None):
        super(InstallFirmwareDialog,
              self).__init__(parent=parent,
                             title=_("Firmware install for %s") %
                             (profile.getMachineName(machineIndex)),
                             size=(250, 100))
        if port is None:
            port = profile.getMachineSetting('serial_port')
        if filename is None:
            filename = getDefaultFirmware(machineIndex)
        self._machineIndex = machineIndex
        self._machine_type = profile.getMachineSetting('machine_type',
                                                       machineIndex)
        if self._machine_type == 'reprap':
            wx.MessageBox(
                _("Cura only supports firmware updates for ATMega2560 based hardware.\nSo updating your RepRap with Cura might or might not work."
                  ), _("Firmware update"), wx.OK | wx.ICON_INFORMATION)

        sizer = wx.BoxSizer(wx.VERTICAL)

        self.progressLabel = wx.StaticText(
            self, -1,
            'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nX\nX')
        sizer.Add(self.progressLabel,
                  0,
                  flag=wx.ALIGN_CENTER | wx.ALL,
                  border=5)
        self.progressGauge = wx.Gauge(self, -1)
        sizer.Add(self.progressGauge, 0, flag=wx.EXPAND)
        self.buttonPanel = wx.Panel(self)

        self.buttonPanel.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
        self.okButton = wx.Button(self.buttonPanel, -1, _("Start"))
        self.okButton.Bind(wx.EVT_BUTTON, self.OnFlash)
        self.buttonPanel.GetSizer().Add(self.okButton,
                                        0,
                                        flag=wx.ALIGN_CENTER | wx.ALL,
                                        border=5)
        self.cancelButton = wx.Button(self.buttonPanel, -1, _("Cancel"))
        self.cancelButton.Bind(wx.EVT_BUTTON, self.OnCancel)
        self.buttonPanel.GetSizer().Add(self.cancelButton,
                                        0,
                                        flag=wx.ALIGN_CENTER | wx.ALL,
                                        border=5)
        sizer.Add(self.buttonPanel, 0, flag=wx.ALIGN_CENTER | wx.ALL, border=5)
        self.SetSizer(sizer)

        self.filename = filename
        self.port = port

        self.Layout()
        self.Fit()
        self.thread = None
        self.success = False
        self.show_connect_dialog = False
Beispiel #4
0
	def OnRenameMachine(self, e):
		dialog = wx.TextEntryDialog(self, _("Enter the new name:"), _("Change machine name"),
									profile.getMachineSetting('machine_name', self.nb.GetSelection()))
		if dialog.ShowModal() != wx.ID_OK:
			return
		profile.putMachineSetting('machine_name', dialog.GetValue(), self.nb.GetSelection())
		self.nb.SetPageText(self.nb.GetSelection(), profile.getMachineName(self.nb.GetSelection()))
		self.parent.updateMachineMenu()
 def OnRenameMachine(self, e):
     dialog = wx.TextEntryDialog(
         self, _("Enter the new name:"), _("Change machine name"),
         profile.getMachineSetting('machine_name', self.nb.GetSelection()))
     if dialog.ShowModal() != wx.ID_OK:
         return
     profile.putMachineSetting('machine_name', dialog.GetValue(),
                               self.nb.GetSelection())
     self.nb.SetPageText(self.nb.GetSelection(),
                         profile.getMachineName(self.nb.GetSelection()))
     self.parent.updateMachineMenu()
Beispiel #6
0
	def __init__(self, parent = None, filename = None, port = None, machineIndex = None):
		super(InstallFirmwareDialog, self).__init__(parent=parent, title=_("Firmware install for %s") % (profile.getMachineName(machineIndex)), size=(250, 100))
		if port is None:
			port = profile.getMachineSetting('serial_port')
		if filename is None:
			filename = getDefaultFirmware(machineIndex)
		self._machineIndex = machineIndex
		self._machine_type = profile.getMachineSetting('machine_type', machineIndex)
		if self._machine_type == 'reprap':
			wx.MessageBox(_("Cura only supports firmware updates for ATMega2560 based hardware.\nSo updating your RepRap with Cura might or might not work."), _("Firmware update"), wx.OK | wx.ICON_INFORMATION)

		sizer = wx.BoxSizer(wx.VERTICAL)

		self.progressLabel = wx.StaticText(self, -1, 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nX\nX')
		sizer.Add(self.progressLabel, 0, flag=wx.ALIGN_CENTER|wx.ALL, border=5)
		self.progressGauge = wx.Gauge(self, -1)
		sizer.Add(self.progressGauge, 0, flag=wx.EXPAND)
		self.buttonPanel = wx.Panel(self)

		self.buttonPanel.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
		self.okButton = wx.Button(self.buttonPanel, -1, _("Start"))
		self.okButton.Bind(wx.EVT_BUTTON, self.OnFlash)
		self.buttonPanel.GetSizer().Add(self.okButton, 0, flag=wx.ALIGN_CENTER|wx.ALL, border=5)
		self.cancelButton = wx.Button(self.buttonPanel, -1, _("Cancel"))
		self.cancelButton.Bind(wx.EVT_BUTTON, self.OnCancel)
		self.buttonPanel.GetSizer().Add(self.cancelButton, 0, flag=wx.ALIGN_CENTER|wx.ALL, border=5)
		sizer.Add(self.buttonPanel, 0, flag=wx.ALIGN_CENTER|wx.ALL, border=5)
		self.SetSizer(sizer)

		self.filename = filename
		self.port = port

		self.Layout()
		self.Fit()
		self.thread = None
		self.success = False
		self.show_connect_dialog = False
Beispiel #7
0
	def __init__(self, parent):
		super(machineSettingsDialog, self).__init__(parent, title=_("Machine settings"))

		wx.EVT_CLOSE(self, self.OnClose)

		self.parent = parent

		self.panel = configBase.configPanelBase(self)
		self.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
		self.GetSizer().Add(self.panel, 1, wx.EXPAND)
		self.nb = wx.Notebook(self.panel)
		self.panel.SetSizer(wx.BoxSizer(wx.VERTICAL))
		self.panel.GetSizer().Add(self.nb, 1, wx.EXPAND)

		for idx in xrange(0, profile.getMachineCount()):
			extruderCount = int(profile.getMachineSetting('extruder_amount', idx))
			left, right, main = self.panel.CreateConfigPanel(self.nb)
			configBase.TitleRow(left, _("Machine settings"))
			configBase.SettingRow(left, 'steps_per_e', index=idx)
			configBase.SettingRow(left, 'machine_width', index=idx)
			configBase.SettingRow(left, 'machine_depth', index=idx)
			configBase.SettingRow(left, 'machine_height', index=idx)
			configBase.SettingRow(left, 'extruder_z_offset', index=idx)
			configBase.SettingRow(left, 'extruder_amount', index=idx)
			configBase.SettingRow(left, 'has_heated_bed', index=idx)
			configBase.SettingRow(left, 'machine_center_is_zero', index=idx)
			configBase.SettingRow(left, 'machine_shape', index=idx)
			configBase.SettingRow(left, 'gcode_flavor', index=idx)

			printer_type = profile.getMachineSetting('machine_type', idx)
			if printer_type.startswith('lulzbot_'):
				configBase.TitleRow(right, _("Tool Head"))
				row = configBase.ToolHeadRow(right, 'toolhead', index=idx)
				row.button.Bind(wx.EVT_BUTTON, self.OnChangeToolheadButton)

			configBase.TitleRow(right, _("Printer head size"))
			configBase.SettingRow(right, 'extruder_head_size_min_x', index=idx)
			configBase.SettingRow(right, 'extruder_head_size_min_y', index=idx)
			configBase.SettingRow(right, 'extruder_head_size_max_x', index=idx)
			configBase.SettingRow(right, 'extruder_head_size_max_y', index=idx)
			configBase.SettingRow(right, 'extruder_head_size_height', index=idx)

			for i in xrange(1, extruderCount):
				configBase.TitleRow(left, _("Extruder %d") % (i+1))
				configBase.SettingRow(left, 'extruder_offset_x%d' % (i), index=idx)
				configBase.SettingRow(left, 'extruder_offset_y%d' % (i), index=idx)

			configBase.TitleRow(right, _("Communication settings"))
			configBase.SettingRow(right, 'serial_port', ['AUTO'] + machineCom.serialList(), index=idx)
			configBase.SettingRow(right, 'serial_baud', ['AUTO'] + map(str, machineCom.baudrateList()), index=idx)

			self.nb.AddPage(main, profile.getMachineName(idx).title())

		self.nb.SetSelection(int(profile.getPreferenceFloat('active_machine')))

		self.buttonPanel = wx.Panel(self.panel)
		self.panel.GetSizer().Add(self.buttonPanel)

		self.buttonPanel.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
		self.okButton = wx.Button(self.buttonPanel, -1, _('Ok'))
		self.okButton.Bind(wx.EVT_BUTTON, lambda e: self.Close())
		self.buttonPanel.GetSizer().Add(self.okButton, flag=wx.ALL, border=5)

		self.addButton = wx.Button(self.buttonPanel, -1, _('Add new machine'))
		self.addButton.Bind(wx.EVT_BUTTON, self.OnAddMachine)
		self.buttonPanel.GetSizer().Add(self.addButton, flag=wx.ALL, border=5)

		self.remButton = wx.Button(self.buttonPanel, -1, _('Remove machine'))
		self.remButton.Bind(wx.EVT_BUTTON, self.OnRemoveMachine)
		self.buttonPanel.GetSizer().Add(self.remButton, flag=wx.ALL, border=5)

		self.renButton = wx.Button(self.buttonPanel, -1, _('Change machine name'))
		self.renButton.Bind(wx.EVT_BUTTON, self.OnRenameMachine)
		self.buttonPanel.GetSizer().Add(self.renButton, flag=wx.ALL, border=5)

		main.Fit()
		self.Fit()
    def __init__(self, parent):
        super(machineSettingsDialog,
              self).__init__(parent, title=_("Machine settings"))

        wx.EVT_CLOSE(self, self.OnClose)

        self.parent = parent

        self.panel = configBase.configPanelBase(self)
        self.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
        self.GetSizer().Add(self.panel, 1, wx.EXPAND)
        self.nb = wx.Notebook(self.panel)
        self.panel.SetSizer(wx.BoxSizer(wx.VERTICAL))
        self.panel.GetSizer().Add(self.nb, 1, wx.EXPAND)

        for idx in xrange(0, profile.getMachineCount()):
            printer_type = profile.getMachineSetting('machine_type', idx)
            extruderCount = int(
                profile.getMachineSetting('extruder_amount', idx))
            left, right, main = self.panel.CreateConfigPanel(self.nb)
            configBase.TitleRow(left, _("Machine settings"))
            configBase.SettingRow(left, 'steps_per_e', index=idx)
            configBase.SettingRow(left, 'machine_width', index=idx)
            configBase.SettingRow(left, 'machine_depth', index=idx)
            configBase.SettingRow(left, 'machine_height', index=idx)
            if not printer_type.startswith(
                    'lulzbot_TAZ_6'
            ):  #Disabled for TAZ 6, use LCD controller instead
                configBase.SettingRow(left, 'extruder_z_offset', index=idx)
            configBase.SettingRow(left, 'extruder_amount', index=idx)
            configBase.SettingRow(left, 'has_heated_bed', index=idx)
            configBase.SettingRow(left, 'machine_center_is_zero', index=idx)
            configBase.SettingRow(left, 'machine_shape', index=idx)
            configBase.SettingRow(left, 'gcode_flavor', index=idx)
            configBase.SettingRow(left,
                                  'machine_startup_energy_PLA',
                                  index=idx)
            configBase.SettingRow(left, 'machine_run_energy_PLA', index=idx)
            configBase.SettingRow(left,
                                  'machine_startup_energy_ABS',
                                  index=idx)
            configBase.SettingRow(left, 'machine_run_energy_ABS', index=idx)
            configBase.SettingRow(left,
                                  'machine_startup_energy_HIPS',
                                  index=idx)
            configBase.SettingRow(left, 'machine_run_energy_HIPS', index=idx)
            configBase.SettingRow(left,
                                  'machine_startup_energy_PETT',
                                  index=idx)
            configBase.SettingRow(left, 'machine_run_energy_PETT', index=idx)
            configBase.SettingRow(left,
                                  'machine_startup_energy_Nylon',
                                  index=idx)
            configBase.SettingRow(left, 'machine_run_energy_Nylon', index=idx)
            configBase.SettingRow(left,
                                  'machine_startup_energy_Other',
                                  index=idx)
            configBase.SettingRow(left, 'machine_run_energy_Other', index=idx)

            if printer_type.startswith('lulzbot_'):
                configBase.TitleRow(right, _("Tool Head"))
                row = configBase.ToolHeadRow(right, 'toolhead', index=idx)
                row.button.Bind(wx.EVT_BUTTON, self.OnChangeToolheadButton)

            configBase.TitleRow(right, _("Printer head size"))
            configBase.SettingRow(right, 'extruder_head_size_min_x', index=idx)
            configBase.SettingRow(right, 'extruder_head_size_min_y', index=idx)
            configBase.SettingRow(right, 'extruder_head_size_max_x', index=idx)
            configBase.SettingRow(right, 'extruder_head_size_max_y', index=idx)
            configBase.SettingRow(right,
                                  'extruder_head_size_height',
                                  index=idx)

            for i in xrange(1, extruderCount):
                configBase.TitleRow(left, _("Extruder %d") % (i + 1))
                configBase.SettingRow(left,
                                      'extruder_offset_x%d' % (i),
                                      index=idx)
                configBase.SettingRow(left,
                                      'extruder_offset_y%d' % (i),
                                      index=idx)

            configBase.TitleRow(right, _("Communication settings"))
            serial_list = ['AUTO'] + machineCom.serialList()
            serial_list_labels = serial_list[:]
            if profile.getMachineSetting('serial_port') not in serial_list:
                serial_list.append(profile.getMachineSetting('serial_port'))
                serial_list_labels.append(
                    profile.getMachineSetting('serial_port') +
                    _(" (Currently unavailable)"))
            configBase.SettingRow(right,
                                  'serial_port',
                                  serial_list,
                                  serial_list_labels,
                                  index=idx)
            configBase.SettingRow(right,
                                  'serial_baud', ['AUTO'] +
                                  map(str, machineCom.baudrateList()),
                                  index=idx)

            machine_name = profile.getMachineName(idx)
            machine_title = machine_name.title()
            machine_title = machine_title.replace('Taz', 'TAZ')
            machine_title = machine_title.replace('Lulzbot', 'LulzBot')
            self.nb.AddPage(main, machine_title)

        self.nb.SetSelection(int(profile.getPreferenceFloat('active_machine')))

        self.buttonPanel = wx.Panel(self.panel)
        self.panel.GetSizer().Add(self.buttonPanel)

        self.buttonPanel.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
        self.okButton = wx.Button(self.buttonPanel, -1, _('Ok'))
        self.okButton.Bind(wx.EVT_BUTTON, lambda e: self.Close())
        self.buttonPanel.GetSizer().Add(self.okButton, flag=wx.ALL, border=5)

        self.addButton = wx.Button(self.buttonPanel, -1, _('Add new machine'))
        self.addButton.Bind(wx.EVT_BUTTON, self.OnAddMachine)
        self.buttonPanel.GetSizer().Add(self.addButton, flag=wx.ALL, border=5)

        self.remButton = wx.Button(self.buttonPanel, -1, _('Remove machine'))
        self.remButton.Bind(wx.EVT_BUTTON, self.OnRemoveMachine)
        self.buttonPanel.GetSizer().Add(self.remButton, flag=wx.ALL, border=5)

        self.renButton = wx.Button(self.buttonPanel, -1,
                                   _('Change machine name'))
        self.renButton.Bind(wx.EVT_BUTTON, self.OnRenameMachine)
        self.buttonPanel.GetSizer().Add(self.renButton, flag=wx.ALL, border=5)

        main.Fit()
        self.Fit()
Beispiel #9
0
    def __init__(self, parent):
        super(machineSettingsDialog,
              self).__init__(parent, title=_("Machine settings"))

        wx.EVT_CLOSE(self, self.OnClose)

        self.parent = parent

        self.panel = configBase.configPanelBase(self)
        self.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
        self.GetSizer().Add(self.panel, 1, wx.EXPAND)
        self.nb = wx.Notebook(self.panel)
        self.panel.SetSizer(wx.BoxSizer(wx.VERTICAL))
        self.panel.GetSizer().Add(self.nb, 1, wx.EXPAND)

        for idx in xrange(0, profile.getMachineCount()):
            extruderCount = int(
                profile.getMachineSetting('extruder_amount', idx))
            left, right, main = self.panel.CreateConfigPanel(self.nb)
            configBase.TitleRow(left, _("Machine settings"))
            configBase.SettingRow(left, 'steps_per_e', index=idx)
            configBase.SettingRow(left, 'machine_width', index=idx)
            configBase.SettingRow(left, 'machine_depth', index=idx)
            configBase.SettingRow(left, 'machine_height', index=idx)
            configBase.SettingRow(left, 'extruder_z_offset', index=idx)
            configBase.SettingRow(left, 'extruder_amount', index=idx)
            configBase.SettingRow(left, 'has_heated_bed', index=idx)
            configBase.SettingRow(left, 'machine_center_is_zero', index=idx)
            configBase.SettingRow(left, 'machine_shape', index=idx)
            configBase.SettingRow(left, 'gcode_flavor', index=idx)

            printer_type = profile.getMachineSetting('machine_type', idx)
            if printer_type.startswith('lulzbot_'):
                configBase.TitleRow(right, _("Tool Head"))
                row = configBase.ToolHeadRow(right, 'toolhead', index=idx)
                row.button.Bind(wx.EVT_BUTTON, self.OnChangeToolheadButton)

            configBase.TitleRow(right, _("Printer head size"))
            configBase.SettingRow(right, 'extruder_head_size_min_x', index=idx)
            configBase.SettingRow(right, 'extruder_head_size_min_y', index=idx)
            configBase.SettingRow(right, 'extruder_head_size_max_x', index=idx)
            configBase.SettingRow(right, 'extruder_head_size_max_y', index=idx)
            configBase.SettingRow(right,
                                  'extruder_head_size_height',
                                  index=idx)

            for i in xrange(1, extruderCount):
                configBase.TitleRow(left, _("Extruder %d") % (i + 1))
                configBase.SettingRow(left,
                                      'extruder_offset_x%d' % (i),
                                      index=idx)
                configBase.SettingRow(left,
                                      'extruder_offset_y%d' % (i),
                                      index=idx)

            configBase.TitleRow(right, _("Communication settings"))
            configBase.SettingRow(right,
                                  'serial_port',
                                  ['AUTO'] + machineCom.serialList(),
                                  index=idx)
            configBase.SettingRow(right,
                                  'serial_baud', ['AUTO'] +
                                  map(str, machineCom.baudrateList()),
                                  index=idx)

            self.nb.AddPage(main, profile.getMachineName(idx).title())

        self.nb.SetSelection(int(profile.getPreferenceFloat('active_machine')))

        self.buttonPanel = wx.Panel(self.panel)
        self.panel.GetSizer().Add(self.buttonPanel)

        self.buttonPanel.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
        self.okButton = wx.Button(self.buttonPanel, -1, _('Ok'))
        self.okButton.Bind(wx.EVT_BUTTON, lambda e: self.Close())
        self.buttonPanel.GetSizer().Add(self.okButton, flag=wx.ALL, border=5)

        self.addButton = wx.Button(self.buttonPanel, -1, _('Add new machine'))
        self.addButton.Bind(wx.EVT_BUTTON, self.OnAddMachine)
        self.buttonPanel.GetSizer().Add(self.addButton, flag=wx.ALL, border=5)

        self.remButton = wx.Button(self.buttonPanel, -1, _('Remove machine'))
        self.remButton.Bind(wx.EVT_BUTTON, self.OnRemoveMachine)
        self.buttonPanel.GetSizer().Add(self.remButton, flag=wx.ALL, border=5)

        self.renButton = wx.Button(self.buttonPanel, -1,
                                   _('Change machine name'))
        self.renButton.Bind(wx.EVT_BUTTON, self.OnRenameMachine)
        self.buttonPanel.GetSizer().Add(self.renButton, flag=wx.ALL, border=5)

        main.Fit()
        self.Fit()