示例#1
0
    def __init_path_planner(self):
        self.native_planner = PathPlannerNative()

        self.native_planner.initPRU(self.pru_firmware.get_firmware(0),
                                    self.pru_firmware.get_firmware(1))

        self.native_planner.setPrintAcceleration(
            tuple([float(self.printer.acceleration[i]) for i in range(3)]))
        self.native_planner.setTravelAcceleration(
            tuple([float(self.printer.acceleration[i]) for i in range(3)]))
        self.native_planner.setAxisStepsPerMeter(
            tuple([long(Path.steps_pr_meter[i]) for i in range(3)]))
        self.native_planner.setMaxFeedrates(
            tuple([float(Path.max_speeds[i]) for i in range(3)]))
        self.native_planner.setMaxJerk(self.printer.maxJerkXY / 1000.0,
                                       self.printer.maxJerkZ / 1000.0)

        #Setup the extruders
        for i in range(Path.NUM_AXES - 3):
            e = self.native_planner.getExtruder(i)
            e.setMaxFeedrate(Path.max_speeds[i + 3])
            e.setPrintAcceleration(self.printer.acceleration[i + 3])
            e.setTravelAcceleration(self.printer.acceleration[i + 3])
            e.setMaxStartFeedrate(self.printer.maxJerkEH / 1000)
            e.setAxisStepsPerMeter(long(Path.steps_pr_meter[i + 3]))

        self.native_planner.setExtruder(0)

        self.native_planner.runThread()
示例#2
0
    def __init_path_planner(self):
        self.native_planner = PathPlannerNative(
            int(self.printer.move_cache_size))

        fw0 = self.pru_firmware.get_firmware(0)
        fw1 = self.pru_firmware.get_firmware(1)

        if fw0 is None or fw1 is None:
            return

        self.native_planner.initPRU(fw0, fw1)

        self.native_planner.setAxisStepsPerMeter(
            tuple(self.printer.steps_pr_meter))
        self.native_planner.setMaxSpeeds(tuple(self.printer.max_speeds))
        self.native_planner.setMinSpeeds(tuple(self.printer.min_speeds))
        self.native_planner.setAcceleration(tuple(self.printer.acceleration))
        self.native_planner.setJerks(tuple(self.printer.jerks))
        self.native_planner.setPrintMoveBufferWait(
            int(self.printer.print_move_buffer_wait))
        self.native_planner.setMinBufferedMoveTime(
            int(self.printer.min_buffered_move_time))
        self.native_planner.setMaxBufferedMoveTime(
            int(self.printer.max_buffered_move_time))
        self.native_planner.setSoftEndstopsMin(tuple(self.printer.soft_min))
        self.native_planner.setSoftEndstopsMax(tuple(self.printer.soft_max))
        self.native_planner.setBedCompensationMatrix(
            tuple(np.identity(3).ravel()))
        self.native_planner.setMaxPathLength(self.printer.max_length)
        self.native_planner.setAxisConfig(self.printer.axis_config)
        self.native_planner.delta_bot.setMainDimensions(
            Delta.Hez, Delta.L, Delta.r)
        self.native_planner.delta_bot.setEffectorOffset(
            Delta.Ae, Delta.Be, Delta.Ce)
        self.native_planner.delta_bot.setRadialError(Delta.A_radial,
                                                     Delta.B_radial,
                                                     Delta.C_radial)
        self.native_planner.delta_bot.setTangentError(Delta.A_tangential,
                                                      Delta.B_tangential,
                                                      Delta.C_tangential)
        self.native_planner.delta_bot.recalculate()
        self.configure_slaves()
        self.native_planner.setBacklashCompensation(
            tuple(self.printer.backlash_compensation))
        self.native_planner.setState(self.prev.end_pos)
        self.printer.plugins.path_planner_initialized(self)
        self.native_planner.runThread()
示例#3
0
    def __init_path_planner(self):
        self.native_planner = PathPlannerNative(
            int(self.printer.move_cache_size))

        fw0 = self.pru_firmware.get_firmware(0)
        fw1 = self.pru_firmware.get_firmware(1)

        if fw0 is None or fw1 is None:
            return

        self.native_planner.initPRU(fw0, fw1)

        self.native_planner.setPrintAcceleration(
            tuple([float(self.printer.acceleration[i]) for i in range(3)]))
        self.native_planner.setTravelAcceleration(
            tuple([float(self.printer.acceleration[i]) for i in range(3)]))
        self.native_planner.setAxisStepsPerMeter(
            tuple([long(Path.steps_pr_meter[i]) for i in range(3)]))
        self.native_planner.setMaxFeedrates(
            tuple([float(Path.max_speeds[i]) for i in range(3)]))
        self.native_planner.setMaxJerk(self.printer.maxJerkXY / 1000.0,
                                       self.printer.maxJerkZ / 1000.0)
        self.native_planner.setPrintMoveBufferWait(
            int(self.printer.print_move_buffer_wait))
        self.native_planner.setMinBufferedMoveTime(
            int(self.printer.min_buffered_move_time))
        self.native_planner.setMaxBufferedMoveTime(
            int(self.printer.max_buffered_move_time))

        #Setup the extruders
        for i in range(Path.NUM_AXES - 3):
            e = self.native_planner.getExtruder(i)
            e.setMaxFeedrate(Path.max_speeds[i + 3])
            e.setPrintAcceleration(self.printer.acceleration[i + 3])
            e.setTravelAcceleration(self.printer.acceleration[i + 3])
            e.setMaxStartFeedrate(self.printer.maxJerkEH / 1000)
            e.setAxisStepsPerMeter(long(Path.steps_pr_meter[i + 3]))
            e.setDirectionInverted(False)

        self.native_planner.setExtruder(0)
        self.native_planner.setDriveSystem(Path.axis_config)
        logging.info("Setting drive system to " + str(Path.axis_config))

        self.printer.plugins.path_planner_initialized(self)

        self.native_planner.runThread()
示例#4
0
    def __init_path_planner(self):
        self.native_planner = PathPlannerNative(int(self.printer.move_cache_size))

        fw0 = self.pru_firmware.get_firmware(0)
        fw1 = self.pru_firmware.get_firmware(1)

        if fw0 is None or fw1 is None:
            return

        self.native_planner.initPRU(fw0, fw1)
        self.native_planner.setAcceleration(tuple(Path.acceleration))
        self.native_planner.setAxisStepsPerMeter(tuple(Path.steps_pr_meter))
        self.native_planner.setMaxSpeeds(tuple(Path.max_speeds))	
        self.native_planner.setMinSpeeds(tuple(Path.min_speeds))	
        self.native_planner.setJerks(tuple(Path.jerks))
        self.native_planner.setPrintMoveBufferWait(int(self.printer.print_move_buffer_wait))
        self.native_planner.setMinBufferedMoveTime(int(self.printer.min_buffered_move_time))
        self.native_planner.setMaxBufferedMoveTime(int(self.printer.max_buffered_move_time))
        self.printer.plugins.path_planner_initialized(self)

        self.native_planner.runThread()