def get_feed_rate(self, layer_height, multiplier=None): """ Return extruder feed rate :param layer_height: layer height :param multiplier: optional multiplier :return: feed rate """ rate = utils.extrusion_feed_rate(self.nozzle, layer_height, self.filament_d) if not multiplier: return rate * self.feed_rate_multiplier return rate * self.feed_rate_multiplier * multiplier
def get_feed_length(self, move_length, layer_height, feed_multi=1.0): """ Returns the lenght of filament to extrude for given move. Values in mm. :param move_length: x/y movement length :param layer_height: layer height :param feed_multi: optional feed rate multiplier :return: extrusion feed length """ rate = utils.extrusion_feed_rate(self.extrusion_width, layer_height, self.filament_d) rate *= self.feed_rate_multiplier * feed_multi if rate > self.feed_rate_max: raise ValueError( "Feed rate too high ({}, layer h {})! Aborting.".format( rate, layer_height)) return move_length * rate