mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 12:41:20 -06:00 
			
		
		
		
	Overhang tweaks:
1. Revert back to classic overhang 2. Support percent for overhang speed
This commit is contained in:
		
							parent
							
								
									be54f6bc99
								
							
						
					
					
						commit
						0657ad9e58
					
				
					 3 changed files with 31 additions and 23 deletions
				
			
		|  | @ -2959,10 +2959,12 @@ GCode::LayerResult GCode::process_layer( | |||
|         Skirt::make_skirt_loops_per_extruder_1st_layer(print, layer_tools, m_skirt_done) : | ||||
|         Skirt::make_skirt_loops_per_extruder_other_layers(print, layer_tools, m_skirt_done); | ||||
| 
 | ||||
|     for (const auto& layer_to_print : layers) { | ||||
|       m_extrusion_quality_estimator.prepare_for_new_layer(layer_to_print.original_object, layer_to_print.object_layer); | ||||
|     if (m_config.enable_overhang_speed && !m_config.overhang_speed_classic) { | ||||
|         for (const auto &layer_to_print : layers) { | ||||
|             m_extrusion_quality_estimator.prepare_for_new_layer(layer_to_print.original_object, | ||||
|                                                                 layer_to_print.object_layer); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     // Group extrusions by an extruder, then by an object, an island and a region.
 | ||||
|     std::map<unsigned int, std::vector<ObjectByExtruder>> by_extruder; | ||||
|  | @ -3275,6 +3277,8 @@ GCode::LayerResult GCode::process_layer( | |||
|                 // ref to: https://github.com/SoftFever/OrcaSlicer/pull/205/commits/7f1fe0bd544077626080aa1a9a0576aa735da1a4#r1083470162
 | ||||
|                 if (reset_e && !m_config.use_relative_e_distances) | ||||
|                     gcode += m_writer.reset_e(true); | ||||
|                  | ||||
|                 if (m_config.enable_overhang_speed && !m_config.overhang_speed_classic) | ||||
|                     m_extrusion_quality_estimator.set_current_object(&instance_to_print.print_object); | ||||
| 
 | ||||
|                 // When starting a new object, use the external motion planner for the first travel move.
 | ||||
|  |  | |||
|  | @ -759,8 +759,8 @@ void PrintConfigDef::init_fff_params() | |||
|     def->label = L("Classic mode"); | ||||
|     def->category = L("Speed"); | ||||
|     def->tooltip = L("Enable this option to use classic mode"); | ||||
|     def->mode = comAdvanced; | ||||
|     def->set_default_value(new ConfigOptionBool{ false }); | ||||
|     def->mode = comDevelop; | ||||
|     def->set_default_value(new ConfigOptionBool{ true }); | ||||
| 
 | ||||
|     def = this->add("enable_overhang_speed", coBool); | ||||
|     def->label = L("Slow down for overhang"); | ||||
|  | @ -769,47 +769,51 @@ void PrintConfigDef::init_fff_params() | |||
|     def->mode = comAdvanced; | ||||
|     def->set_default_value(new ConfigOptionBool{ true }); | ||||
| 
 | ||||
|     def = this->add("overhang_1_4_speed", coFloat); | ||||
|     def = this->add("overhang_1_4_speed", coFloatOrPercent); | ||||
|     def->label = "(10%, 25%)"; | ||||
|     def->category = L("Speed"); | ||||
|     def->full_label = "(10%, 25%)"; | ||||
|     //def->tooltip = L("Speed for line of wall which has degree of overhang between 10% and 25% line width. "
 | ||||
|     //                 "0 means using original wall speed");
 | ||||
|     def->sidetext = L("mm/s"); | ||||
|     def->sidetext = L("mm/s or %"); | ||||
|     def->ratio_over = "outer_wall_speed"; | ||||
|     def->min = 0; | ||||
|     def->mode = comAdvanced; | ||||
|     def->set_default_value(new ConfigOptionFloat(0)); | ||||
|     def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); | ||||
| 
 | ||||
|     def = this->add("overhang_2_4_speed", coFloat); | ||||
|     def = this->add("overhang_2_4_speed", coFloatOrPercent); | ||||
|     def->label = "[25%, 50%)"; | ||||
|     def->category = L("Speed"); | ||||
|     def->full_label = "[25%, 50%)"; | ||||
|     //def->tooltip = L("Speed for line of wall which has degree of overhang between 25% and 50% line width. "
 | ||||
|     //                 "0 means using original wall speed");
 | ||||
|     def->sidetext = L("mm/s"); | ||||
|     def->sidetext = L("mm/s or %"); | ||||
|     def->ratio_over = "outer_wall_speed"; | ||||
|     def->min = 0; | ||||
|     def->mode = comAdvanced; | ||||
|     def->set_default_value(new ConfigOptionFloat(0)); | ||||
|     def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); | ||||
| 
 | ||||
|     def = this->add("overhang_3_4_speed", coFloat); | ||||
|     def = this->add("overhang_3_4_speed", coFloatOrPercent); | ||||
|     def->label = "[50%, 75%)"; | ||||
|     def->category = L("Speed"); | ||||
|     def->full_label = "[50%, 75%)"; | ||||
|     //def->tooltip = L("Speed for line of wall which has degree of overhang between 50% and 75% line width. 0 means using original wall speed");
 | ||||
|     def->sidetext = L("mm/s"); | ||||
|     def->sidetext = L("mm/s or %"); | ||||
|     def->ratio_over = "outer_wall_speed"; | ||||
|     def->min = 0; | ||||
|     def->mode = comAdvanced; | ||||
|     def->set_default_value(new ConfigOptionFloat(0)); | ||||
|     def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); | ||||
| 
 | ||||
|     def = this->add("overhang_4_4_speed", coFloat); | ||||
|     def = this->add("overhang_4_4_speed", coFloatOrPercent); | ||||
|     def->label = "[75%, 100%)"; | ||||
|     def->category = L("Speed"); | ||||
|     def->full_label = "[75%, 100%)"; | ||||
|     //def->tooltip = L("Speed for line of wall which has degree of overhang between 75% and 100% line width. 0 means using original wall speed");
 | ||||
|     def->sidetext = L("mm/s"); | ||||
|     def->sidetext = L("mm/s or %"); | ||||
|     def->ratio_over = "outer_wall_speed"; | ||||
|     def->min = 0; | ||||
|     def->mode = comAdvanced; | ||||
|     def->set_default_value(new ConfigOptionFloat(0)); | ||||
|     def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); | ||||
| 
 | ||||
|     def = this->add("bridge_speed", coFloat); | ||||
|     def->label = L("Bridge"); | ||||
|  | @ -4476,7 +4480,7 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va | |||
|         "remove_freq_sweep", "remove_bed_leveling", "remove_extrusion_calibration", | ||||
|         "support_transition_line_width", "support_transition_speed", "bed_temperature", "bed_temperature_initial_layer", | ||||
|         "can_switch_nozzle_type", "can_add_auxiliary_fan", "extra_flush_volume", "spaghetti_detector", "adaptive_layer_height", | ||||
|         "z_hop_type", "z_lift_type" | ||||
|         "z_hop_type", "z_lift_type", "overhang_speed_classic" | ||||
|     }; | ||||
| 
 | ||||
|     if (ignore.find(opt_key) != ignore.end()) { | ||||
|  |  | |||
|  | @ -766,10 +766,10 @@ PRINT_CONFIG_CLASS_DEFINE( | |||
|     ((ConfigOptionFloat, top_surface_speed)) | ||||
|     //BBS
 | ||||
|     ((ConfigOptionBool,                 enable_overhang_speed)) | ||||
|     ((ConfigOptionFloat,                overhang_1_4_speed)) | ||||
|     ((ConfigOptionFloat,                overhang_2_4_speed)) | ||||
|     ((ConfigOptionFloat,                overhang_3_4_speed)) | ||||
|     ((ConfigOptionFloat,                overhang_4_4_speed)) | ||||
|     ((ConfigOptionFloatOrPercent,       overhang_1_4_speed)) | ||||
|     ((ConfigOptionFloatOrPercent,       overhang_2_4_speed)) | ||||
|     ((ConfigOptionFloatOrPercent,       overhang_3_4_speed)) | ||||
|     ((ConfigOptionFloatOrPercent,       overhang_4_4_speed)) | ||||
|     ((ConfigOptionBool,                 only_one_wall_top)) | ||||
| 
 | ||||
|     //SoftFever
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 SoftFever
						SoftFever