コード例 #1
0
 def _probe(self, speed):
     toolhead = self.printer.lookup_object('toolhead')
     curtime = self.printer.get_reactor().monotonic()
     if 'z' not in toolhead.get_status(curtime)['homed_axes']:
         raise self.printer.command_error("Must home before probe")
     homing_state = homing.Homing(self.printer)
     pos = toolhead.get_position()
     pos[2] = self.z_position
     endstops = [(self.mcu_probe, "probe")]
     verify = self.printer.get_start_args().get('debugoutput') is None
     try:
         homing_state.homing_move(pos,
                                  endstops,
                                  speed,
                                  probe_pos=True,
                                  verify_movement=verify)
     except self.printer.command_error as e:
         reason = str(e)
         if "Timeout during endstop homing" in reason:
             reason += HINT_TIMEOUT
         raise self.printer.command_error(reason)
     pos = toolhead.get_position()
     self.gcode.respond_info("probe at %.3f,%.3f is z=%.6f" %
                             (pos[0], pos[1], pos[2]))
     return pos[:3]
コード例 #2
0
 def _home_axis(self, axis):
     homing_state = homing.Homing(self.selector_tool)
     homing_state.set_no_verify_retract()
     try:
         homing_state.home_axes(axis)
     except homing.EndstopError as e:
         # TODO: Instead of responding with an error
         # Give user a chance to recover
         self.gcode.respond_error(str(e))
コード例 #3
0
ファイル: probe.py プロジェクト: Re-D-Bot/klipper
 def cmd_PROBE(self, params):
     toolhead = self.printer.lookup_object('toolhead')
     homing_state = homing.Homing(toolhead)
     pos = toolhead.get_position()
     pos[2] = self.z_position
     try:
         homing_state.homing_move(pos, [(self.mcu_probe, "probe")],
                                  self.speed,
                                  probe_pos=True)
     except homing.EndstopError as e:
         raise self.gcode.error(str(e))
     self.gcode.reset_last_position()
コード例 #4
0
 def cmd_G28(self, gcmd):
     # Move to origin
     axes = []
     for pos, axis in enumerate('XYZ'):
         if gcmd.get(axis, None) is not None:
             axes.append(pos)
     if not axes:
         axes = [0, 1, 2]
     homing_state = homing.Homing(self.printer)
     homing_state.home_axes(axes)
     for axis in homing_state.get_axes():
         self.base_position[axis] = self.homing_position[axis]
コード例 #5
0
 def cmd_TRAM_Z(self, params):
     if self.z_rail is None:
         self.gcode.respond_info("Unable to locate z-rail, aborting")
         return
     toolhead = self.printer.lookup_object('toolhead')
     z_tmc2130 = self.printer.lookup_object('tmc2130 stepper_z')
     event_time = self.reactor.monotonic()
     status = toolhead.get_status(event_time)
     if status['status'] == "Printing":
         self.gcode.respond_info("Cannot Tram during a print, aborting")
         return
     if self.tmc_z_endstop is None:
         # TODO: Already Using TMC to home.  Just homing max, home
         # to top, move up 10mm?
         return
     homing_max = self.z_rail.position_max
     speed = self.z_rail.homing_speed
     self.z_rail.position_max = 230.
     cur_pos = toolhead.get_position()
     start_pos = list(cur_pos)
     move_pos = list(cur_pos)
     start_pos[2] = self.z_rail.position_min
     move_pos[2] = 220.0
     toolhead.set_position(start_pos, homing_axes=[2])
     move_d = abs(220.0 - self.z_rail.position_min)
     est_steps = sum(
         [move_d / s.get_step_dist() for s in self.z_rail.get_steppers()])
     dwell_t = est_steps * homing.HOMING_STEP_DELAY
     home = homing.Homing(self.printer)
     try:
         home.homing_move(move_pos, [self.tmc_z_endstop],
                          speed,
                          dwell_t=dwell_t)
     except homing.EndstopError as e:
         reason = str(e)
         raise self.gcode.error(reason)
     toolhead.wait_moves()
     if self.tram_current is not None:
         z_tmc2130.set_current_regs(self.tram_current,
                                    z_tmc2130.hold_current)
     # Move up 10mm for tramming
     next_pos = toolhead.get_position()
     next_pos[2] += 10
     toolhead.move(next_pos, 10.)
     next_pos[2] -= 50
     toolhead.move(next_pos, 10.)
     toolhead.wait_moves()
     toolhead.motor_off()
     if self.tram_current is not None:
         z_tmc2130.set_current_regs(z_tmc2130.run_current,
                                    z_tmc2130.hold_current)
     self.z_rail.position_max = homing_max
