diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-12-16 20:08:00 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-12-16 20:16:21 -0500 |
commit | f4c4de1a24650145688088ad612f3a342671bc74 (patch) | |
tree | fcea9e9f885b140df7b81ea412ba8d5cd0b2708a /klippy/kinematics/extruder.py | |
parent | 9654816abf5c0c5cff3bc0c65a44c3f0ebe55399 (diff) | |
download | kutter-f4c4de1a24650145688088ad612f3a342671bc74.tar.gz kutter-f4c4de1a24650145688088ad612f3a342671bc74.tar.xz kutter-f4c4de1a24650145688088ad612f3a342671bc74.zip |
extruder: Move M104/M140 commands from gcode.py to extruder.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/kinematics/extruder.py')
-rw-r--r-- | klippy/kinematics/extruder.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/klippy/kinematics/extruder.py b/klippy/kinematics/extruder.py index 82e9c235..e9978d6f 100644 --- a/klippy/kinematics/extruder.py +++ b/klippy/kinematics/extruder.py @@ -62,6 +62,8 @@ class PrinterExtruder: gcode = self.printer.lookup_object('gcode') if self.name == 'extruder': toolhead.set_extruder(self, self.extrude_pos) + gcode.register_command("M104", self.cmd_M104) + gcode.register_command("M109", self.cmd_M109) gcode.register_mux_command("SET_PRESSURE_ADVANCE", "EXTRUDER", None, self.cmd_default_SET_PRESSURE_ADVANCE, desc=self.cmd_SET_PRESSURE_ADVANCE_help) @@ -87,7 +89,7 @@ class PrinterExtruder: self.pressure_advance = pressure_advance self.pressure_advance_smooth_time = smooth_time def get_status(self, eventtime): - return dict(self.get_heater().get_status(eventtime), + return dict(self.heater.get_status(eventtime), pressure_advance=self.pressure_advance, smooth_time=self.pressure_advance_smooth_time) def get_name(self): @@ -143,6 +145,31 @@ class PrinterExtruder: 1., pressure_advance, 0., start_v, cruise_v, accel) self.extrude_pos = move.end_pos[3] + def cmd_M104(self, params, wait=False): + # Set Extruder Temperature + toolhead = self.printer.lookup_object('toolhead') + gcode = self.printer.lookup_object('gcode') + temp = gcode.get_float('S', params, 0.) + if 'T' in params: + index = gcode.get_int('T', params, minval=0) + section = 'extruder' + if index: + section = 'extruder%d' % (index,) + extruder = self.printer.lookup_object(section, None) + if extruder is None: + if temp <= 0.: + return + raise gcode.error("Extruder not configured") + else: + extruder = toolhead.get_extruder() + print_time = toolhead.get_last_move_time() + heater = extruder.get_heater() + heater.set_temp(print_time, temp) + if wait and temp: + gcode.wait_for_temperature(heater) + def cmd_M109(self, params): + # Set Extruder Temperature and Wait + self.cmd_M104(params, wait=True) cmd_SET_PRESSURE_ADVANCE_help = "Set pressure advance parameters" def cmd_default_SET_PRESSURE_ADVANCE(self, params): extruder = self.printer.lookup_object('toolhead').get_extruder() |