From 0c786da51caa0c4d83b7b72d16f983abe8987840 Mon Sep 17 00:00:00 2001 From: Nutz95 Date: Tue, 16 Jun 2015 16:17:06 +0200 Subject: [PATCH] Add support For Scalar M and Scalar XL printers --- Cura/gui/configWizard.py | 223 +++++++++++++++++++++++++ Cura/gui/sceneView.py | 6 + resources/meshes/ScalarM_platform.stl | Bin 0 -> 83984 bytes resources/meshes/ScalarXL_platform.stl | Bin 0 -> 84484 bytes 4 files changed, 229 insertions(+) create mode 100644 resources/meshes/ScalarM_platform.stl create mode 100644 resources/meshes/ScalarXL_platform.stl diff --git a/Cura/gui/configWizard.py b/Cura/gui/configWizard.py index 1956c9712..4e09db50d 100644 --- a/Cura/gui/configWizard.py +++ b/Cura/gui/configWizard.py @@ -431,6 +431,10 @@ def __init__(self, parent): self.LulzbotTazRadio.Bind(wx.EVT_RADIOBUTTON, self.OnLulzbotSelect) self.LulzbotMiniRadio = self.AddRadioButton("Lulzbot Mini") self.LulzbotMiniRadio.Bind(wx.EVT_RADIOBUTTON, self.OnLulzbotSelect) + self.ScalarMRadio = self.AddRadioButton("Scalar M") + self.ScalarMRadio.Bind(wx.EVT_RADIOBUTTON, self.OnScalarSelect) + self.ScalarXLRadio = self.AddRadioButton("Scalar XL") + self.ScalarXLRadio.Bind(wx.EVT_RADIOBUTTON, self.OnScalarSelect) self.OtherRadio = self.AddRadioButton(_("Other (Ex: RepRap, MakerBot, Witbox)")) self.OtherRadio.Bind(wx.EVT_RADIOBUTTON, self.OnOtherSelect) self.AddSeperator() @@ -455,6 +459,9 @@ def OnPrintrbotSelect(self, e): def OnLulzbotSelect(self, e): wx.wizard.WizardPageSimple.Chain(self, self.GetParent().lulzbotReadyPage) + def OnScalarSelect(self, e): + wx.wizard.WizardPageSimple.Chain(self, self.GetParent().scalarReadyPage) + def OnOtherSelect(self, e): wx.wizard.WizardPageSimple.Chain(self, self.GetParent().otherMachineSelectPage) @@ -550,6 +557,214 @@ def StoreData(self): 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') + elif self.ScalarMRadio.GetValue() or self.ScalarXLRadio.GetValue(): + if self.ScalarMRadio.GetValue(): + profile.putMachineSetting('machine_name', 'Scalar M') + profile.putMachineSetting('machine_type', 'Scalar M') + profile.putMachineSetting('machine_width', '300') + profile.putMachineSetting('machine_depth', '220') + profile.putMachineSetting('machine_height', '250') + profile.putMachineSetting('extruder_amount', '1') + profile.putProfileSetting('layer_height', '0.15') + profile.putProfileSetting('wall_thickness', '1.2') + profile.putProfileSetting('nozzle_size', '0.4') + profile.putProfileSetting('wall_thickness', '1.2') + profile.putProfileSetting('print_speed', '50') + profile.putProfileSetting('print_temperature', '205') + profile.putProfileSetting('print_bed_temperature', '60') + profile.putProfileSetting('retraction_speed', '40') + profile.putProfileSetting('retraction_amount', '10') + profile.putProfileSetting('travel_speed', '100') + profile.putProfileSetting('solidarea_speed', '40') + profile.putProfileSetting('inset0_speed', '40') + profile.putProfileSetting('insetx_speed', '45') + profile.putProfileSetting('skirt_line_count', '3') + profile.putProfileSetting('fan_speed', '80') + profile.putProfileSetting('fan_speed_max', '80') + else: + profile.putMachineSetting('machine_name', 'Scalar XL') + profile.putMachineSetting('machine_type', 'Scalar XL') + profile.putMachineSetting('machine_width', '435') + profile.putMachineSetting('machine_depth', '320') + profile.putMachineSetting('machine_height', '350') + profile.putMachineSetting('extruder_amount', '1') + profile.putProfileSetting('layer_height', '0.2') + profile.putProfileSetting('nozzle_size', '0.6') + profile.putProfileSetting('wall_thickness', '1.2') + profile.putProfileSetting('print_speed', '50') + profile.putProfileSetting('print_temperature', '210') + profile.putProfileSetting('print_bed_temperature', '60') + profile.putProfileSetting('retraction_speed', '40') + profile.putProfileSetting('retraction_amount', '2.5') + profile.putProfileSetting('travel_speed', '80') + profile.putProfileSetting('solidarea_speed', '40') + profile.putProfileSetting('inset0_speed', '40') + profile.putProfileSetting('insetx_speed', '40') + profile.putProfileSetting('skirt_line_count', '2') + profile.putProfileSetting('fan_speed', '80') + profile.putProfileSetting('fan_speed_max', '80') + profile.putMachineSetting('has_heated_bed', 'True') + profile.putMachineSetting('gcode_flavor', 'RepRap (Marlin/Sprinter)') + profile.putMachineSetting('serial_baud', '115200') + profile.putMachineSetting('machine_center_is_zero', 'False') + profile.putProfileSetting('retraction_enable', 'True') + profile.putProfileSetting('solid_layer_thickness', '1') + profile.putProfileSetting('fill_density', '20') + profile.putProfileSetting('filament_diameter', '3') + profile.putProfileSetting('bottom_thickness', '0.2') + profile.putProfileSetting('bottom_layer_speed', '20') + profile.putProfileSetting('infill_speed', '0.0') + profile.putProfileSetting('cool_min_layer_time', '10') + profile.putProfileSetting('fan_enabled', 'True') + profile.putProfileSetting('solid_top', 'True') + profile.putProfileSetting('solid_bottom', 'True') + profile.putProfileSetting('perimeter_before_infill', 'False') + profile.setAlterationFile('start.gcode', """;Sliced at: {day} {date} {time} +;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density} +;Print time: {print_time} +;Filament used: {filament_amount}m {filament_weight}g +;Filament cost: {filament_cost} +;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line +;M109 S{print_temperature} ;Uncomment to add your own temperature line +G21 ;metric values +G90 ;absolute positioning +M82 ;set extruder to absolute mode +M107 ;start with the fan off +G28 +G29 ;Run the auto bed leveling +G1 Z15.0 F{travel_speed} ;move the platform down 15mm +G92 E0 ;zero the extruded length +G1 F200 E10 ;extrude 3mm of feed stock +G92 E0 ;zero the extruded length again +G1 F{travel_speed} +;Put printing message on LCD screen +M117 Printing... +""") + profile.setAlterationFile('end.gcode', """;;End GCode +M104 S0 ;extruder heater off +M140 S0 ;heated bed heater off (if you have it) +G91 ;relative positioning +G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure +G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more +G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way +M84 ;steppers off +G90 ;absolute positioning +;{profile_string} +;Sound Notification +M300 S1567 P267 +M300 S0 P133 +M300 S1567 P267 +M300 S0 P133 +M300 S1567 P267 +M300 S0 P133 +M300 S1244 P200 +M300 S0 P66 +M300 S932 P100 +M300 S1567 P267 +M300 S0 P133 +M300 S1244 P200 +M300 S0 P66 +M300 S932 P100 +M300 S1567 P535 +M300 S0 P267 +M300 S0 P66 +M300 S2349 P267 +M300 S0 P133 +M300 S2349 P267 +M300 S0 P133 +M300 S2349 P267 +M300 S0 P133 +M300 S2489 P200 +M300 S0 P66 +M300 S932 P100 +M300 S1479 P267 +M300 S0 P133 +M300 S1244 P200 +M300 S0 P66 +M300 S932 P100 +M300 S1567 P535 +M300 S0 P267 +M300 S0 P66 +M300 S3135 P267 +M300 S0 P133 +M300 S1567 P200 +M300 S0 P66 +M300 S1567 P100 +M300 S3135 P267 +M300 S0 P133 +M300 S2959 P200 +M300 S0 P66 +M300 S2793 P100 +M300 S2637 P100 +M300 S2489 P100 +M300 S2637 P133 +M300 S0 P267 +M300 S1661 P133 +M300 S0 P66 +M300 S2217 P267 +M300 S0 P133 +M300 S2093 P200 +M300 S0 P66 +M300 S987 P100 +M300 S932 P100 +M300 S880 P100 +M300 S932 P133 +M300 S0 P267 +M300 S1244 P133 +M300 S0 P66 +M300 S1479 P267 +M300 S0 P133 +M300 S1244 P200 +M300 S0 P66 +M300 S1567 P100 +M300 S932 P267 +M300 S0 P133 +M300 S1567 P200 +M300 S0 P66 +M300 S932 P100 +M300 S2349 P535 +M300 S0 P267 +M300 S0 P66 +M300 S3135 P267 +M300 S0 P133 +M300 S1567 P200 +M300 S0 P66 +M300 S1567 P100 +M300 S3135 P267 +M300 S0 P133 +M300 S2959 P200 +M300 S0 P66 +M300 S2793 P100 +M300 S2637 P100 +M300 S2489 P100 +M300 S2637 P133 +M300 S0 P267 +M300 S1661 P133 +M300 S0 P66 +M300 S2217 P267 +M300 S0 P133 +M300 S2093 P200 +M300 S0 P66 +M300 S987 P100 +M300 S932 P100 +M300 S880 P100 +M300 S932 P133 +M300 S0 P267 +M300 S1244 P133 +M300 S0 P66 +M300 S1479 P267 +M300 S0 P133 +M300 S1244 P200 +M300 S0 P66 +M300 S1567 P100 +M300 S1567 P267 +M300 S0 P133 +M300 S1244 P200 +M300 S0 P66 +M300 S932 P100 +M300 S1567 P535 +""") + else: profile.putMachineSetting('machine_width', '80') profile.putMachineSetting('machine_depth', '80') @@ -1028,6 +1243,13 @@ def __init__(self, parent): self.AddText(_('Cura is now ready to be used with your Lulzbot.')) self.AddSeperator() +class ScalarReadyPage(InfoPage): + def __init__(self, parent): + super(ScalarReadyPage, self).__init__(parent, _("Scalar M/XL")) + self.AddText(_('Cura is now ready to be used with your Scalar M/XL 3D printer.')) + self.AddSeperator() + + class ConfigWizard(wx.wizard.Wizard): def __init__(self, addNew = False): super(ConfigWizard, self).__init__(None, -1, _("Configuration Wizard")) @@ -1056,6 +1278,7 @@ def __init__(self, addNew = False): self.ultimaker2ReadyPage = Ultimaker2ReadyPage(self) self.lulzbotReadyPage = LulzbotReadyPage(self) + self.scalarReadyPage = ScalarReadyPage(self) wx.wizard.WizardPageSimple.Chain(self.firstInfoPage, self.machineSelectPage) #wx.wizard.WizardPageSimple.Chain(self.machineSelectPage, self.ultimaker2ReadyPage) diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 8d0d87816..3255a6851 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -1356,6 +1356,12 @@ def _drawMachine(self): elif machine_type == 'Witbox': filename = resources.getPathForMesh('Witbox_platform.stl') offset = [0,-37,145] + elif machine_type == 'Scalar M': + filename = resources.getPathForMesh('ScalarM_platform.stl') + offset = [107,-150,3.6] + elif machine_type == 'Scalar XL': + filename = resources.getPathForMesh('ScalarXL_platform.stl') + offset = [217,160,18] if filename is not None: meshes = meshLoader.loadMeshes(filename) diff --git a/resources/meshes/ScalarM_platform.stl b/resources/meshes/ScalarM_platform.stl new file mode 100644 index 0000000000000000000000000000000000000000..7be2254dce26a6bf56ce8cc3db26b4d9f1383c88 GIT binary patch literal 83984 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 literal 0 HcmV?d00001 diff --git a/resources/meshes/ScalarXL_platform.stl b/resources/meshes/ScalarXL_platform.stl new file mode 100644 index 0000000000000000000000000000000000000000..1ec71088f7f6708aa926fb4430feeb076f0a6445 GIT binary patch literal 84484 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 xLf0hlJy