mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-07 15:07:31 -06:00
Porting of Pressure Equalizer feature from Prusa Slicer 2.6.x (#2161)
* Overhang perimeter handling
Updated code to handle overhang perimeters as an overhang and not as a bridge.
* Preparing to add curled extrusions identification
* Porting curling calculations from Prusa Slier 2.6.1
* Prototype 1 - slowdown extended to detect curled edges and further reduce speed
First prototype of the code submitted.
* Working prototype - 2
Code is now finally working - external perimeters are slowed down as needed when there is likelyhood of curling up.
ToDo:
1. Reslicing the model causes the algorithm not to run - need to find where this fails to trigger the call for this.
2. Slowdown of internal perimeters not working yet.
* Updated to use overhang wall speed instead of bridging speed for this algorithm
* Fixed bug in speed calculation and tweaked parameters for high speed printer
Fixed bug in speed calculation and tweaked parameters for high speed printer
* Attempting to fix "set started" not being set
* Parameter tweak after print tests
* Fixed estimation not running when model is re-sliced.
* Removing debug printf statements and fixed threading flag.
* Fixed threading
* Parameter tweaks following print tests
* Made this as an option in the GUI
* Reintroduced handling of bridges as per original design
* UI line toggling when option makes sense to be visible.
* Fixed bug in field visibility & made it default to off
* Code optimisation
* Initial commit of code from Prusa Slicer 2.6.1
* Ported ExtrusionRole from Prusa Slicer 2.6.1
* fix compile errors
* Update GCode.hpp
* code changes to invoke pressure equalizer
* attempting to trigger pressure equalizer
(Not compiling)
* Update Fill.cpp
* Update Fill.cpp
* Pressure equaliser layer result update
* Further commits
* Merged PR https://github.com/prusa3d/PrusaSlicer/pull/9622
* First complete working version
* Update PressureEqualizer.cpp
* Implemented parameter in GUI
* Toggle fields according to compatibility
* Updated UI toggles between extrusion rate slope and arc fitting.
* Updated tooltip
* Introduced parameter smoothing segment length
This parameter influences the number of division a line will undergo in response to the requirement to adhere to the extrusion rate flow adjustment.
* Internal parameter and tool tip tweaking
* Parameter and tool tip tweaking
* Updated parameters and tooltip following testing.
* Sync PressureEq with latest PrusaSlicer
* Revert "Sync PressureEq with latest PrusaSlicer"
This reverts commit 131fb94c6b
.
---------
Co-authored-by: MGunlogson <MGunlogson@users.noreply.github.com>
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
This commit is contained in:
parent
78a8bad6f4
commit
cf846195cc
14 changed files with 824 additions and 431 deletions
|
@ -2470,29 +2470,37 @@ def = this->add("filament_loading_speed", coFloats);
|
|||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloats { 0. });
|
||||
|
||||
#ifdef HAS_PRESSURE_EQUALIZER
|
||||
//def = this->add("max_volumetric_extrusion_rate_slope_positive", coFloat);
|
||||
//def->label = L("Max volumetric slope positive");
|
||||
//def->tooltip = L("This experimental setting is used to limit the speed of change in extrusion rate. "
|
||||
// "A value of 1.8 mm³/s² ensures, that a change from the extrusion rate "
|
||||
// "of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) "
|
||||
// "to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds.");
|
||||
//def->sidetext = L("mm³/s²");
|
||||
//def->min = 0;
|
||||
//def->mode = comAdvanced;
|
||||
//def->set_default_value(new ConfigOptionFloat(0));
|
||||
|
||||
//def = this->add("max_volumetric_extrusion_rate_slope_negative", coFloat);
|
||||
//def->label = L("Max volumetric slope negative");
|
||||
//def->tooltip = L("This experimental setting is used to limit the speed of change in extrusion rate. "
|
||||
// "A value of 1.8 mm³/s² ensures, that a change from the extrusion rate "
|
||||
// "of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) "
|
||||
// "to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds.");
|
||||
//def->sidetext = L("mm³/s²");
|
||||
//def->min = 0;
|
||||
//def->mode = comAdvanced;
|
||||
//def->set_default_value(new ConfigOptionFloat(0));
|
||||
#endif /* HAS_PRESSURE_EQUALIZER */
|
||||
def = this->add("max_volumetric_extrusion_rate_slope", coFloat);
|
||||
def->label = L("Extrusion rate smoothing");
|
||||
def->tooltip = L("This parameter smooths out sudden extrusion rate changes that happen when "
|
||||
"the printer transitions from printing a high flow (high speed/larger width) "
|
||||
"extrusion to a lower flow (lower speed/smaller width) extrusion and vice versa.\n\n"
|
||||
"It defines the maximum rate by which the extruded volumetric flow in mm3/sec can change over time. "
|
||||
"Higher values mean higher extrusion rate changes are allowed, resulting in faster speed transitions.\n\n"
|
||||
"A value of 0 disables the feature. \n\n"
|
||||
"For a high speed, high flow direct drive printer (like the Bambu lab or Voron) this value is usually not needed. "
|
||||
"However it can provide some marginal benefit in certain cases where feature speeds vary greatly. For example, "
|
||||
"when there are aggressive slowdowns due to overhangs. In these cases a high value of around 300-350mm3/s2 is "
|
||||
"recommended as this allows for just enough smoothing to assist pressure advance achieve a smoother flow transition.\n\n"
|
||||
"For slower printers without pressure advance, the value should be set much lower. A value of 10-15mm3/s2 is a "
|
||||
"good starting point for direct drive extruders and 5-10mm3/s2 for Bowden style. \n\n"
|
||||
"This feature is known as Pressure Equalizer in Prusa slicer.\n\n"
|
||||
"Note: this parameter disables arc fitting.");
|
||||
def->sidetext = L("mm³/s²");
|
||||
def->min = 0;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloat(0));
|
||||
|
||||
def = this->add("max_volumetric_extrusion_rate_slope_segment_length", coInt);
|
||||
def->label = L("Smoothing segment length");
|
||||
def->tooltip = L("A lower value results in smoother extrusion rate transitions. However, this results in a significantly larger gcode file "
|
||||
"and more instructions for the printer to process. \n\n"
|
||||
"Default value of 3 works well for most cases. If your printer is stuttering, increase this value to reduce the number of adjustments made\n\n"
|
||||
"Allowed values: 1-5");
|
||||
def->min = 1;
|
||||
def->max = 5;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionInt(3));
|
||||
|
||||
def = this->add("fan_min_speed", coInts);
|
||||
def->label = L("Fan speed");
|
||||
|
@ -4962,9 +4970,6 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
|||
"acceleration", "scale", "rotate", "duplicate", "duplicate_grid",
|
||||
"bed_size",
|
||||
"print_center", "g0", "wipe_tower_per_color_wipe"
|
||||
#ifndef HAS_PRESSURE_EQUALIZER
|
||||
, "max_volumetric_extrusion_rate_slope_positive", "max_volumetric_extrusion_rate_slope_negative"
|
||||
#endif /* HAS_PRESSURE_EQUALIZER */
|
||||
// BBS
|
||||
, "support_sharp_tails","support_remove_small_overhangs", "support_with_sheath",
|
||||
"tree_support_collision_resolution", "tree_support_with_infill",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue