diff --git a/xs/src/libslic3r/Print.cpp b/xs/src/libslic3r/Print.cpp index dd5ad9059..b76554724 100644 --- a/xs/src/libslic3r/Print.cpp +++ b/xs/src/libslic3r/Print.cpp @@ -1318,7 +1318,7 @@ template<> class FilePrinter { Layer(const Layer&) = delete; Layer(Layer&& m): - first(std::move(m.first)), second(/*std::move(m.second)*/) {} + first(std::move(m.first))/*, second(std::move(m.second))*/ {} }; // We will save the compressed PNG data into stringstreams which can be done @@ -1448,8 +1448,12 @@ void Print::print_to(std::string dirpath, auto print_bb = bounding_box(); // If the print does not fit into the print area we should cry about it. - assert(unscale(print_bb.size().x) <= width_mm || - unscale(print_bb.size().y) <= height_mm); + if(unscale(print_bb.size().x) > width_mm || + unscale(print_bb.size().y) > height_mm) { + BOOST_LOG_TRIVIAL(warning) << "Warning: Print will not fit!" << "\n" + << "Width needed: " << unscale(print_bb.size().x) << "\n" + << "Height needed: " << unscale(print_bb.size().y) << "\n"; + } // Offset for centering the print onto the print area auto cx = scale_(width_mm)/2 - (print_bb.center().x - print_bb.min.x); @@ -1468,10 +1472,9 @@ void Print::print_to(std::string dirpath, ExPolygonCollection slices = l.slices; // Copy the layer slices // Sort the polygons in the layer - std::sort(slices.expolygons.begin(), - slices.expolygons.end(), - [](const ExPolygon& a, const ExPolygon& b){ - return a.contains(b.contour.first_point()) ? false : true; + std::stable_sort(slices.expolygons.begin(), slices.expolygons.end(), + [](const ExPolygon& a, const ExPolygon& b) { + return a.contour.contains(b.contour.first_point()) ? false : true; }); printer.beginLayer(layer_id); // Switch to the appropriate layer @@ -1493,15 +1496,15 @@ void Print::print_to(std::string dirpath, }); if(has_support_material() && layer_id > 0) { -// BOOST_LOG_TRIVIAL(warning) << "support material for layer " -// << layer_id << " defined but export is " -// "unimplemented."; + BOOST_LOG_TRIVIAL(warning) << "support material for layer " + << layer_id << " defined but export is " + "not yet implemented."; } printer.finishLayer(layer_id); // Finish the layer for later saving it. - // std::cout << "Layer " << layer_id << " processed." << "\n"; + std::cout << "Layer " << layer_id << " processed." << std::endl; // printer.saveLayer(layer_id, dir); We could save the layer immediately }; diff --git a/xs/src/libslic3r/Print.hpp b/xs/src/libslic3r/Print.hpp index 8fd8f832d..ee509650b 100644 --- a/xs/src/libslic3r/Print.hpp +++ b/xs/src/libslic3r/Print.hpp @@ -325,7 +325,7 @@ public: double width_mm, double height_mm); void print_to_png(std::string dirpath) { - // Will need some GUI dialogue perhaps for these to be specified. + // Will need some GUI dialog perhaps for these to be specified. print_to_png(dirpath, 1440, 2560, 68.0, 120.0); }