Skip to content

Commit

Permalink
fix wipe tower speeds
Browse files Browse the repository at this point in the history
  • Loading branch information
supermerill committed Feb 14, 2025
2 parents 7c6136d + 515923b commit 456236d
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/libslic3r/GCode/SeamPlacer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -521,8 +521,8 @@ PolylineWithEnds extract_perimeter_polylines(const Layer *layer, const SeamPosit
polys.back().points.pop_back();
}
path.collect_points(polys.back().points);
assert(polys.back().size() > 1);
}
assert(polys.back().size() > 1);
count_paths_collected++;
current_collected = true;
}
Expand Down
19 changes: 10 additions & 9 deletions src/libslic3r/GCode/WipeTower.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,8 @@ class WipeTowerWriter
float e_speed = e / (((len == 0.f) ? std::abs(e) : len) / f * 60.f);
f /= std::max(1.f, e_speed / m_filpar[m_current_tool].max_e_speed);
if (len > 0 && m_filpar[m_current_tool].max_speed > 0) {
f = std::min(f, m_filpar[m_current_tool].max_speed);
// don't forget to go from speed (mm/s) to Feedrate (mm/min)
f = std::min(f, m_filpar[m_current_tool].max_speed * 60.f);
}
}
gcode += set_format_F(f);
Expand Down Expand Up @@ -1345,12 +1346,12 @@ void WipeTower::toolchange_Wipe(
if (this->m_config->filament_max_speed.get_at(this->m_current_tool) > 0) {
max_speed = float(this->m_config->filament_max_speed.get_at(this->m_current_tool));
}
float target_speed = m_speed;
float target_speed = m_speed; //mm/s
if (is_first_layer() && m_first_layer_speed > 0)
target_speed = m_first_layer_speed;
if (target_speed <= 0)
target_speed = m_infill_speed;
target_speed = std::min(max_speed, target_speed * 60.f);
target_speed = std::min(max_speed, target_speed);
float wipe_speed = std::min(max_speed, float(m_config->wipe_tower_wipe_starting_speed.get_abs_value(target_speed)));
if (wipe_speed <= 0) {
wipe_speed = target_speed;
Expand Down Expand Up @@ -1422,14 +1423,14 @@ WipeTower::ToolChangeResult WipeTower::finish_layer()

// Slow down on the 1st layer.
bool first_layer = is_first_layer();
float speed_factor = 1.f;
float feedrate = m_speed;
float speed_factor = 60.f;
float print_speed = m_speed;
if (first_layer && m_first_layer_speed > 0)
feedrate = m_first_layer_speed;
if (feedrate <= 0)
feedrate = m_infill_speed;
feedrate *= 60.f;
print_speed = m_first_layer_speed;
if (print_speed <= 0)
print_speed = m_infill_speed;
speed_factor *= get_speed_reduction();
float feedrate = m_speed * speed_factor;
float current_depth = m_layer_info->depth - m_layer_info->toolchanges_depth();
box_coordinates fill_box(Vec2f(m_perimeter_width, m_layer_info->depth-(current_depth-m_perimeter_width)),
m_wipe_tower_width - 2 * m_perimeter_width, current_depth-m_perimeter_width);
Expand Down
1 change: 0 additions & 1 deletion src/libslic3r/PerimeterGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5464,7 +5464,6 @@ void PerimeterGenerator::_merge_thin_walls(const Parameters &params, ExtrusionEn
bool point_moved = false;
if (first_part.size() <= 1 || first_part.length() < SCALED_EPSILON) {
assert(first_part.size() == 2);
assert(searcher.search_result.loop->paths.size() > 1);
//not long enough, move point to first point and destroy it
// idx_path_before will be replaced anyway by poly_after
assert(!searcher.search_result.loop->paths[idx_path_before].empty());
Expand Down

0 comments on commit 456236d

Please sign in to comment.