コード例 #6
0
 def cmd_PROBE(self, params):
     toolhead = self.printer.lookup_object('toolhead')
     homing_state = homing.Homing(toolhead)
     pos = toolhead.get_position()
     pos[2] = self.z_position
     try:
         homing_state.homing_move(
             pos, [(self.mcu_probe, "probe")], self.speed, probe_pos=True)
     except homing.EndstopError as e:
         reason = str(e)
         if "Timeout during endstop homing" in reason:
             reason += HINT_TIMEOUT
         raise self.gcode.error(reason)
     self.gcode.reset_last_position()
コード例 #7
0
 def cmd_G28(self, params):
     # Move to origin
     axes = []
     for axis in 'XYZ':
         if axis in params:
             axes.append(self.axis2pos[axis])
     if not axes:
         axes = [0, 1, 2]
     homing_state = homing.Homing(self.printer)
     if self.is_fileinput:
         homing_state.set_no_verify_retract()
     homing_state.home_axes(axes)
     for axis in homing_state.get_axes():
         self.base_position[axis] = self.homing_position[axis]
     self.reset_last_position()
コード例 #8
0
ファイル: gcode.py プロジェクト: yyxp1989/klipper
 def cmd_G28(self, gcmd):
     # Move to origin
     axes = []
     for pos, axis in enumerate('XYZ'):
         if gcmd.get(axis, None) is not None:
             axes.append(pos)
     if not axes:
         axes = [0, 1, 2]
     homing_state = homing.Homing(self.printer)
     if self.is_fileinput:
         homing_state.set_no_verify_retract()
     homing_state.home_axes(axes)
     for axis in homing_state.get_axes():
         self.base_position[axis] = self.homing_position[axis]
     self.reset_last_position()
コード例 #9
0
ファイル: probe.py プロジェクト: jonsole/klipper-usb-sam4e
 def cmd_PROBE(self, params):
     toolhead = self.printer.lookup_object('toolhead')
     homing_state = homing.Homing(toolhead)
     pos = toolhead.get_position()
     pos[2] = self.z_position
     try:
         homing_state.probing_move(pos, self.mcu_probe, self.speed)
     except homing.EndstopError as e:
         reason = str(e)
         if "Timeout during endstop homing" in reason:
             reason += HINT_TIMEOUT
         raise self.gcode.error(reason)
     pos = toolhead.get_position()
     self.gcode.respond_info("probe at %.3f,%.3f is z=%.6f" %
                             (pos[0], pos[1], pos[2]))
     self.gcode.reset_last_position()
コード例 #10
0
ファイル: tram_z.py プロジェクト: PrusaOwners/klipper
 def cmd_TRAM_Z(self, gcmd):
     if not self.enabled:
         gcmd.respond_info("TRAM_Z setup unsuccessful, aborting")
         return
     reactor = self.printer.get_reactor()
     toolhead = self.printer.lookup_object('toolhead')
     idle_timeout = self.printer.lookup_object('idle_timeout')
     z_tmc2130 = self.printer.lookup_object('tmc2130 stepper_z')
     rc, hc, homing_cur = z_tmc2130.get_current()
     event_time = reactor.monotonic()
     status = idle_timeout.get_status(event_time)
     if status['state'] == "Printing":
         gcmd.respond_info("Cannot Tram during a print, aborting")
         return
     if self.tmc_z_endstop is None:
         # TODO: Already Using TMC to home.  Just homing max, home
         # to top, move up 10mm?
         return
     homing_max = self.z_rail.position_max
     speed = self.z_rail.homing_speed
     self.z_rail.position_max = 230.
     cur_pos = toolhead.get_position()
     start_pos = list(cur_pos)
     move_pos = list(cur_pos)
     start_pos[2] = self.z_rail.position_min
     move_pos[2] = 220.0
     toolhead.set_position(start_pos, homing_axes=[2])
     home = homing.Homing(self.printer)
     try:
         home.homing_move(move_pos, [self.tmc_z_endstop], speed)
     except homing.EndstopError as e:
         reason = str(e)
         raise gcmd.error(reason)
     toolhead.wait_moves()
     if self.tram_current is not None:
         z_tmc2130.set_current(self.tram_current, hc)
     # Move up 10mm for tramming
     next_pos = toolhead.get_position()
     next_pos[2] += 10
     toolhead.move(next_pos, 10.)
     next_pos[2] -= 50
     toolhead.move(next_pos, 10.)
     toolhead.wait_moves()
     self.gcode.run_script_from_command("M84")
     if self.tram_current is not None:
         z_tmc2130.set_current(rc, hc)
     self.z_rail.position_max = homing_max
