mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	
						commit
						4b040b8569
					
				
					 2 changed files with 11 additions and 6 deletions
				
			
		|  | @ -572,10 +572,13 @@ static void process_arrangeable(const ArrangePolygon &arrpoly, | ||||||
| 
 | 
 | ||||||
|     clppr::Polygon clpath(Slic3rMultiPoint_to_ClipperPath(p)); |     clppr::Polygon clpath(Slic3rMultiPoint_to_ClipperPath(p)); | ||||||
| 
 | 
 | ||||||
|     if (!clpath.Contour.empty()) { |     // This fixes:
 | ||||||
|  |     // https://github.com/prusa3d/PrusaSlicer/issues/2209
 | ||||||
|  |     if (clpath.Contour.size() < 3) | ||||||
|  |         return; | ||||||
|  | 
 | ||||||
|     auto firstp = clpath.Contour.front(); |     auto firstp = clpath.Contour.front(); | ||||||
|     clpath.Contour.emplace_back(firstp); |     clpath.Contour.emplace_back(firstp); | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     outp.emplace_back(std::move(clpath)); |     outp.emplace_back(std::move(clpath)); | ||||||
|     outp.back().rotation(rotation); |     outp.back().rotation(rotation); | ||||||
|  |  | ||||||
|  | @ -1273,6 +1273,10 @@ void ModelObject::split(ModelObjectPtrs* new_objects) | ||||||
|     ModelVolume* volume = this->volumes.front(); |     ModelVolume* volume = this->volumes.front(); | ||||||
|     TriangleMeshPtrs meshptrs = volume->mesh().split(); |     TriangleMeshPtrs meshptrs = volume->mesh().split(); | ||||||
|     for (TriangleMesh *mesh : meshptrs) { |     for (TriangleMesh *mesh : meshptrs) { | ||||||
|  | 
 | ||||||
|  |         // FIXME: crashes if not satisfied
 | ||||||
|  |         if (mesh->facets_count() < 3) continue; | ||||||
|  | 
 | ||||||
|         mesh->repair(); |         mesh->repair(); | ||||||
|          |          | ||||||
|         // XXX: this seems to be the only real usage of m_model, maybe refactor this so that it's not needed?
 |         // XXX: this seems to be the only real usage of m_model, maybe refactor this so that it's not needed?
 | ||||||
|  | @ -1858,8 +1862,6 @@ arrangement::ArrangePolygon ModelInstance::get_arrange_polygon() const | ||||||
| 
 | 
 | ||||||
|     assert(!p.points.empty()); |     assert(!p.points.empty()); | ||||||
| 
 | 
 | ||||||
|     // this may happen for malformed models, see:
 |  | ||||||
|     // https://github.com/prusa3d/PrusaSlicer/issues/2209
 |  | ||||||
| //    if (!p.points.empty()) {
 | //    if (!p.points.empty()) {
 | ||||||
| //        Polygons pp{p};
 | //        Polygons pp{p};
 | ||||||
| //        pp = p.simplify(scaled<double>(SIMPLIFY_TOLERANCE_MM));
 | //        pp = p.simplify(scaled<double>(SIMPLIFY_TOLERANCE_MM));
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 tamasmeszaros
						tamasmeszaros