Adds resonance avoidance ported from qidi slicer (#9403)

* Update tab.cpp for resonance avoidance

* update files for resonance avoidance

updated gcode.cpp, gcode.hpp, preset.cpp, printconfig.cpp, printconfig.hpp to add resonance avoidance. Based on qidi slicer changes.

* Update README.md

* Update README.md

* Update Tab.cpp

* Update Preset.cpp

Updating code comments

* Update PrintConfig.cpp

* Update PrintConfig.hpp

* Update .gitattributes

* Remove carriage return

* Update doc

* Move resonance avoidance settings to printer settings

* Disable resonance avoidance by default

* Update options

---------

Co-authored-by: Paul Mourer <paul.mourer@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
This commit is contained in:
EpiphanyPrinting
2025-06-16 00:14:00 -05:00
committed by GitHub
parent b259ee22b3
commit 3a81a8f358
7 changed files with 83 additions and 7 deletions

View File

@@ -2206,6 +2206,7 @@ void TabPrint::build()
optgroup->append_single_option_line("support_interface_speed");
optgroup = page->new_optgroup(L("Overhang speed"), L"param_overhang_speed", 15);
optgroup->append_single_option_line("enable_overhang_speed", "slow-down-for-overhang");
// Orca: DEPRECATED
// optgroup->append_single_option_line("overhang_speed_classic", "slow-down-for-overhang");
optgroup->append_single_option_line("slowdown_for_curled_perimeters");
@@ -4166,6 +4167,17 @@ PageShp TabPrinter::build_kinematics_page()
}
auto optgroup = page->new_optgroup(L("Advanced"), "param_advanced");
optgroup->append_single_option_line("emit_machine_limits_to_gcode");
// resonance avoidance ported over from qidi slicer
optgroup = page->new_optgroup(L("Resonance Avoidance"));
optgroup->append_single_option_line("resonance_avoidance");
// Resonanceavoidance speed inputs
{
Line resonance_line = {L("Resonance Avoidance Speed"), L("")};
resonance_line.append_option(optgroup->get_option("min_resonance_avoidance_speed"));
resonance_line.append_option(optgroup->get_option("max_resonance_avoidance_speed"));
optgroup->append_line(resonance_line);
}
const std::vector<std::string> speed_axes{
"machine_max_speed_x",
@@ -4708,6 +4720,10 @@ void TabPrinter::toggle_options()
for (int i = 0; i < max_field; ++i)
toggle_option("machine_max_junction_deviation", gcf == gcfMarlinFirmware, i);
toggle_line("machine_max_junction_deviation", gcf == gcfMarlinFirmware);
bool resonance_avoidance = m_config->opt_bool("resonance_avoidance");
toggle_option("min_resonance_avoidance_speed", resonance_avoidance);
toggle_option("max_resonance_avoidance_speed", resonance_avoidance);
}
}