From 97590b8e0b6ed01f6633b7e9ff36fe203d8d65a4 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Thu, 25 Oct 2018 18:59:01 -0400 Subject: [PATCH] extruder: Don't use max_extrude_cross_section in max_extrude_only defaults Some users increase max_extrude_cross_section to avoid issues with some slicers. However, increasing that value also increases the defaults for the max_extrude_only parameters which is not obvious. Base the max_extrude_only defaults only on the configured nozzle diameter. Signed-off-by: Kevin O'Connor --- config/example.cfg | 2 +- klippy/kinematics/extruder.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/config/example.cfg b/config/example.cfg index a086977c..f0e77e50 100644 --- a/config/example.cfg +++ b/config/example.cfg @@ -120,7 +120,7 @@ filament_diameter: 3.500 # extruder motor for retractions and extrude-only moves. These # settings do not place any limit on normal printing moves. If not # specified then they are calculated to match the limit an XY -# printing move with a max_extrude_cross_section extrusion would +# printing move with a cross section of 4.0*nozzle_diameter^2 would # have. #pressure_advance: 0.0 # The amount of raw filament to push into the extruder during diff --git a/klippy/kinematics/extruder.py b/klippy/kinematics/extruder.py index c672bda2..f3821d05 100644 --- a/klippy/kinematics/extruder.py +++ b/klippy/kinematics/extruder.py @@ -23,18 +23,19 @@ class PrinterExtruder: filament_diameter = config.getfloat( 'filament_diameter', minval=self.nozzle_diameter) self.filament_area = math.pi * (filament_diameter * .5)**2 + def_max_cross_section = 4. * self.nozzle_diameter**2 + def_max_extrude_ratio = def_max_cross_section / self.filament_area max_cross_section = config.getfloat( - 'max_extrude_cross_section', 4. * self.nozzle_diameter**2 - , above=0.) + 'max_extrude_cross_section', def_max_cross_section, above=0.) self.max_extrude_ratio = max_cross_section / self.filament_area logging.info("Extruder max_extrude_ratio=%.6f", self.max_extrude_ratio) toolhead = self.printer.lookup_object('toolhead') max_velocity, max_accel = toolhead.get_max_velocity() self.max_e_velocity = config.getfloat( - 'max_extrude_only_velocity', max_velocity * self.max_extrude_ratio + 'max_extrude_only_velocity', max_velocity * def_max_extrude_ratio , above=0.) self.max_e_accel = config.getfloat( - 'max_extrude_only_accel', max_accel * self.max_extrude_ratio + 'max_extrude_only_accel', max_accel * def_max_extrude_ratio , above=0.) self.stepper.set_max_jerk(9999999.9, 9999999.9) self.max_e_dist = config.getfloat(