diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index bc47d3e85..aeaf17ad1 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -425,8 +425,8 @@ int CLI::run(int argc, char **argv) fff_print.auto_assign_extruders(mo); } print->apply(model, m_print_config); - std::pair err = print->validate(); - if (! err.first == PrintValidationError::None) { + std::pair err = print->validate(); + if (err.first != PrintBase::PrintValidationError::None) { boost::nowide::cerr << err.second << std::endl; return 1; } diff --git a/src/libslic3r/Milling/MillingPostProcess.cpp b/src/libslic3r/Milling/MillingPostProcess.cpp index 059a24340..37228c504 100644 --- a/src/libslic3r/Milling/MillingPostProcess.cpp +++ b/src/libslic3r/Milling/MillingPostProcess.cpp @@ -1,6 +1,7 @@ #include "MillingPostProcess.hpp" #include "../Layer.hpp" #include "../ClipperUtils.hpp" +#include "../BoundingBox.hpp" namespace Slic3r { diff --git a/src/libslic3r/PrintBase.hpp b/src/libslic3r/PrintBase.hpp index 70074d999..e2220bcf1 100644 --- a/src/libslic3r/PrintBase.hpp +++ b/src/libslic3r/PrintBase.hpp @@ -229,12 +229,7 @@ public: // or after apply() over a model, where no object is printable (all outside the print volume). virtual bool empty() const = 0; - enum PrintValidationError { - None, - WrongPosition, - NoPrint, - WrongSettings, - }; + enum class PrintValidationError {None,WrongPosition,NoPrint,WrongSettings}; // Validate the print, return empty string if valid, return error if process() cannot (or should not) be started. virtual std::pair validate() const { return { PrintValidationError::None, std::string() }; } diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index dc4e3b5b2..bb50946df 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -612,7 +612,7 @@ std::pair SLAPrint::validate() con if(supports_en && mo->sla_points_status == sla::PointsStatus::UserModified && mo->sla_support_points.empty()) - return { PrintValidationError::WrongSettings, L("Cannot proceed without support points! " + return { PrintBase::PrintValidationError::WrongSettings, L("Cannot proceed without support points! " "Add support points or disable support generation.") }; sla::SupportConfig cfg = make_support_cfg(po->config()); @@ -623,13 +623,13 @@ std::pair SLAPrint::validate() con sla::PadConfig::EmbedObject &builtinpad = padcfg.embed_object; if(supports_en && !builtinpad.enabled && elv < cfg.head_fullwidth()) - return { PrintValidationError::WrongSettings, L( + return { PrintBase::PrintValidationError::WrongSettings, L( "Elevation is too low for object. Use the \"Pad around " "object\" feature to print the object without elevation.") }; if(supports_en && builtinpad.enabled && cfg.pillar_base_safety_distance_mm < builtinpad.object_gap_mm) { - return { PrintValidationError::WrongSettings, L( + return { PrintBase::PrintValidationError::WrongSettings, L( "The endings of the support pillars will be deployed on the " "gap between the object and the pad. 'Support base safety " "distance' has to be greater than the 'Pad object gap' " @@ -637,7 +637,7 @@ std::pair SLAPrint::validate() con } std::string pval = padcfg.validate(); - if (!pval.empty()) return { PrintValidationError::WrongSettings, pval }; + if (!pval.empty()) return { PrintBase::PrintValidationError::WrongSettings, pval }; } double expt_max = m_printer_config.max_exposure_time.getFloat(); @@ -645,16 +645,16 @@ std::pair SLAPrint::validate() con double expt_cur = m_material_config.exposure_time.getFloat(); if (expt_cur < expt_min || expt_cur > expt_max) - return { PrintValidationError::WrongSettings, L("Exposition time is out of printer profile bounds.") }; + return { PrintBase::PrintValidationError::WrongSettings, L("Exposition time is out of printer profile bounds.") }; double iexpt_max = m_printer_config.max_initial_exposure_time.getFloat(); double iexpt_min = m_printer_config.min_initial_exposure_time.getFloat(); double iexpt_cur = m_material_config.initial_exposure_time.getFloat(); if (iexpt_cur < iexpt_min || iexpt_cur > iexpt_max) - return { PrintValidationError::WrongSettings, L("Initial exposition time is out of printer profile bounds.") }; + return { PrintBase::PrintValidationError::WrongSettings, L("Initial exposition time is out of printer profile bounds.") }; - return { PrintValidationError::None, "" }; + return { PrintBase::PrintValidationError::None, "" }; } bool SLAPrint::invalidate_step(SLAPrintStep step) diff --git a/src/libslic3r/SLAPrint.hpp b/src/libslic3r/SLAPrint.hpp index 0c7afc3ad..7a9adbad9 100644 --- a/src/libslic3r/SLAPrint.hpp +++ b/src/libslic3r/SLAPrint.hpp @@ -432,7 +432,7 @@ public: const SLAPrintStatistics& print_statistics() const { return m_print_statistics; } - std::pair validate() const override; + std::pair validate() const override; // An aggregation of SliceRecord-s from all the print objects for each // occupied layer. Slice record levels dont have to match exactly. diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp index 84b3d6974..48ecbbc98 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.cpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp @@ -373,7 +373,7 @@ bool BackgroundSlicingProcess::empty() const return m_print->empty(); } -std::pair BackgroundSlicingProcess::validate() +std::pair BackgroundSlicingProcess::validate() { assert(m_print != nullptr); return m_print->validate(); diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.hpp b/src/slic3r/GUI/BackgroundSlicingProcess.hpp index fd3338fc6..6ca070aa5 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.hpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.hpp @@ -94,7 +94,7 @@ public: bool empty() const; // Validate the print. Returns a {PrintValidationError::None,empty string} if valid, returns an error message if invalid. // Call validate before calling start(). - std::pair validate(); + std::pair validate(); // Set the export path of the G-code. // Once the path is set, the G-code diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index f6a9a586c..8b0dcb700 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2560,7 +2560,7 @@ std::vector Plater::priv::load_model_objects(const ModelObjectPtrs &mode ModelInstancePtrs new_instances; #endif /* AUTOPLACEMENT_ON_LOAD */ for (ModelObject *model_object : model_objects) { - auto *object = model.add_object(*model_object); + ModelObject *object = model.add_object(*model_object); std::string object_name = object->name.empty() ? fs::path(object->input_file).filename().string() : object->name; obj_idxs.push_back(obj_count++); @@ -3166,9 +3166,9 @@ unsigned int Plater::priv::update_background_process(bool force_validation, bool // The delayed error message is no more valid. this->delayed_error_message.clear(); // The state of the Print changed, and it is non-zero. Let's validate it and give the user feedback on errors. - std::pair err = this->background_process.validate(); + std::pair err = this->background_process.validate(); this->get_current_canvas3D()->show_print_warning(""); - if (err.first == PrintValidationError::None) { + if (err.first == PrintBase::PrintValidationError::None) { if (invalidated != Print::APPLY_STATUS_UNCHANGED && this->background_processing_enabled()) return_state |= UPDATE_BACKGROUND_PROCESS_RESTART; } else { @@ -3178,7 +3178,7 @@ unsigned int Plater::priv::update_background_process(bool force_validation, bool while (p->GetParent()) p = p->GetParent(); auto *top_level_wnd = dynamic_cast(p); - if ( (err.first == PrintValidationError::WrongPosition || err.first == PrintValidationError::NoPrint) && top_level_wnd && top_level_wnd->IsActive()) { + if ( (err.first == PrintBase::PrintValidationError::WrongPosition || err.first == PrintBase::PrintValidationError::NoPrint) && top_level_wnd && top_level_wnd->IsActive()) { this->get_current_canvas3D()->show_print_warning(err.second); } else if (!postpone_error_messages && top_level_wnd && top_level_wnd->IsActive()) { // The error returned from the Print needs to be translated into the local language. diff --git a/src/test/test_data.cpp b/src/test/test_data.cpp index cbc358932..c7485e835 100644 --- a/src/test/test_data.cpp +++ b/src/test/test_data.cpp @@ -293,7 +293,7 @@ void init_print(Print& print, std::initializer_list meshes, Slic3r::Mo } print.apply(model, config); - std::pair err = print.validate(); + std::pair err = print.validate(); //std::cout << "validate result : " << err << ", mempty print? " << print.empty() << "\n"; }