コード例 #11
0
 def cmd_G28(self, params):
     # Move to origin
     axes = []
     for axis in 'XYZ':
         if axis in params:
             axes.append(self.axis2pos[axis])
     if not axes:
         axes = [0, 1, 2]
     homing_state = homing.Homing(self.toolhead, axes)
     if self.is_fileinput:
         homing_state.set_no_verify_retract()
     try:
         self.toolhead.home(homing_state)
     except homing.EndstopError, e:
         self.toolhead.motor_off()
         self.respond_error(str(e))
         return
コード例 #12
0
ファイル: gcode.py プロジェクト: luggi/klipper
 def cmd_G28(self, params):
     # Move to origin
     axes = []
     for axis in 'XYZ':
         if axis in params:
             axes.append(self.axis2pos[axis])
     if not axes:
         axes = [0, 1, 2]
     homing_state = homing.Homing(self.toolhead)
     if self.is_fileinput:
         homing_state.set_no_verify_retract()
     try:
         homing_state.home_axes(axes)
     except homing.EndstopError as e:
         raise error(str(e))
     for axis in homing_state.get_axes():
         self.base_position[axis] = self.homing_position[axis]
     self.reset_last_position()
コード例 #13
0
ファイル: probe.py プロジェクト: vtuan10/klipper
 def _probe(self, speed):
     toolhead = self.printer.lookup_object('toolhead')
     homing_state = homing.Homing(self.printer)
     pos = toolhead.get_position()
     pos[2] = self.z_position
     endstops = [(self.mcu_probe, "probe")]
     verify = self.printer.get_start_args().get('debugoutput') is None
     try:
         homing_state.homing_move(pos, endstops, speed,
                                  probe_pos=True, verify_movement=verify)
     except homing.EndstopError as e:
         reason = str(e)
         if "Timeout during endstop homing" in reason:
             reason += HINT_TIMEOUT
         raise self.gcode.error(reason)
     pos = toolhead.get_position()
     self.gcode.respond_info("probe at %.3f,%.3f is z=%.6f" % (
         pos[0], pos[1], pos[2]))
     self.gcode.reset_last_position()
コード例 #14
0
ファイル: gcode.py プロジェクト: mhv-shared/klipper
 def cmd_G28(self, params):
     # Move to origin
     axes = []
     for axis in 'XYZ':
         if axis in params:
             axes.append(self.axis2pos[axis])
     if not axes:
         axes = [0, 1, 2]
     homing_state = homing.Homing(self.toolhead, axes)
     if self.is_fileinput:
         homing_state.set_no_verify_retract()
     try:
         self.toolhead.home(homing_state)
     except homing.EndstopError as e:
         self.toolhead.motor_off()
         self.respond_error(str(e))
         return
     newpos = self.toolhead.get_position()
     for axis in homing_state.get_axes():
         self.last_position[axis] = newpos[axis]
         self.base_position[axis] = -self.homing_add[axis]
コード例 #15
0
ファイル: probe.py プロジェクト: HWiese1980/klipper
    def _probe(self, speed):
        pheater = self.printer.lookup_object('heater')
        try:
            heater_bed = pheater.lookup_heater("heater_bed")
        except self.printer.config_error as e:
            heater_bed = None

        if heater_bed is not None and self.disable_bed_heater:
            heated_bed_target_temp = heater_bed.target_temp
            self.gcode.respond_info("Heated bed target temp before probe" +
                                    " run: %.1f degrees"
                                    % heated_bed_target_temp)
            heater_bed.set_temp(0., 0.)

        toolhead = self.printer.lookup_object('toolhead')
        homing_state = homing.Homing(self.printer)
        pos = toolhead.get_position()
        pos[2] = self.z_position
        endstops = [(self.mcu_probe, "probe")]
        verify = self.printer.get_start_args().get('debugoutput') is None
        try:
            homing_state.homing_move(pos, endstops, speed,
                                     probe_pos=True, verify_movement=verify)
        except homing.CommandError as e:
            reason = str(e)
            if "Timeout during endstop homing" in reason:
                reason += HINT_TIMEOUT
            raise homing.CommandError(reason)
        pos = toolhead.get_position()
        self.gcode.respond_info("probe at %.3f,%.3f is z=%.6f" % (
            pos[0], pos[1], pos[2]))
        self.gcode.reset_last_position()

        if heater_bed is not None and self.disable_bed_heater:
            heater_bed.set_temp(0., heated_bed_target_temp)
            self.gcode.respond_info("Heater bed reset to %.1f degrees"
                                    % heated_bed_target_temp)

        return pos[:3]