Wipe tower "infinite out of bed line" fix (#12267)

Fix wipe tower out-of-bed moves

Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
This commit is contained in:
Argo
2026-02-26 09:11:13 +01:00
committed by GitHub
parent d604cc9697
commit 3a61fefa3a

View File

@@ -1409,11 +1409,12 @@ static std::vector<Vec2d> get_path_of_change_filament(const Print& print)
else else
line_out << ch; line_out << ch;
} }
// Strip original wipe tower X/Y even if position unchanged (fixes out of bed moves).
line = line_out.str();
transformed_pos = trans_pos(pos); transformed_pos = trans_pos(pos);
if (transformed_pos != old_pos || never_skip) { if (transformed_pos != old_pos || never_skip) {
line = line_out.str();
std::ostringstream oss; std::ostringstream oss;
oss << std::fixed << std::setprecision(3) << cur_gcode_start; oss << std::fixed << std::setprecision(3) << cur_gcode_start;
if (transformed_pos.x() != old_pos.x() || never_skip) if (transformed_pos.x() != old_pos.x() || never_skip)
@@ -1446,7 +1447,7 @@ static std::vector<Vec2d> get_path_of_change_filament(const Print& print)
} }
old_pos = Vec2f{-1000.1f, -1000.1f}; old_pos = Vec2f{-1000.1f, -1000.1f};
pos = tcr.tool_change_start_pos; pos = tcr.tool_change_start_pos;
transformed_pos = pos; transformed_pos = trans_pos(pos);
} }
} }
return gcode_out; return gcode_out;