diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index e04891188..2877855cf 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -3956,16 +3956,25 @@ void WipeTower::generate_new(std::vectorblock_id == block.block_id && finish_layer_filament == -1) { + finish_layer_filament = layer.tool_changes.front().old_tool; + } + + if (finish_layer_filament == -1) { + finish_layer_filament = wall_idx; + } + ToolChangeResult finish_block_tcr; - if (interface_solid ||(block.solid_infill[m_cur_layer_id] && block.filament_adhesiveness_category != m_filament_categories[wall_idx])) { - interface_solid = interface_solid && !((block.solid_infill[m_cur_layer_id] && block.filament_adhesiveness_category != m_filament_categories[wall_idx]));//noly reduce speed when + if (interface_solid || (block.solid_infill[m_cur_layer_id] && block.filament_adhesiveness_category != m_filament_categories[finish_layer_filament])) { + interface_solid = interface_solid && !((block.solid_infill[m_cur_layer_id] && block.filament_adhesiveness_category != m_filament_categories[finish_layer_filament]));//noly reduce speed when finish_block_tcr = finish_block_solid(block, finish_layer_filament, layer.extruder_fill, interface_solid); block.finish_depth[m_cur_layer_id] = block.start_depth + block.depth; }