mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	FIX: do not merge overhangs when buildplate_only is on
Jira: STUDIO-3024 Change-Id: I87f73a556945d1b1640c515336ca108f65b88bdf (cherry picked from commit 1c09513324bb965647bbb157be1cacaf9371ce07)
This commit is contained in:
		
							parent
							
								
									3ea602091e
								
							
						
					
					
						commit
						12d0a51362
					
				
					 1 changed files with 4 additions and 2 deletions
				
			
		|  | @ -1142,7 +1142,7 @@ void TreeSupport::detect_overhangs(bool detect_first_sharp_tail_only) | |||
| 
 | ||||
| #ifdef SUPPORT_TREE_DEBUG_TO_SVG | ||||
|     for (const SupportLayer* layer : m_object->support_layers()) { | ||||
|         if (layer->overhang_areas.empty() && blockers[layer->id()].empty()) | ||||
|         if (layer->overhang_areas.empty() && (blockers.size()<=layer->id() || blockers[layer->id()].empty())) | ||||
|             continue; | ||||
| 
 | ||||
|         SVG svg(format("SVG/overhang_areas_%s.svg", layer->print_z), m_object->bounding_box()); | ||||
|  | @ -1981,6 +1981,7 @@ void TreeSupport::draw_circles(const std::vector<std::vector<Node*>>& contact_no | |||
|     int bottom_gap_layers = round(m_slicing_params.gap_object_support / m_slicing_params.layer_height); | ||||
|     const coordf_t branch_radius = config.tree_support_branch_diameter.value / 2; | ||||
|     const coordf_t branch_radius_scaled = scale_(branch_radius); | ||||
|     bool on_buildplate_only = config.support_on_build_plate_only.value; | ||||
|     Polygon branch_circle; //Pre-generate a circle with correct diameter so that we don't have to recompute those (co)sines every time.
 | ||||
| 
 | ||||
|     // Use square support if there are too many nodes per layer because circle support needs much longer time to compute
 | ||||
|  | @ -2113,7 +2114,8 @@ void TreeSupport::draw_circles(const std::vector<std::vector<Node*>>& contact_no | |||
|                         } | ||||
|                         area.emplace_back(ExPolygon(circle)); | ||||
|                         // merge overhang to get a smoother interface surface
 | ||||
|                         if (top_interface_layers > 0 && node.support_roof_layers_below > 0) { | ||||
|                         // Do not merge when buildplate_only is on, because some underneath nodes may have been deleted.
 | ||||
|                         if (top_interface_layers > 0 && node.support_roof_layers_below > 0 && !on_buildplate_only) { | ||||
|                             ExPolygons overhang_expanded; | ||||
|                             if (node.overhang->contour.size() > 100 || node.overhang->holes.size()>1) | ||||
|                                 overhang_expanded.emplace_back(*node.overhang); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Arthur
						Arthur