FastTower and Granular Parameters

Co-Authored-By: Rodrigo <162915171+rf47@users.noreply.github.com>
This commit is contained in:
Ian Bassi 2025-03-26 17:54:07 -03:00
parent 1857849cba
commit 3662b5139c
6 changed files with 154 additions and 60 deletions

View file

@ -3769,13 +3769,22 @@ LayerResult GCode::process_layer(
sprintf(buf, "; Calib_Retraction_tower: Z_HEIGHT: %g, length:%g\n", print_z, _length);
gcode += buf;
} else if (print.calib_mode() == CalibMode::Calib_Input_shaping_freq) {
gcode += writer().set_input_shaping('A', print.calib_params().step, m_layer_index < 2 ? 0.f : (print.calib_params().start) + ((print.calib_params().end)-(print.calib_params().start)) * (m_layer_index - 2) / (m_layer_count - 3));
if (m_layer_index == 1){
gcode += writer().set_input_shaping('A', print.calib_params().start, 0.f);
} else {
if (print.calib_params().freqStartX == print.calib_params().freqStartY && print.calib_params().freqEndX == print.calib_params().freqEndY) {
gcode += writer().set_input_shaping('A', 0.f, (print.calib_params().freqStartX) + ((print.calib_params().freqEndX)-(print.calib_params().freqStartX)) * (m_layer_index - 2) / (m_layer_count - 3));
} else {
gcode += writer().set_input_shaping('X', 0.f, (print.calib_params().freqStartX) + ((print.calib_params().freqEndX)-(print.calib_params().freqStartX)) * (m_layer_index - 2) / (m_layer_count - 3));
gcode += writer().set_input_shaping('Y', 0.f, (print.calib_params().freqStartY) + ((print.calib_params().freqEndY)-(print.calib_params().freqStartY)) * (m_layer_index - 2) / (m_layer_count - 3));
}
}
} else if (print.calib_mode() == CalibMode::Calib_Input_shaping_damp) {
if (m_layer_index == 1){
gcode += writer().set_input_shaping('X', 0.f, print.calib_params().start);
gcode += writer().set_input_shaping('Y', 0.f, print.calib_params().end);
gcode += writer().set_input_shaping('X', 0.f, print.calib_params().freqStartX);
gcode += writer().set_input_shaping('Y', 0.f, print.calib_params().freqStartY);
} else {
gcode += writer().set_input_shaping('A', float(m_layer_index) / float(m_layer_count), 0.f);
gcode += writer().set_input_shaping('A', print.calib_params().start + ((print.calib_params().end)-(print.calib_params().start)) * (m_layer_index) / (m_layer_count), 0.f);
}
}