mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	FIX: tree(manual) didn't support well
1. We have a logic to add supports at corners for tree(auto), now I extend it to tree(manual) also. 2. Only show support_critical_regions_only option to tree(auto). Github: #2008 Change-Id: I161444da93464fd2ef0e0f3b40a0c5852beba351 (cherry picked from commit af4efb4aadc2a4d16de3eea881c6610955985fff)
This commit is contained in:
		
							parent
							
								
									24bd494ad9
								
							
						
					
					
						commit
						44fdfe8fff
					
				
					 2 changed files with 7 additions and 4 deletions
				
			
		|  | @ -1101,7 +1101,7 @@ void TreeSupport::detect_overhangs(bool detect_first_sharp_tail_only) | |||
|         SupportLayer* ts_layer = m_object->get_support_layer(layer_nr + m_raft_layers); | ||||
|         auto layer = m_object->get_layer(layer_nr); | ||||
|         auto lower_layer = layer->lower_layer; | ||||
|         if (support_critical_regions_only) { | ||||
|         if (support_critical_regions_only && is_auto(stype)) { | ||||
|             ts_layer->overhang_areas.clear(); | ||||
|             if (lower_layer == nullptr) | ||||
|                 ts_layer->overhang_areas = layer->sharp_tails; | ||||
|  | @ -1153,7 +1153,8 @@ void TreeSupport::detect_overhangs(bool detect_first_sharp_tail_only) | |||
|         if (svg.is_opened()) { | ||||
|             svg.draw_outline(m_object->get_layer(layer->id())->lslices, "yellow"); | ||||
|             svg.draw(layer->overhang_areas, "orange"); | ||||
|             svg.draw(blockers[layer->id()], "red"); | ||||
|             if (blockers.size() > layer->id()) | ||||
|                 svg.draw(blockers[layer->id()], "red"); | ||||
|             for (auto& overhang : layer->overhang_areas) { | ||||
|                 double aarea = overhang.area()/ area_thresh_well_supported; | ||||
|                 auto pt = get_extents(overhang).center(); | ||||
|  | @ -3481,7 +3482,8 @@ void TreeSupport::generate_contact_points(std::vector<std::vector<TreeSupport::N | |||
|                     curr_nodes.emplace_back(contact_node); | ||||
|                 } | ||||
|             } | ||||
|             if (ts_layer->overhang_types[&overhang_part] == SupportLayer::Detected) { | ||||
|             // add supports at corners for both auto and manual overhangs, github #2008
 | ||||
|             if (/*ts_layer->overhang_types[&overhang_part] == SupportLayer::Detected*/1) { | ||||
|                 // add points at corners
 | ||||
|                 auto &points = overhang_part.contour.points; | ||||
|                 int   nSize  = points.size(); | ||||
|  |  | |||
|  | @ -607,7 +607,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co | |||
|                     "support_interface_pattern", "support_interface_top_layers", "support_interface_bottom_layers", | ||||
|                     "bridge_no_support", "max_bridge_length", "support_top_z_distance", "support_bottom_z_distance", | ||||
|                      //BBS: add more support params to dependent of enable_support
 | ||||
|                     "support_type", "support_on_build_plate_only", "support_critical_regions_only", | ||||
|                     "support_type", "support_on_build_plate_only", | ||||
|                     "support_remove_small_overhang", | ||||
|                     "support_object_xy_distance"/*, "independent_support_layer_height"*/}) | ||||
|         toggle_field(el, have_support_material); | ||||
|  | @ -621,6 +621,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co | |||
|     // hide tree support settings when normal is selected
 | ||||
|     for (auto el : {"tree_support_branch_angle", "tree_support_wall_count", "tree_support_branch_distance", "tree_support_branch_diameter", "max_bridge_length","tree_support_brim_width" }) | ||||
|         toggle_line(el, support_is_tree); | ||||
|     toggle_line("support_critical_regions_only", is_auto(support_type) && support_is_tree); | ||||
| 
 | ||||
|     // tree support use max_bridge_length instead of bridge_no_support
 | ||||
|     toggle_line("bridge_no_support", !support_is_tree); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Arthur
						Arthur