Skip to content

Commit

Permalink
[Multi Material] Fix first layers of prime tower when using "no spars…
Browse files Browse the repository at this point in the history
…e layers" (#2764)

* MM - Add check for first layer

* Change: If no sparse layer is on -> Respect the toolchange in the first-layer checkup, to use a brim and slow down printspeed if using a primetower

* Fix comment
  • Loading branch information
SVNMLR committed Nov 17, 2023
1 parent 9505f93 commit 4dcfd97
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/libslic3r/GCode/WipeTower2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1092,7 +1092,8 @@ void WipeTower2::toolchange_Wipe(
float dy = (is_first_layer() ? 1.f : m_extra_spacing) * m_perimeter_width; // Don't use the extra spacing for the first layer.
// All the calculations in all other places take the spacing into account for all the layers.

const float target_speed = is_first_layer() ? m_first_layer_speed * 60.f : std::min(5400.f, m_infill_speed * 60.f);
// If spare layers are excluded->if 1 or less toolchange has been done, it must be sill the first layer, too.So slow down.
const float target_speed = is_first_layer() || (m_num_tool_changes <= 1 && m_no_sparse_layers) ? m_first_layer_speed * 60.f : std::min(5400.f, m_infill_speed * 60.f);
float wipe_speed = 0.33f * target_speed;

// if there is less than 2.5*m_perimeter_width to the edge, advance straightaway (there is likely a blob anyway)
Expand Down Expand Up @@ -1160,7 +1161,8 @@ WipeTower::ToolChangeResult WipeTower2::finish_layer()


// Slow down on the 1st layer.
bool first_layer = is_first_layer();
// If spare layers are excluded -> if 1 or less toolchange has been done, it must be still the first layer, too. So slow down.
bool first_layer = is_first_layer() || (m_num_tool_changes <= 1 && m_no_sparse_layers);
float feedrate = first_layer ? m_first_layer_speed * 60.f : std::min(5400.f, m_infill_speed * 60.f);
float current_depth = m_layer_info->depth - m_layer_info->toolchanges_depth();
WipeTower::box_coordinates fill_box(Vec2f(m_perimeter_width, m_layer_info->depth-(current_depth-m_perimeter_width)),
Expand Down

0 comments on commit 4dcfd97

Please sign in to comment.