diff --git a/src/libseqarrange/src/seq_preprocess.cpp b/src/libseqarrange/src/seq_preprocess.cpp index 1587646d6b..528ed9f0ca 100644 --- a/src/libseqarrange/src/seq_preprocess.cpp +++ b/src/libseqarrange/src/seq_preprocess.cpp @@ -135,10 +135,10 @@ const std::vector SEQ_UNREACHABLE_POLYGON_NOZZLE_LEVEL_MK4 = const std::vector SEQ_UNREACHABLE_POLYGON_EXTRUDER_LEVEL_MK4 = { { /* fan - hand tailored */ - { -1000000, -21000000}, + { -10000000, -21000000}, { 37000000, -21000000}, { 37000000, 44000000}, - { -1000000, 44000000} + { -10000000, 44000000} /* fan - original from decimator { 87952801, 3665480}, @@ -148,14 +148,14 @@ const std::vector SEQ_UNREACHABLE_POLYGON_EXTRUDER_LEVEL_MK4 = { 107889619, 2905295}, { 102396166, 55454515}, { 101386126, 58737097}, - { 93053422, 62777197}, - { 87447788, 59999636}, - { 70782970, 28440457}, + { 93 053 422, 62777197}, + { 87 447 788, 59999636}, + { 70 782 970, 28440457}, // nozzle - { -29076068, 18872356}, - { -29001876, 18872356}, - { -29001876, 18952646}, + { -29 076 068, 18 872 356}, + { -29 001 876, 18 872 356}, + { -29 001 876, 18 952 646}, { -29076068, 18952646}, */ @@ -956,6 +956,11 @@ std::vector > simplify_UnreachableZonePolygons(cons { if (check_PolygonConsumation(unreachable_polygons[i], unreachable_polygons[j])) { + #ifdef DEBUG + { + printf("Consumed: %d vs %d\n", i, j); + } + #endif consumed = true; break; } @@ -963,7 +968,7 @@ std::vector > simplify_UnreachableZonePolygons(cons } } if (!consumed) - { + { simplified_unreachable_polygons.push_back(unreachable_polygons[i]); } } diff --git a/src/libseqarrange/src/seq_preprocess.hpp b/src/libseqarrange/src/seq_preprocess.hpp index e4791d9047..0aacdcb616 100644 --- a/src/libseqarrange/src/seq_preprocess.hpp +++ b/src/libseqarrange/src/seq_preprocess.hpp @@ -193,12 +193,15 @@ void prepare_UnreachableZonePolygons(const SolverConfiguration const std::vector > &extruder_box_level_polygons, std::vector &unreachable_polygons); -bool check_PolygonSize(const SolverConfiguration &solver_configuration, const Slic3r::Polygon &polygon); -bool check_PolygonSize(const SolverConfiguration &solver_configuration, coord_t scale_factor, const Slic3r::Polygon &polygon); - -void simplify_ConvexUnreachablePolygons(const std::vector > &unreachable_convex_polygons, - std::vector &simplified_unreachable_polygons); +bool check_PolygonSizeFitToPlate(const SolverConfiguration &solver_configuration, const Slic3r::Polygon &polygon); +bool check_PolygonSizeFitToPlate(const SolverConfiguration &solver_configuration, coord_t scale_factor, const Slic3r::Polygon &polygon); + +/*----------------------------------------------------------------*/ + +bool check_PolygonConsumation(const std::vector &polygons, const std::vector &consumer_polygons); +std::vector > simplify_UnreachableZonePolygons(const std::vector > &unreachable_polygons); + void glue_LowObjects(std::vector &solvable_ojects); @@ -206,6 +209,7 @@ void glue_LowObjects(std::vector &solvable_ojects); double calc_PolygonArea(const Slic3r::Polygon &polygon); +double calc_PolygonUnreachableZoneArea(const std::vector &unreachable_polygons); double calc_PolygonUnreachableZoneArea(const Slic3r::Polygon &polygon, const std::vector &unreachable_polygons); diff --git a/src/slic3r/GUI/ArrangeHelper.cpp b/src/slic3r/GUI/ArrangeHelper.cpp index 9c1c71fdb7..e2f4cf96ff 100644 --- a/src/slic3r/GUI/ArrangeHelper.cpp +++ b/src/slic3r/GUI/ArrangeHelper.cpp @@ -25,8 +25,8 @@ static Sequential::PrinterGeometry get_printer_geometry() { // Just hardcode MK4 geometry for now. std::vector slices; - slices.push_back(ExtruderSlice{ 0, CONVEX, { { { -500000, -500000 }, { 500000, -500000 }, { 500000, 500000 }, { -500000, 500000 } } } }); - slices.push_back(ExtruderSlice{ 3000000, CONVEX, { { { -1000000, -21000000 }, { 37000000, -21000000 }, { 37000000, 44000000 }, { -1000000, 44000000 } }, + slices.push_back(ExtruderSlice{ 0, CONVEX, { { { -5000000, -5000000 }, { 5000000, -5000000 }, { 5000000, 5000000 }, { -5000000, 5000000 } } } }); + slices.push_back(ExtruderSlice{ 3000000, CONVEX, { { { -10000000, -21000000 }, { 37000000, -21000000 }, { 37000000, 44000000 }, { -10000000, 44000000 } }, { { -40000000, -45000000 }, { 38000000, -45000000 }, { 38000000, 20000000 }, { -40000000, 20000000 } } } }); slices.push_back(ExtruderSlice{ 11000000, BOX, { { {-350000000, -23000000 }, {350000000, -23000000 }, {350000000, -35000000 }, {-350000000, -35000000 } } } }); slices.push_back(ExtruderSlice{ 13000000, BOX, { { { -12000000, -350000000 }, { 9000000, -350000000 }, { 9000000, -39000000 }, { -12000000, -39000000 } },