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:
|
||||||
auto firstp = clpath.Contour.front();
|
// https://github.com/prusa3d/PrusaSlicer/issues/2209
|
||||||
clpath.Contour.emplace_back(firstp);
|
if (clpath.Contour.size() < 3)
|
||||||
}
|
return;
|
||||||
|
|
||||||
|
auto firstp = clpath.Contour.front();
|
||||||
|
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…
Reference in a new issue