mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-14 02:07:54 -06:00
handle edge cases when Cooling tube position is 0
This commit is contained in:
parent
d6e8627401
commit
40c2eccfd6
1 changed files with 7 additions and 5 deletions
|
@ -912,10 +912,10 @@ void WipeTower2::toolchange_Unload(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
writer.append("; Ramming\n");
|
|
||||||
// now the ramming itself:
|
// now the ramming itself:
|
||||||
while (do_ramming && i < m_filpar[m_current_tool].ramming_speed.size())
|
while (do_ramming && i < m_filpar[m_current_tool].ramming_speed.size())
|
||||||
{
|
{
|
||||||
|
writer.append("; Ramming\n");
|
||||||
// The time step is different for SEMM ramming and the MM ramming. See comments in set_extruder() for details.
|
// The time step is different for SEMM ramming and the MM ramming. See comments in set_extruder() for details.
|
||||||
const float time_step = m_semm ? 0.25f : m_filpar[m_current_tool].multitool_ramming_time;
|
const float time_step = m_semm ? 0.25f : m_filpar[m_current_tool].multitool_ramming_time;
|
||||||
|
|
||||||
|
@ -940,11 +940,11 @@ void WipeTower2::toolchange_Unload(
|
||||||
Vec2f end_of_ramming(writer.x(),writer.y());
|
Vec2f end_of_ramming(writer.x(),writer.y());
|
||||||
writer.change_analyzer_line_width(m_perimeter_width); // so the next lines are not affected by ramming_line_width_multiplier
|
writer.change_analyzer_line_width(m_perimeter_width); // so the next lines are not affected by ramming_line_width_multiplier
|
||||||
|
|
||||||
writer.append("; Retract(unload)\n");
|
|
||||||
// Retraction:
|
// Retraction:
|
||||||
float old_x = writer.x();
|
float old_x = writer.x();
|
||||||
float turning_point = (!m_left_to_right ? xl : xr );
|
float turning_point = (!m_left_to_right ? xl : xr );
|
||||||
if (m_semm && (m_cooling_tube_retraction != 0 || m_cooling_tube_length != 0)) {
|
if (m_semm && (m_cooling_tube_retraction != 0 || m_cooling_tube_length != 0)) {
|
||||||
|
writer.append("; Retract(unload)\n");
|
||||||
float total_retraction_distance = m_cooling_tube_retraction + m_cooling_tube_length/2.f - 15.f; // the 15mm is reserved for the first part after ramming
|
float total_retraction_distance = m_cooling_tube_retraction + m_cooling_tube_length/2.f - 15.f; // the 15mm is reserved for the first part after ramming
|
||||||
writer.suppress_preview()
|
writer.suppress_preview()
|
||||||
.retract(15.f, m_filpar[m_current_tool].unloading_speed_start * 60.f) // feedrate 5000mm/min = 83mm/s
|
.retract(15.f, m_filpar[m_current_tool].unloading_speed_start * 60.f) // feedrate 5000mm/min = 83mm/s
|
||||||
|
@ -965,10 +965,10 @@ void WipeTower2::toolchange_Unload(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.append("; Cooling\n");
|
|
||||||
// Cooling:
|
// Cooling:
|
||||||
const int& number_of_moves = m_filpar[m_current_tool].cooling_moves;
|
const int& number_of_moves = m_filpar[m_current_tool].cooling_moves;
|
||||||
if (m_semm && number_of_moves > 0) {
|
if (m_semm && number_of_moves > 0 && m_cooling_tube_length != 0) {
|
||||||
|
writer.append("; Cooling\n");
|
||||||
const float& initial_speed = m_filpar[m_current_tool].cooling_initial_speed;
|
const float& initial_speed = m_filpar[m_current_tool].cooling_initial_speed;
|
||||||
const float& final_speed = m_filpar[m_current_tool].cooling_final_speed;
|
const float& final_speed = m_filpar[m_current_tool].cooling_final_speed;
|
||||||
|
|
||||||
|
@ -991,7 +991,9 @@ void WipeTower2::toolchange_Unload(
|
||||||
// let's wait is necessary:
|
// let's wait is necessary:
|
||||||
writer.wait(m_filpar[m_current_tool].delay);
|
writer.wait(m_filpar[m_current_tool].delay);
|
||||||
// we should be at the beginning of the cooling tube again - let's move to parking position:
|
// we should be at the beginning of the cooling tube again - let's move to parking position:
|
||||||
writer.retract(-m_cooling_tube_length/2.f+m_parking_pos_retraction-m_cooling_tube_retraction, 2000);
|
const auto _e = -m_cooling_tube_length / 2.f + m_parking_pos_retraction - m_cooling_tube_retraction;
|
||||||
|
if (_e != 0.f)
|
||||||
|
writer.retract(_e, 2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is to align ramming and future wiping extrusions, so the future y-steps can be uniform from the start:
|
// this is to align ramming and future wiping extrusions, so the future y-steps can be uniform from the start:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue