from Cura.util import profile
from Cura.util import gcodeGenerator
from Cura.util import resources
+from Cura.util import version
class InfoBox(wx.Panel):
if ImageButton.__last_group__ == self:
ImageButton.__last_group__ = None
+ def TriggerGroupCallbacks(self):
+ if self.group:
+ for ib in ImageButton.__groups__[self.group]:
+ if ib.GetValue() and ib.callback:
+ ib.callback()
+ break
+ else:
+ if self.GetValue() and self.callback:
+ self.callback()
+
def OnLeftClick(self, e):
self.SetValue(True)
def __init__(self, parent):
super(LulzbotMachineSelectPage, self).__init__(parent, _("Select your machine"))
- self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
- self.AddText(_("Select your printer :"))
self.panel = self.AddPanel()
self.LulzbotMini = self.AddImageButton(self.panel, 0, 0, _("LulzBot Mini"),
'Lulzbot_mini.jpg', image_size, style=ImageButton.IB_GROUP)
self.LulzbotMini.OnSelected(self.OnLulzbotMiniSelected)
- self.LulzbotMini.SetValue(True)
- self.LulzbotTaz5 = self.AddImageButton(self.panel, 0, 1, _("LulzBot TAZ 5"),
+
+ self.LulzbotTaz6 = self.AddImageButton(self.panel, 0, 1, _("LulzBot TAZ 6"),
+ 'Lulzbot_TAZ6.jpg', image_size)
+ self.LulzbotTaz6.OnSelected(self.OnLulzbotTaz6Selected)
+
+ self.LulzbotTaz = self.AddImageButton(self.panel, 1, 0, _("LulzBot TAZ 4 or 5"),
'Lulzbot_TAZ5.jpg', image_size)
- self.LulzbotTaz5.OnSelected(self.OnLulzbotTazSelected)
- self.LulzbotTaz4 = self.AddImageButton(self.panel, 1, 0, _("LulzBot TAZ 4"),
- 'Lulzbot_TAZ4.jpg', image_size)
- self.LulzbotTaz4.OnSelected(self.OnLulzbotTazSelected)
+ self.LulzbotTaz.OnSelected(self.OnLulzbotTazSelected)
+
self.OtherPrinters = self.AddImageButton(self.panel, 1, 1, _("Other Printers"),
'Generic-3D-Printer.png', image_size)
self.OtherPrinters.OnSelected(self.OnOthersSelected)
+ self.LulzbotMini.SetValue(True)
+
+ def OnPageShown(self):
+ self.LulzbotMini.TriggerGroupCallbacks()
def OnOthersSelected(self):
wx.wizard.WizardPageSimple.Chain(self, self.GetParent().machineSelectPage)
def OnLulzbotMiniSelected(self):
wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotMiniToolheadPage)
wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotMiniToolheadPage,
- self.GetParent().lulzbotFirmwarePage)
+ self.GetParent().lulzbotReadyPage)
+
+ def OnLulzbotTaz6Selected(self):
+ wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTaz6SelectPage)
def OnLulzbotTazSelected(self):
- wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTazHotendPage)
+ wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTazSelectPage)
def AllowNext(self):
return True
return False
def StoreData(self):
- if self.LulzbotTaz4.GetValue() or self.LulzbotTaz5.GetValue() or self.LulzbotMini.GetValue():
- if self.LulzbotTaz4.GetValue():
- # Nozzle size will be set in the toolhead selection page
- # We set the machine_type here so later pages can differenciate between TAZ 4 and 5
+ if self.LulzbotTaz.GetValue() or self.LulzbotMini.GetValue() or self.LulzbotTaz6.GetValue():
+ if self.LulzbotTaz.GetValue():
profile.putMachineSetting('machine_width', '290')
profile.putMachineSetting('machine_depth', '275')
profile.putMachineSetting('machine_height', '250')
- profile.putMachineSetting('machine_type', 'lulzbot_TAZ_4')
- profile.putMachineSetting('machine_name', 'LulzBot TAZ 4')
profile.putMachineSetting('serial_baud', '115200')
- elif self.LulzbotTaz5.GetValue():
- # Nozzle size will be set in the toolhead selection page
- # We set the machine_type here so later pages can differenciate between TAZ 4 and 5
- profile.putMachineSetting('machine_type', 'lulzbot_TAZ_5')
- profile.putMachineSetting('machine_name', 'LulzBot TAZ 5')
- profile.putMachineSetting('machine_width', '290')
- profile.putMachineSetting('machine_depth', '275')
+ profile.putMachineSetting('extruder_head_size_min_x', '0.0')
+ profile.putMachineSetting('extruder_head_size_max_x', '0.0')
+ profile.putMachineSetting('extruder_head_size_min_y', '0.0')
+ profile.putMachineSetting('extruder_head_size_max_y', '0.0')
+ profile.putMachineSetting('extruder_head_size_height', '0.0')
+ elif self.LulzbotTaz6.GetValue():
+ profile.putMachineSetting('machine_width', '280')
+ profile.putMachineSetting('machine_depth', '280')
profile.putMachineSetting('machine_height', '250')
- profile.putMachineSetting('serial_baud', '115200')
+ profile.putMachineSetting('serial_baud', '250000')
+ profile.putMachineSetting('extruder_head_size_min_x', '0.0')
+ profile.putMachineSetting('extruder_head_size_max_x', '0.0')
+ profile.putMachineSetting('extruder_head_size_min_y', '0.0')
+ profile.putMachineSetting('extruder_head_size_max_y', '0.0')
+ profile.putMachineSetting('extruder_head_size_height', '0.0')
else:
- # Nozzle size and machine type will be set in the toolhead selection page
+ # Nozzle diameter and machine type will be set in the toolhead selection page
profile.putMachineSetting('machine_name', 'LulzBot Mini')
profile.putMachineSetting('machine_width', '155')
profile.putMachineSetting('machine_depth', '155')
profile.putMachineSetting('machine_center_is_zero', 'False')
profile.putMachineSetting('gcode_flavor', 'RepRap (Marlin/Sprinter)')
profile.putMachineSetting('has_heated_bed', 'True')
- profile.putMachineSetting('extruder_head_size_min_x', '0.0')
- profile.putMachineSetting('extruder_head_size_min_y', '0.0')
- profile.putMachineSetting('extruder_head_size_max_x', '0.0')
- profile.putMachineSetting('extruder_head_size_max_y', '0.0')
- profile.putMachineSetting('extruder_head_size_height', '0.0')
profile.putProfileSetting('retraction_enable', 'True')
profile.putPreference('startMode', 'Simple')
profile.putProfileSetting('wall_thickness', float(profile.getProfileSetting('nozzle_size')) * 2)
class LulzbotReadyPage(InfoPage):
def __init__(self, parent):
super(LulzbotReadyPage, self).__init__(parent, _("LulzBot TAZ/Mini"))
- self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
self.AddText(_('Cura is now ready to be used with your LulzBot 3D printer.'))
self.AddSeperator()
self.AddText(_('For more information about using Cura with your LulzBot'))
self.AddText(_('3D printer, please visit www.LulzBot.com/cura'))
self.AddSeperator()
-class LulzbotToolheadSelectPage(InfoPage):
- def __init__(self, parent, title):
- super(LulzbotToolheadSelectPage, self).__init__(parent, title)
- self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
- self.AddText(_('Please select your currently installed Tool Head'))
- txt = self.AddText(_('WARNING: Carefully select the right Tool Head.\nFlashing the firmware with the wrong Tool Head can damage your LulzBot printer.'))
- txt.SetForegroundColour(wx.RED)
- self.AddSeperator()
-
-class LulzbotMiniToolheadSelectPage(LulzbotToolheadSelectPage):
+class LulzbotMiniToolheadSelectPage(InfoPage):
def __init__(self, parent, allowBack = True):
- super(LulzbotMiniToolheadSelectPage, self).__init__(parent, _("LulzBot Mini Toolhead Selection"))
+ super(LulzbotMiniToolheadSelectPage, self).__init__(parent, _("LulzBot Mini Tool Head Selection"))
self.allowBack = allowBack
self.panel = self.AddPanel()
image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
- self.standard = self.AddImageButton(self.panel, 0, 0, _('Single Extruder v2'),
- 'Lulzbot_Toolhead_Mini_Standard.jpg', image_size,
+ self.standard = self.AddImageButton(self.panel, 0, 0, _('Standard LulzBot Mini'),
+ 'Lulzbot_mini.jpg', image_size,
style=ImageButton.IB_GROUP)
- self.flexy = self.AddImageButton(self.panel, 0, 1, _('Flexystruder v2'),
+ self.flexy = self.AddImageButton(self.panel, 0, 1, _('LulzBot Mini with Flexystruder'),
'Lulzbot_Toolhead_Mini_Flexystruder.jpg', image_size)
self.standard.SetValue(True)
if self.standard.GetValue():
profile.putProfileSetting('nozzle_size', '0.5')
profile.putMachineSetting('extruder_amount', '1')
- profile.putMachineSetting('toolhead', 'Single Extruder V2')
+ profile.putMachineSetting('toolhead', 'Single Extruder v2')
profile.putMachineSetting('toolhead_shortname', '')
profile.putMachineSetting('machine_type', 'lulzbot_mini')
else:
profile.putProfileSetting('nozzle_size', '0.6')
profile.putMachineSetting('extruder_amount', '1')
- profile.putMachineSetting('toolhead', 'Flexystruder V2')
- profile.putMachineSetting('toolhead_shortname', 'Flexy')
+ profile.putMachineSetting('toolhead', 'Flexystruder v2')
+ profile.putMachineSetting('toolhead_shortname', 'Flexystruder')
profile.putMachineSetting('machine_type', 'lulzbot_mini_flexystruder')
+class LulzbotTaz6ToolheadSelectPage(InfoPage):
+ def __init__(self, parent, allowBack = True):
+ super(LulzbotTaz6ToolheadSelectPage, self).__init__(parent, _("LulzBot TAZ 6 Tool Head Selection"))
+
+ self.panel = self.AddPanel()
+ image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
+ self.taz6 = self.AddImageButton(self.panel, 0, 0, _('Tilapia'),
+ 'Lulzbot_Toolhead_TAZ_Tilapia.jpg', image_size,
+ style=ImageButton.IB_GROUP)
+ self.taz6.OnSelected(self.OnTilapiaSelected)
+ self.taz6.SetValue(True)
+
+ def OnPageShown(self):
+ self.taz6.TriggerGroupCallbacks()
+
+ def OnTilapiaSelected(self):
+ wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotReadyPage)
+
+ def StoreData(self):
+ profile.putProfileSetting('nozzle_size', '0.5')
+ profile.putMachineSetting('extruder_amount', '1')
+ profile.putMachineSetting('toolhead', 'Single Extruder Tilapia')
+ profile.putMachineSetting('toolhead_shortname', 'Tilapia')
+ profile.putMachineSetting('machine_type', 'lulzbot_TAZ_6_Single_Tilapia')
+ profile.putMachineSetting('machine_name', 'LulzBot TAZ 6')
+
+class LulzbotTazSelectPage(InfoPage):
+ def __init__(self, parent):
+ super(LulzbotTazSelectPage, self).__init__(parent, _("LulzBot TAZ 4-5 Selection"))
+
+ self.panel = self.AddPanel()
+ image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
+ self.taz5 = self.AddImageButton(self.panel, 0, 0, _('Stock TAZ 5 (PEI && v2)'),
+ 'Lulzbot_TAZ_5_Hex_and_PEI.jpg', image_size,
+ style=ImageButton.IB_GROUP)
+ self.taz5.OnSelected(self.OnTaz5Selected)
+ self.taz4 = self.AddImageButton(self.panel, 0, 1, _('Stock TAZ 4 (PET && v1)'),
+ 'Lulzbot_TAZ_4_Buda_and_PET.jpg', image_size)
+ self.taz4.OnSelected(self.OnTaz4Selected)
+ self.modified = self.AddImageButton(self.panel, 1, 0, _('Modified LulzBot TAZ 4 or 5'),
+ 'Lulzbot_TAZ5.jpg', image_size)
+ self.modified.OnSelected(self.OnModifiedSelected)
+ self.taz5.SetValue(True)
+
+ def OnPageShown(self):
+ self.taz5.TriggerGroupCallbacks()
+
+ def OnTaz5Selected(self):
+ wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTaz5NozzleSelectPage)
+ wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotTaz5NozzleSelectPage,
+ self.GetParent().lulzbotReadyPage)
+
+ def OnTaz4Selected(self):
+ wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotReadyPage)
+
+ def OnModifiedSelected(self):
+ wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTazBedSelectPage)
+ wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotTazBedSelectPage,
+ self.GetParent().lulzbotTazHotendPage)
+
+ def StoreData(self):
+ if self.taz5.GetValue():
+ profile.putProfileSetting('nozzle_size', '0.5')
+ profile.putMachineSetting('extruder_amount', '1')
+ profile.putMachineSetting('toolhead', 'Single Extruder V2')
+ profile.putMachineSetting('toolhead_shortname', '')
+ profile.putMachineSetting('machine_type', 'lulzbot_TAZ_5_SingleV2')
+ profile.putMachineSetting('machine_name', 'LulzBot TAZ 5')
+ elif self.taz4.GetValue():
+ profile.putProfileSetting('nozzle_size', '0.35')
+ profile.putMachineSetting('extruder_amount', '1')
+ profile.putMachineSetting('toolhead', 'Single Extruder V1')
+ profile.putMachineSetting('toolhead_shortname', '')
+ profile.putMachineSetting('machine_type', 'lulzbot_TAZ_4_SingleV1')
+ profile.putMachineSetting('machine_name', 'LulzBot TAZ 4')
+
+class LulzbotTazBedSelectPage(InfoPage):
+ def __init__(self, parent):
+ super(LulzbotTazBedSelectPage, self).__init__(parent, _("Bed Surface"))
+
+ self.panel = self.AddPanel()
+ image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
+ self.pei = self.AddImageButton(self.panel, 0, 0, _('PEI'),
+ 'Lulzbot_TAZ_PEI_Bed.jpg', image_size,
+ style=ImageButton.IB_GROUP)
+ self.pet = self.AddImageButton(self.panel, 0, 1, _('PET'),
+ 'Lulzbot_TAZ_PET_Bed.jpg', image_size)
+ self.pei.SetValue(True)
+
+ def StoreData(self):
+ if self.pei.GetValue():
+ profile.putMachineSetting('machine_type', 'lulzbot_TAZ_5')
+ profile.putMachineSetting('machine_name', 'LulzBot TAZ 5')
+ else:
+ profile.putMachineSetting('machine_type', 'lulzbot_TAZ_4')
+ profile.putMachineSetting('machine_name', 'LulzBot TAZ 4')
-class LulzbotTazToolheadSelectPage(LulzbotToolheadSelectPage):
+class LulzbotTazToolheadSelectPage(InfoPage):
def __init__(self, parent):
- super(LulzbotTazToolheadSelectPage, self).__init__(parent, _("LulzBot TAZ Toolhead Selection"))
+ super(LulzbotTazToolheadSelectPage, self).__init__(parent, _("LulzBot TAZ Tool Head Selection"))
self.panel = self.AddPanel()
image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
self.flexy = self.AddImageButton(self.panel, 0, 1, _('Flexystruder v1'),
'Lulzbot_Toolhead_TAZ_Flexystruder_v1.jpg', image_size)
self.dually = self.AddImageButton(self.panel, 1, 0, _('Dual Extruder v1'),
- 'Lulzbot_Toolhead_TAZ_Dually_v1.jpg', image_size)
+ 'Lulzbot_Toolhead_TAZ_Dual_Extruder_v1.jpg', image_size)
self.flexydually = self.AddImageButton(self.panel, 1, 1, _('FlexyDually v1'),
'Lulzbot_Toolhead_TAZ_FlexyDually_v1.jpg', image_size)
self.SetVersion(1)
self.single.SetLabel(_('Single Extruder v%d' % version))
self.flexy.SetBitmap(self.GetBitmap('Lulzbot_Toolhead_TAZ_Flexystruder_v%d.jpg' % version, image_size))
self.flexy.SetLabel(_('Flexystruder v%d' % version))
- self.dually.SetBitmap(self.GetBitmap('Lulzbot_Toolhead_TAZ_Dually_v%d.jpg' % version, image_size))
+ self.dually.SetBitmap(self.GetBitmap('Lulzbot_Toolhead_TAZ_Dual_Extruder_v%d.jpg' % version, image_size))
self.dually.SetLabel(_('Dual Extruder v%d' % version))
self.flexydually.SetBitmap(self.GetBitmap('Lulzbot_Toolhead_TAZ_FlexyDually_v%d.jpg' % version, image_size))
self.flexydually.SetLabel(_('FlexyDually v%d' % version))
wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotTaz5NozzleSelectPage, self.GetParent().lulzbotFirmwarePage)
else:
wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotFirmwarePage)
+ wx.wizard.WizardPageSimple.Chain(self.GetParent().lulzbotFirmwarePage, self.GetParent().lulzbotReadyPage)
def OnSingleV2(self):
wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotTaz5NozzleSelectPage)
profile.putProfileSetting('nozzle_size', '0.6')
profile.putMachineSetting('extruder_amount', '1')
profile.putMachineSetting('toolhead', 'Flexystruder V%d' % self.version)
- profile.putMachineSetting('toolhead_shortname', 'Flexy v%d' % self.version)
+ profile.putMachineSetting('toolhead_shortname', 'Flexystruder v%d' % self.version)
profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_FlexystruderV%d' % version)
elif self.dually.GetValue():
profile.putProfileSetting('nozzle_size', '0.5')
profile.putMachineSetting('extruder_amount', '2')
+ profile.putMachineSetting('extruder_offset_x1', '0.0')
+ profile.putMachineSetting('extruder_offset_y1', '-50.0' if self.version == 2 else '-52.00')
profile.putMachineSetting('toolhead', 'Dual Extruder V%d' % self.version)
- profile.putMachineSetting('toolhead_shortname', 'Dually v%d' % self.version)
- profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_DuallyV%d' % version)
+ profile.putMachineSetting('toolhead_shortname', 'Dual v%d' % self.version)
+ profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_DualV%d' % version)
elif self.flexydually.GetValue():
profile.putProfileSetting('nozzle_size', '0.6')
profile.putMachineSetting('extruder_amount', '2')
+ profile.putMachineSetting('extruder_offset_x1', '0.0')
+ profile.putMachineSetting('extruder_offset_y1', '-50.0' if self.version == 2 else '-52.00')
profile.putMachineSetting('toolhead', 'FlexyDually V%d' % self.version)
profile.putMachineSetting('toolhead_shortname', 'FlexyDually v%d' % self.version)
profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_FlexyDuallyV%d' % version)
-
-class LulzbotHotendSelectPage(LulzbotToolheadSelectPage):
+class LulzbotHotendSelectPage(InfoPage):
def __init__(self, parent, allowBack = True):
- super(LulzbotHotendSelectPage, self).__init__(parent, _("LulzBot Toolhead Hotend Selection"))
+ super(LulzbotHotendSelectPage, self).__init__(parent, _("LulzBot Tool Head Hot end Selection"))
self.allowBack = allowBack
self.panel = self.AddPanel()
image_size=(LulzbotMachineSelectPage.IMAGE_WIDTH, LulzbotMachineSelectPage.IMAGE_HEIGHT)
- self.v1 = self.AddImageButton(self.panel, 0, 0, _('v1 (Budaschnozzle Hotends)'),
+ self.v1 = self.AddImageButton(self.panel, 0, 0, _('v1 (Budaschnozzle)'),
'Lulzbot_Toolhead_v1.jpg', image_size,
style=ImageButton.IB_GROUP)
- self.v2 = self.AddImageButton(self.panel, 0, 1, _('v2 (Hexagon Hotends)'),
+ self.v2 = self.AddImageButton(self.panel, 0, 1, _('v2 (LulzBot Hexagon)'),
'Lulzbot_Toolhead_v2.jpg', image_size)
self.v1.SetValue(True)
def StoreData(self):
self.GetParent().lulzbotTazToolheadPage.SetVersion(1 if self.v1.GetValue() else 2)
-class LulzbotTaz5NozzleSelectPage(LulzbotToolheadSelectPage):
+class LulzbotTaz5NozzleSelectPage(InfoPage):
url2='http://lulzbot.com/printer-identification'
def __init__(self, parent):
- super(LulzbotTaz5NozzleSelectPage, self).__init__(parent, _("LulzBot TAZ Single V2 Nozzle Selection"))
+ super(LulzbotTaz5NozzleSelectPage, self).__init__(parent, _("LulzBot TAZ Single v2 Nozzle Selection"))
- self.AddText(_('Please select your Hexagon hotend\'s nozzle size:'))
+ self.AddText(_('Please select your LulzBot Hexagon Hot End\'s nozzle diameter:'))
self.Nozzle35Radio = self.AddRadioButton("0.35 mm", style=wx.RB_GROUP)
self.Nozzle35Radio.SetValue(True)
self.Nozzle50Radio = self.AddRadioButton("0.5 mm")
self.AddText(_(' '))
self.AddSeperator()
- self.AddText(_('If you are not sure which nozzle size you have'))
+ self.AddText(_('If you are not sure which nozzle diameter you have,'))
self.AddText(_('please check this webpage: '))
button = self.AddButton(LulzbotTaz5NozzleSelectPage.url2)
button.Bind(wx.EVT_BUTTON, self.OnUrlClick)
taz_version = 5
if self.Nozzle35Radio.GetValue():
profile.putProfileSetting('nozzle_size', '0.35')
- profile.putMachineSetting('toolhead', 'Single Extruder V2 (0.35mm nozzle)')
+ profile.putMachineSetting('toolhead', 'Single Extruder v2 (0.35mm nozzle)')
profile.putMachineSetting('toolhead_shortname', '0.35 nozzle')
profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_035nozzle' % taz_version)
else:
profile.putProfileSetting('nozzle_size', '0.5')
- profile.putMachineSetting('toolhead', 'Single Extruder V2 (0.5mm nozzle)')
+ profile.putMachineSetting('toolhead', 'Single Extruder v2 (0.5mm nozzle)')
profile.putMachineSetting('toolhead_shortname', '0.5 nozzle')
profile.putMachineSetting('machine_type', 'lulzbot_TAZ_%d_05nozzle' % taz_version)
def __init__(self, parent):
super(LulzbotFirmwareUpdatePage, self).__init__(parent, _("LulzBot Firmware Update"))
- self.AddBitmap(wx.Bitmap(resources.getPathForImage('Lulzbot_logo.png')))
-
- self.AddText(_('Your Lulzbot printer\'s firmware will now be updated'))
+ self.AddText(_("Your LulzBot printer\'s firmware will now be updated.\n" +
+ "Note: this will overwrite your existing firmware."))
self.AddSeperator()
- self.AddText(_("Firmware is the piece of software running directly on your 3D printer.\nThis firmware controls the stepper motors, regulates the temperature\nand ultimately makes your printer work."))
- self.AddHiddenSeperator()
- self.AddText(_("The firmware shipping with new Lulzbot printers works, but upgrades may be available\nwhich improve the functionality of your printer.\nIf you changed your toolhead, you will also need to flash\na new firmware or you may risk damaging the toolhead."))
- self.AddHiddenSeperator()
- self.AddText(_("To avoid any possible confusion, make sure to disconnect all printers from your PC\nexpect the printer that you are currently configuring."))
+ self.AddText(_("Follow these steps to prevent writing firmware to the wrong device:\n" +
+ " 1) Unplug all USB devices from your computer\n" +
+ " 2) Plug your 3D Printer into the computer with a USB cable\n" +
+ " 3) Turn on your 3D Printer\n" +
+ " 4) Click \"Flash the firmware\""))
self.AddHiddenSeperator()
upgradeButton, skipUpgradeButton = self.AddDualButton(_('Flash the firmware'), _('Skip upgrade'))
upgradeButton.Bind(wx.EVT_BUTTON, self.OnUpgradeClick)
skipUpgradeButton.Bind(wx.EVT_BUTTON, self.OnSkipClick)
def AllowNext(self):
- return False
+ return version.isDevVersion()
def OnUpgradeClick(self, e):
if firmwareInstall.InstallFirmware():
self.GetParent().FindWindowById(wx.ID_FORWARD).Enable()
+ self.GetParent().ShowPage(self.GetNext())
def OnSkipClick(self, e):
- self.GetParent().FindWindowById(wx.ID_FORWARD).Enable()
- self.GetParent().ShowPage(self.GetNext())
+ dlg = wx.MessageDialog(self,
+ _("CAUTION: Updating firmware is necessary when changing the\n" \
+ "tool head on your LulzBot desktop 3D Printer." \
+ "\n\n" +
+ "Are you sure you want to skip the firmware update?"),
+ _('Skip firmware update?'),
+ wx.YES_NO | wx.ICON_EXCLAMATION)
+ skip = dlg.ShowModal() == wx.ID_YES
+ dlg.Destroy()
+ if skip:
+ self.GetParent().FindWindowById(wx.ID_FORWARD).Enable()
+ self.GetParent().ShowPage(self.GetNext())
class LulzbotChangeToolheadWizard(wx.wizard.Wizard):
def __init__(self):
- super(LulzbotChangeToolheadWizard, self).__init__(None, -1, _("Change Lulzbot Toolhead Wizard"))
+ super(LulzbotChangeToolheadWizard, self).__init__(None, -1, _("Change LulzBot Tool Head Wizard"))
self._nozzle_size = profile.getProfileSettingFloat('nozzle_size')
self._machine_name = profile.getMachineSetting('machine_name')
self.lulzbotFirmwarePage = LulzbotFirmwareUpdatePage(self)
self.lulzbotMiniToolheadPage = LulzbotMiniToolheadSelectPage(self, False)
self.lulzbotTazToolheadPage = LulzbotTazToolheadSelectPage(self)
+ self.lulzbotTaz6ToolheadPage = LulzbotTaz6ToolheadSelectPage(self, False)
self.lulzbotTazHotendPage = LulzbotHotendSelectPage(self, False)
self.lulzbotTaz5NozzleSelectPage = LulzbotTaz5NozzleSelectPage(self)
+ self.lulzbotTazBedSelectPage = LulzbotTazBedSelectPage(self)
+ self.lulzbotTazSelectPage = LulzbotTazSelectPage(self)
+ self.lulzbotTaz6SelectPage = LulzbotTaz6SelectPage(self)
- wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotFirmwarePage)
- wx.wizard.WizardPageSimple.Chain(self.lulzbotFirmwarePage, self.lulzbotReadyPage)
+ wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotReadyPage)
wx.wizard.WizardPageSimple.Chain(self.lulzbotTazHotendPage, self.lulzbotTazToolheadPage)
if profile.getMachineSetting('machine_type').startswith('lulzbot_mini'):
self.RunWizard(self.lulzbotMiniToolheadPage)
- else:
+ elif profile.getMachineSetting('machine_type').startswith('lulzbot_TAZ_5'):
self.RunWizard(self.lulzbotTazHotendPage)
+ elif profile.getMachineSetting('machine_type').startswith('lulzbot_TAZ_6'):
+ self.RunWizard(self.lulzbotTaz6ToolheadPage)
self.Destroy()
def OnPageChanging(self, e):
self.FindWindowById(wx.ID_BACKWARD).Enable()
else:
self.FindWindowById(wx.ID_BACKWARD).Disable()
+ if hasattr(e.GetPage(), 'OnPageShown'):
+ e.GetPage().OnPageShown()
def OnCancel(self, e):
profile.putProfileSetting('nozzle_size', self._nozzle_size)
self.lulzbotTazHotendPage = LulzbotHotendSelectPage(self)
self.lulzbotTaz5NozzleSelectPage = LulzbotTaz5NozzleSelectPage(self)
self.lulzbotMachineSelectPage = LulzbotMachineSelectPage(self)
+ self.lulzbotTazBedSelectPage = LulzbotTazBedSelectPage(self)
+ self.lulzbotTazSelectPage = LulzbotTazSelectPage(self)
+ self.lulzbotTaz6SelectPage = LulzbotTaz6SelectPage(self)
+ self.lulzbotTaz6ToolheadPage = LulzbotTaz6ToolheadSelectPage(self)
wx.wizard.WizardPageSimple.Chain(self.lulzbotMachineSelectPage, self.lulzbotMiniToolheadPage)
- wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotFirmwarePage)
- wx.wizard.WizardPageSimple.Chain(self.lulzbotFirmwarePage, self.lulzbotReadyPage)
+ wx.wizard.WizardPageSimple.Chain(self.lulzbotMiniToolheadPage, self.lulzbotReadyPage)
wx.wizard.WizardPageSimple.Chain(self.lulzbotTazHotendPage, self.lulzbotTazToolheadPage)
wx.wizard.WizardPageSimple.Chain(self.machineSelectPage, self.ultimakerSelectParts)
wx.wizard.WizardPageSimple.Chain(self.ultimakerSelectParts, self.ultimakerFirmwareUpgradePage)
self.FindWindowById(wx.ID_BACKWARD).Enable()
else:
self.FindWindowById(wx.ID_BACKWARD).Disable()
+ if hasattr(e.GetPage(), 'OnPageShown'):
+ e.GetPage().OnPageShown()
def OnCancel(self, e):
new_machine_index = int(profile.getPreferenceFloat('active_machine'))