mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	FIX: STUDIO-787 & STUDIO-786 lion face model problem
1. memory explosion when enable timelapse. 2. Models with only one color become multicolor after slicing. Change-Id: Iab3ace70c08d03ab612158d52ff67eef8d5bc718
This commit is contained in:
		
							parent
							
								
									db83a1c193
								
							
						
					
					
						commit
						612204b443
					
				
					 3 changed files with 13 additions and 6 deletions
				
			
		|  | @ -175,8 +175,13 @@ ToolOrdering::ToolOrdering(const Print &print, unsigned int first_extruder, bool | ||||||
|         this->collect_extruders(*object, per_layer_extruder_switches); |         this->collect_extruders(*object, per_layer_extruder_switches); | ||||||
| 
 | 
 | ||||||
|     // Reorder the extruders to minimize tool switches.
 |     // Reorder the extruders to minimize tool switches.
 | ||||||
|  |     std::vector<unsigned int> first_layer_tool_order; | ||||||
|     if (first_extruder == (unsigned int)-1) { |     if (first_extruder == (unsigned int)-1) { | ||||||
|         this->reorder_extruders(generate_first_layer_tool_order(print)); |         first_layer_tool_order = generate_first_layer_tool_order(print); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (!first_layer_tool_order.empty()) { | ||||||
|  |         this->reorder_extruders(first_layer_tool_order); | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
|         this->reorder_extruders(first_extruder); |         this->reorder_extruders(first_extruder); | ||||||
|  |  | ||||||
|  | @ -1777,11 +1777,10 @@ void Print::_make_wipe_tower() | ||||||
|     // BBS: priming logic is removed, so don't consider it in tool ordering
 |     // BBS: priming logic is removed, so don't consider it in tool ordering
 | ||||||
|     m_wipe_tower_data.tool_ordering = ToolOrdering(*this, (unsigned int)-1, false); |     m_wipe_tower_data.tool_ordering = ToolOrdering(*this, (unsigned int)-1, false); | ||||||
| 
 | 
 | ||||||
|     // if enable_timelapse_print(), update all layer_tools parameters(has_wipe_tower, wipe_tower_partitions)
 |     // if enable_timelapse_print(), update all layer_tools parameters: wipe_tower_partitions
 | ||||||
|     if (enable_timelapse_print()) { |     if (enable_timelapse_print()) { | ||||||
|         std::vector<LayerTools>& layer_tools_array = m_wipe_tower_data.tool_ordering.layer_tools(); |         std::vector<LayerTools>& layer_tools_array = m_wipe_tower_data.tool_ordering.layer_tools(); | ||||||
|         for (LayerTools& layer_tools : layer_tools_array) { |         for (LayerTools& layer_tools : layer_tools_array) { | ||||||
|             layer_tools.has_wipe_tower = true; |  | ||||||
|             if (layer_tools.wipe_tower_partitions == 0) { |             if (layer_tools.wipe_tower_partitions == 0) { | ||||||
|                 layer_tools.wipe_tower_partitions = 1; |                 layer_tools.wipe_tower_partitions = 1; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -3522,8 +3522,11 @@ void DynamicPrintConfig::normalize_fdm(int used_filaments) | ||||||
|         ConfigOptionBool* alh_opt = this->option<ConfigOptionBool>("adaptive_layer_height"); |         ConfigOptionBool* alh_opt = this->option<ConfigOptionBool>("adaptive_layer_height"); | ||||||
|         ConfigOptionEnum<PrintSequence>* ps_opt = this->option<ConfigOptionEnum<PrintSequence>>("print_sequence"); |         ConfigOptionEnum<PrintSequence>* ps_opt = this->option<ConfigOptionEnum<PrintSequence>>("print_sequence"); | ||||||
|          |          | ||||||
|  |         ConfigOptionBool *timelapse_opt = this->option<ConfigOptionBool>("timelapse_no_toolhead"); | ||||||
|  |         if (timelapse_opt && timelapse_opt->value == false) { | ||||||
|             if (used_filaments == 1 || ps_opt->value == PrintSequence::ByObject) |             if (used_filaments == 1 || ps_opt->value == PrintSequence::ByObject) | ||||||
|                 ept_opt->value = false; |                 ept_opt->value = false; | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         if (ept_opt->value) { |         if (ept_opt->value) { | ||||||
|             if (islh_opt) |             if (islh_opt) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 zhimin.zeng
						zhimin.zeng