aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/kinematics/extruder.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-11-24 19:43:50 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-12-10 14:23:13 -0500
commitc06618193d3c58521e45a0c2241278268664030e (patch)
tree5526bdb8ef874caba3078f1b85c10580ee914189 /klippy/kinematics/extruder.py
parentab2d302b7edfe22c7bf40392e1a29fb4dcbb154d (diff)
downloadkutter-c06618193d3c58521e45a0c2241278268664030e.tar.gz
kutter-c06618193d3c58521e45a0c2241278268664030e.tar.xz
kutter-c06618193d3c58521e45a0c2241278268664030e.zip
extruder: Add an ACTIVATE_EXTRUDER command
Add support for an extended g-code command to change the currently active extruder. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/kinematics/extruder.py')
-rw-r--r--klippy/kinematics/extruder.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/klippy/kinematics/extruder.py b/klippy/kinematics/extruder.py
index b55e6f0e..78e8dc10 100644
--- a/klippy/kinematics/extruder.py
+++ b/klippy/kinematics/extruder.py
@@ -73,6 +73,9 @@ class PrinterExtruder:
gcode.register_mux_command("SET_PRESSURE_ADVANCE", "EXTRUDER",
self.name, self.cmd_SET_PRESSURE_ADVANCE,
desc=self.cmd_SET_PRESSURE_ADVANCE_help)
+ gcode.register_mux_command("ACTIVATE_EXTRUDER", "EXTRUDER",
+ self.name, self.cmd_ACTIVATE_EXTRUDER,
+ desc=self.cmd_ACTIVATE_EXTRUDER_help)
def update_move_time(self, flush_time):
self.trapq_free_moves(self.trapq, flush_time)
def _set_pressure_advance(self, pressure_advance, smooth_time):
@@ -168,6 +171,16 @@ class PrinterExtruder:
pressure_advance, smooth_time))
self.printer.set_rollover_info(self.name, "%s: %s" % (self.name, msg))
gcode.respond_info(msg, log=False)
+ cmd_ACTIVATE_EXTRUDER_help = "Change the active extruder"
+ def cmd_ACTIVATE_EXTRUDER(self, params):
+ gcode = self.printer.lookup_object('gcode')
+ toolhead = self.printer.lookup_object('toolhead')
+ if toolhead.get_extruder() is self:
+ gcode.respond_info("Extruder %s already active" % (self.name))
+ return
+ gcode.respond_info("Activating extruder %s" % (self.name))
+ toolhead.set_extruder(self, self.extrude_pos)
+ self.printer.send_event("extruder:activate_extruder")
# Dummy extruder class used when a printer has no extruder at all
class DummyExtruder: