mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-07 23:17:35 -06:00
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:
parent
1067fc2649
commit
0bf78f8e9e
3 changed files with 13 additions and 2 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue