mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	[Multi Material] Fix first layers of prime tower when using "no sparse 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
This commit is contained in:
		
							parent
							
								
									9505f93717
								
							
						
					
					
						commit
						4dcfd97181
					
				
					 1 changed files with 4 additions and 2 deletions
				
			
		|  | @ -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)
 | ||||
|  | @ -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)), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 SVNMLR
						SVNMLR