Bug: Fix retraction issues with PA pattern calibration (#3314)

* Attempt to fix retraction issues with PA pattern calibration

* PA pattern test fix - retract and wipe on layer change

* Naming convention

* fix crash
This commit is contained in:
Ioannis Giannakas 2024-01-09 15:55:11 +02:00 committed by GitHub
parent 1067fc2649
commit 0bf78f8e9e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 2 deletions

View file

@ -295,7 +295,7 @@ static std::vector<Vec2d> get_path_of_change_filament(const Print& print)
: gcodegen.config().nozzle_temperature.get_at(gcodegen.writer().extruder()->id()); : gcodegen.config().nozzle_temperature.get_at(gcodegen.writer().extruder()->id());
} }
// Ioannis Giannakas: // Orca:
// Function to calculate the excess retraction length that should be retracted either before or after wiping // Function to calculate the excess retraction length that should be retracted either before or after wiping
// in order for the wipe operation to respect the filament retraction speed // in order for the wipe operation to respect the filament retraction speed
Wipe::RetractionValues Wipe::calculateWipeRetractionLengths(GCode& gcodegen, bool toolchange) { Wipe::RetractionValues Wipe::calculateWipeRetractionLengths(GCode& gcodegen, bool toolchange) {

View file

@ -572,6 +572,7 @@ void CalibPressureAdvancePattern::generate_custom_gcodes(const DynamicPrintConfi
gcode << "; start pressure advance pattern for layer\n"; gcode << "; start pressure advance pattern for layer\n";
gcode << m_writer.travel_to_z(layer_height, "Move to layer height"); gcode << m_writer.travel_to_z(layer_height, "Move to layer height");
gcode << m_writer.reset_e();
} }
// line numbering // line numbering
@ -650,6 +651,7 @@ void CalibPressureAdvancePattern::generate_custom_gcodes(const DynamicPrintConfi
gcode << m_writer.travel_to_z(zhop_height, "z-hop before move"); gcode << m_writer.travel_to_z(zhop_height, "z-hop before move");
gcode << move_to(Vec2d(to_x, to_y), m_writer, "Move back to start position"); gcode << move_to(Vec2d(to_x, to_y), m_writer, "Move back to start position");
gcode << m_writer.travel_to_z(layer_height, "undo z-hop"); gcode << m_writer.travel_to_z(layer_height, "undo z-hop");
gcode << m_writer.reset_e(); // reset extruder before printing placeholder cube to avoid
} else { } else {
// everything done // everything done
} }

View file

@ -8843,9 +8843,14 @@ void Plater::_calib_pa_pattern(const Calib_Params& params)
changed_objects({ 0 }); changed_objects({ 0 });
_calib_pa_select_added_objects(); _calib_pa_select_added_objects();
const DynamicPrintConfig& printer_config = wxGetApp().preset_bundle->printers.get_edited_preset().config; DynamicPrintConfig& printer_config = wxGetApp().preset_bundle->printers.get_edited_preset().config;
DynamicPrintConfig& print_config = wxGetApp().preset_bundle->prints.get_edited_preset().config; DynamicPrintConfig& print_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
double nozzle_diameter = printer_config.option<ConfigOptionFloats>("nozzle_diameter")->get_at(0); double nozzle_diameter = printer_config.option<ConfigOptionFloats>("nozzle_diameter")->get_at(0);
filament_config->set_key_value("filament_retract_when_changing_layer", new ConfigOptionBoolsNullable{false});
filament_config->set_key_value("filament_wipe", new ConfigOptionBoolsNullable{false});
printer_config.set_key_value("wipe", new ConfigOptionBools{false});
printer_config.set_key_value("retract_when_changing_layer", new ConfigOptionBools{false});
for (const auto opt : SuggestedConfigCalibPAPattern().float_pairs) { for (const auto opt : SuggestedConfigCalibPAPattern().float_pairs) {
print_config.set_key_value( print_config.set_key_value(
@ -8879,7 +8884,11 @@ void Plater::_calib_pa_pattern(const Calib_Params& params)
); );
wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty(); wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty();
wxGetApp().get_tab(Preset::TYPE_FILAMENT)->update_dirty();
wxGetApp().get_tab(Preset::TYPE_PRINTER)->update_dirty();
wxGetApp().get_tab(Preset::TYPE_PRINT)->reload_config(); wxGetApp().get_tab(Preset::TYPE_PRINT)->reload_config();
wxGetApp().get_tab(Preset::TYPE_FILAMENT)->reload_config();
wxGetApp().get_tab(Preset::TYPE_PRINTER)->reload_config();
const DynamicPrintConfig full_config = wxGetApp().preset_bundle->full_config(); const DynamicPrintConfig full_config = wxGetApp().preset_bundle->full_config();
PresetBundle* preset_bundle = wxGetApp().preset_bundle; PresetBundle* preset_bundle = wxGetApp().preset_bundle;