mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Merge branch 'master' of https://github.com/prusa3d/Slic3r
This commit is contained in:
		
						commit
						49202b0698
					
				
					 2 changed files with 38 additions and 9 deletions
				
			
		|  | @ -315,6 +315,20 @@ public: | ||||||
| 		return *this; | 		return *this; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | 	// Let the firmware back up the active speed override value.
 | ||||||
|  | 	Writer& speed_override_backup()  | ||||||
|  | 	{ | ||||||
|  | 		m_gcode += "M220 B\n"; | ||||||
|  | 		return *this; | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
|  | 	// Let the firmware restore the active speed override value.
 | ||||||
|  | 	Writer& speed_override_restore()  | ||||||
|  | 	{ | ||||||
|  | 		m_gcode += "M220 R\n"; | ||||||
|  | 		return *this; | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
| 	// Set digital trimpot motor
 | 	// Set digital trimpot motor
 | ||||||
| 	Writer& set_extruder_trimpot(int current)  | 	Writer& set_extruder_trimpot(int current)  | ||||||
| 	{ | 	{ | ||||||
|  | @ -501,8 +515,10 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::prime( | ||||||
| 		  .set_initial_tool(m_current_tool) | 		  .set_initial_tool(m_current_tool) | ||||||
| 		  .append(";--------------------\n" | 		  .append(";--------------------\n" | ||||||
| 			 	  "; CP PRIMING START\n") | 			 	  "; CP PRIMING START\n") | ||||||
| 		  .append(";--------------------\n") | 		  .append(";--------------------\n"); | ||||||
| 		  .speed_override(100); | 	if (m_retain_speed_override) | ||||||
|  | 		writer.speed_override_backup(); | ||||||
|  | 	writer.speed_override(100); | ||||||
| 
 | 
 | ||||||
| 	writer.set_initial_position(xy(0.f, 0.f))	// Always move to the starting position
 | 	writer.set_initial_position(xy(0.f, 0.f))	// Always move to the starting position
 | ||||||
| 		.travel(cleaning_box.ld, 7200); | 		.travel(cleaning_box.ld, 7200); | ||||||
|  | @ -536,6 +552,8 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::prime( | ||||||
| 	// Reset the extruder current to a normal value.
 | 	// Reset the extruder current to a normal value.
 | ||||||
| 	if (m_set_extruder_trimpot) | 	if (m_set_extruder_trimpot) | ||||||
| 		writer.set_extruder_trimpot(550); | 		writer.set_extruder_trimpot(550); | ||||||
|  | 	if (m_retain_speed_override) | ||||||
|  | 		writer.speed_override_restore(); | ||||||
| 	writer.feedrate(6000) | 	writer.feedrate(6000) | ||||||
| 		  .flush_planner_queue() | 		  .flush_planner_queue() | ||||||
| 		  .reset_extruder() | 		  .reset_extruder() | ||||||
|  | @ -602,8 +620,10 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::tool_change(unsigned int tool, boo | ||||||
| 				"; CP TOOLCHANGE START\n") | 				"; CP TOOLCHANGE START\n") | ||||||
| 		.comment_with_value(" toolchange #", m_num_tool_changes + 1) // the number is zero-based
 | 		.comment_with_value(" toolchange #", m_num_tool_changes + 1) // the number is zero-based
 | ||||||
| 		.comment_material(m_filpar[m_current_tool].material) | 		.comment_material(m_filpar[m_current_tool].material) | ||||||
| 		.append(";--------------------\n") | 		.append(";--------------------\n"); | ||||||
| 		.speed_override(100); | 	if (m_retain_speed_override) | ||||||
|  | 		writer.speed_override_backup(); | ||||||
|  | 	writer.speed_override(100); | ||||||
| 
 | 
 | ||||||
| 	xy initial_position = cleaning_box.ld + WipeTower::xy(0.f,m_depth_traversed); | 	xy initial_position = cleaning_box.ld + WipeTower::xy(0.f,m_depth_traversed); | ||||||
|     writer.set_initial_position(initial_position, m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); |     writer.set_initial_position(initial_position, m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); | ||||||
|  | @ -640,6 +660,8 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::tool_change(unsigned int tool, boo | ||||||
| 
 | 
 | ||||||
| 	if (m_set_extruder_trimpot) | 	if (m_set_extruder_trimpot) | ||||||
| 		writer.set_extruder_trimpot(550);    // Reset the extruder current to a normal value.
 | 		writer.set_extruder_trimpot(550);    // Reset the extruder current to a normal value.
 | ||||||
|  | 	if (m_retain_speed_override) | ||||||
|  | 		writer.speed_override_restore(); | ||||||
|     writer.feedrate(6000) |     writer.feedrate(6000) | ||||||
|           .flush_planner_queue() |           .flush_planner_queue() | ||||||
|           .reset_extruder() |           .reset_extruder() | ||||||
|  | @ -885,14 +907,15 @@ void WipeTowerPrusaMM::toolchange_Change( | ||||||
| 	case FLEX:  speed_override = 35; break; | 	case FLEX:  speed_override = 35; break; | ||||||
| 	default:    speed_override = 100; | 	default:    speed_override = 100; | ||||||
| 	} | 	} | ||||||
| 	writer.set_tool(new_tool) | 	writer.set_tool(new_tool); | ||||||
| 	      .speed_override(speed_override) | 	if (m_retain_speed_override) | ||||||
| 	      .flush_planner_queue(); | 		assert(speed_override == 100); | ||||||
|  | 	else | ||||||
|  | 		writer.speed_override(speed_override); | ||||||
|  | 	writer.flush_planner_queue(); | ||||||
| 	m_current_tool = new_tool; | 	m_current_tool = new_tool; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| void WipeTowerPrusaMM::toolchange_Load( | void WipeTowerPrusaMM::toolchange_Load( | ||||||
| 	PrusaMultiMaterial::Writer &writer, | 	PrusaMultiMaterial::Writer &writer, | ||||||
| 	const box_coordinates  &cleaning_box) | 	const box_coordinates  &cleaning_box) | ||||||
|  |  | ||||||
|  | @ -75,6 +75,11 @@ public: | ||||||
|         m_filpar.push_back(FilamentParameters()); |         m_filpar.push_back(FilamentParameters()); | ||||||
| 
 | 
 | ||||||
|         m_filpar[idx].material = material; |         m_filpar[idx].material = material; | ||||||
|  |         if (material == FLEX || material == SCAFF || material == PVA) { | ||||||
|  |     		// MMU2 lowers the print speed using the speed override (M220) for printing of soluble PVA/BVOH and flex materials.
 | ||||||
|  |     		// Therefore it does not make sense to use the new M220 B and M220 R (backup / restore).
 | ||||||
|  |         	m_retain_speed_override = false; | ||||||
|  |         } | ||||||
|         m_filpar[idx].temperature = temp; |         m_filpar[idx].temperature = temp; | ||||||
|         m_filpar[idx].first_layer_temperature = first_layer_temp; |         m_filpar[idx].first_layer_temperature = first_layer_temp; | ||||||
|         m_filpar[idx].loading_speed = loading_speed; |         m_filpar[idx].loading_speed = loading_speed; | ||||||
|  | @ -215,6 +220,7 @@ private: | ||||||
|     float           m_extra_loading_move        = 0.f; |     float           m_extra_loading_move        = 0.f; | ||||||
|     float           m_bridging                  = 0.f; |     float           m_bridging                  = 0.f; | ||||||
|     bool            m_set_extruder_trimpot      = false; |     bool            m_set_extruder_trimpot      = false; | ||||||
|  |     bool 			m_retain_speed_override		= true; | ||||||
|     bool            m_adhesion                  = true; |     bool            m_adhesion                  = true; | ||||||
| 
 | 
 | ||||||
| 	float m_perimeter_width = 0.4 * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill.
 | 	float m_perimeter_width = 0.4 * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill.
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri