diff --git a/config/example-extras.cfg b/config/example-extras.cfg index b48ca5c9..5b8f6909 100644 --- a/config/example-extras.cfg +++ b/config/example-extras.cfg @@ -677,19 +677,6 @@ # config section should define the heater and the extruder4 section # should specify "shared_heater: extruder3". The default is to not # reuse an existing heater. -#deactivate_gcode: -# A list of G-Code commands to execute on a G-Code tool change -# command (eg, "T1") that deactivates this extruder and activates -# some other extruder. See docs/Command_Templates.md for G-Code -# format. It only makes sense to define this section on -# multi-extruder printers. The default is to not run any special -# G-Code commands on deactivation. -#activate_gcode: -# A list of G-Code commands to execute on a G-Code tool change -# command (eg, "T0") that activates this extruder. See -# docs/Command_Templates.md for G-Code format. It only makes sense -# to define this section on multi-extruder printers. The default is -# to not run any special G-Code commands on activation. # Support for cartesian printers with dual carriages on a single # axis. The active carriage is set via the SET_DUAL_CARRIAGE extended diff --git a/docs/Config_Changes.md b/docs/Config_Changes.md index 0e479ce9..51f8e3de 100644 --- a/docs/Config_Changes.md +++ b/docs/Config_Changes.md @@ -6,6 +6,12 @@ All dates in this document are approximate. # Changes +20191210: The builtin T0, T1, T2, ... commands have been removed. The +extruder activate_gcode and deactivate_gcode config options have been +removed. If these commands (and scripts) are needed then define +individual [gcode_macro T0] style macros that call the +ACTIVATE_EXTRUDER command. + 20191210: Support for the M206 command has been removed. Replace with calls to SET_GCODE_OFFSET. If support for M206 is needed, add a [gcode_macro M206] config section that calls SET_GCODE_OFFSET. (For diff --git a/docs/G-Codes.md b/docs/G-Codes.md index a7d1adcd..4ab3ffc7 100644 --- a/docs/G-Codes.md +++ b/docs/G-Codes.md @@ -9,7 +9,6 @@ Klipper supports the following standard G-Code commands: - Move to origin: `G28 [X] [Y] [Z]` - Turn off motors: `M18` or `M84` - Wait for current moves to finish: `M400` -- Select tool: `T` - Use absolute/relative distances for extrusion: `M82`, `M83` - Use absolute/relative coordinates: `G90`, `G91` - Set position: `G92 [X] [Y] [Z] [E]` @@ -44,7 +43,7 @@ If one requires a less common G-Code command then it may be possible to implement it with a custom Klipper gcode_macro (see [example-extras.cfg](https://github.com/KevinOConnor/klipper/tree/master/config/example-extras.cfg) for details). For example, one might use this to implement: `G12`, -`G29`, `G30`, `G31`, `M42`, `M80`, `M81`, etc. +`G29`, `G30`, `G31`, `M42`, `M80`, `M81`, `T1`, etc. ## G-Code SD card commands diff --git a/klippy/gcode.py b/klippy/gcode.py index 9ac7ddda..b228c499 100644 --- a/klippy/gcode.py +++ b/klippy/gcode.py @@ -433,11 +433,7 @@ class GCodeParser: if not cmd: logging.debug(params['#original']) return - if cmd[0] == 'T' and len(cmd) > 1 and cmd[1].isdigit(): - # Tn command has to be handled specially - self.cmd_Tn(params) - return - elif cmd.startswith("M117 "): + if cmd.startswith("M117 "): # Handle M117 gcode with numeric and special characters handler = self.gcode_handlers.get("M117", None) if handler is not None: @@ -448,27 +444,6 @@ class GCodeParser: # Don't warn about requests to turn off fan when fan not present return self.respond_info('Unknown command:"%s"' % (cmd,)) - def cmd_Tn(self, params): - # Select Tool - index = self.get_int('T', params, minval=0) - section = 'extruder' - if index: - section = 'extruder%d' % (index,) - new_extruder = self.printer.lookup_object(section, None) - if new_extruder is None: - raise self.error("Unknown extruder %d on Tn command" % (index,)) - old_extruder = self.toolhead.get_extruder() - if old_extruder is new_extruder: - return - self.run_script_from_command(old_extruder.get_activate_gcode(False)) - print_time = self.toolhead.get_last_move_time() - old_extruder.set_active(print_time, False) - extrude_pos = new_extruder.set_active(print_time, True) - self.toolhead.set_extruder(new_extruder, extrude_pos) - self.reset_last_position() - self.extrude_factor = 1. - self.base_position[3] = self.last_position[3] - self.run_script_from_command(new_extruder.get_activate_gcode(True)) def _cmd_mux(self, params): key, values = self.mux_commands[params['#command']] if None in values: diff --git a/klippy/kinematics/extruder.py b/klippy/kinematics/extruder.py index 78e8dc10..82e9c235 100644 --- a/klippy/kinematics/extruder.py +++ b/klippy/kinematics/extruder.py @@ -41,11 +41,6 @@ class PrinterExtruder: 'max_extrude_only_distance', 50., minval=0.) self.instant_corner_v = config.getfloat( 'instantaneous_corner_velocity', 1., minval=0.) - gcode_macro = self.printer.try_load_module(config, 'gcode_macro') - self.activate_gcode = gcode_macro.load_template( - config, 'activate_gcode', '') - self.deactivate_gcode = gcode_macro.load_template( - config, 'deactivate_gcode', '') self.pressure_advance = self.pressure_advance_smooth_time = 0. pressure_advance = config.getfloat('pressure_advance', 0., minval=0.) smooth_time = config.getfloat('pressure_advance_smooth_time', @@ -99,12 +94,6 @@ class PrinterExtruder: return self.name def get_heater(self): return self.heater - def set_active(self, print_time, is_active): - return self.extrude_pos - def get_activate_gcode(self, is_active): - if is_active: - return self.activate_gcode.render() - return self.deactivate_gcode.render() def stats(self, eventtime): return self.heater.stats(eventtime) def check_move(self, move): @@ -184,8 +173,6 @@ class PrinterExtruder: # Dummy extruder class used when a printer has no extruder at all class DummyExtruder: - def set_active(self, print_time, is_active): - return 0. def update_move_time(self, flush_time): pass def check_move(self, move): diff --git a/test/klippy/dual_carriage.cfg b/test/klippy/dual_carriage.cfg index fff7673a..a9d3746e 100644 --- a/test/klippy/dual_carriage.cfg +++ b/test/klippy/dual_carriage.cfg @@ -55,10 +55,16 @@ pid_Ki: 1.08 pid_Kd: 114 min_temp: 0 max_temp: 250 -deactivate_gcode: + +[gcode_macro PARK_extruder0] +gcode: G90 G1 X0 -activate_gcode: + +[gcode_macro T0] +gcode: + PARK_{printer.toolhead.extruder} + ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=0 [extruder1] @@ -77,12 +83,18 @@ pid_Ki: 1.08 pid_Kd: 114 min_temp: 0 max_temp: 250 -deactivate_gcode: + +[gcode_macro PARK_extruder1] +gcode: SET_SERVO SERVO=my_servo angle=100 G90 G1 X200 -activate_gcode: + +[gcode_macro T1] +gcode: + PARK_{printer.toolhead.extruder} SET_SERVO SERVO=my_servo angle=50 + ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 [servo my_servo]