FIX: the wipe tower is not correct for tpu

jira: none
Change-Id: I79ed204638602013d73525e23a2b74af2c0efff2
(cherry picked from commit 78eea0a36f86f014d004643d23edee1beb5d6d7f)
This commit is contained in:
zhimin.zeng 2024-11-23 17:03:48 +08:00 committed by Noisyfox
parent eac07fd8e3
commit 038dd56006

View file

@ -898,10 +898,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool extrude_per
writer.rectangle(wt_box);
}
{
writer.travel(Vec2f(0, 0));
writer.travel(initial_position);
}
writer.travel(initial_position);
toolchange_Wipe(writer, cleaning_box, wipe_length); // Wipe the newly loaded filament until the end of the assigned wipe area.
@ -953,7 +950,7 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change(int old_filament_id, int
wipe_depth = b.required_depth;
purge_volume = b.purge_volume;
if (has_tpu_filament())
nozzle_change_line_count = ((b.nozzle_change_depth + WT_EPSILON) / m_perimeter_width + 1) / 2;
nozzle_change_line_count = ((b.nozzle_change_depth + WT_EPSILON) / m_perimeter_width) / 2;
else
nozzle_change_line_count = (b.nozzle_change_depth + WT_EPSILON) / m_perimeter_width;
break;
@ -1637,7 +1634,7 @@ void WipeTower::plan_toolchange(float z_par, float layer_height_par, unsigned in
double length = m_nozzle_change_length / e_flow;
int nozzle_change_line_count = length / (m_wipe_tower_width - m_perimeter_width) + 1;
if (has_tpu_filament())
nozzle_change_depth = (2 * nozzle_change_line_count - 1) * m_perimeter_width;
nozzle_change_depth = (2 * nozzle_change_line_count) * m_perimeter_width;
else
nozzle_change_depth = nozzle_change_line_count * m_perimeter_width;
depth += nozzle_change_depth;