don't emit warning when generate calibration

supermerill/SuperSlicer#1325
This commit is contained in:
remi durand 2021-06-18 01:09:46 +02:00
parent 532ecec73a
commit 428b4c0f56
10 changed files with 29 additions and 3 deletions

View File

@ -1276,7 +1276,7 @@ static inline bool sequential_print_horizontal_clearance_valid(const Print &prin
Polygons convex_hulls_other;
std::map<ObjectID, Polygon> map_model_object_to_convex_hull;
for (const PrintObject *print_object : print.objects()) {
double dist_grow = PrintConfig::min_object_distance(&print_object->config());
double dist_grow = PrintConfig::min_object_distance(&print.full_print_config());// &print_object->config());
assert(! print_object->model_object()->instances.empty());
assert(! print_object->instances().empty());
ObjectID model_object_id = print_object->model_object()->id();

View File

@ -3,6 +3,7 @@
#include "libslic3r/Model.hpp"
#include "libslic3r/Utils.hpp"
#include "libslic3r/AppConfig.hpp"
#include "GLCanvas3D.hpp"
#include "GUI.hpp"
#include "GUI_ObjectList.hpp"
#include "Plater.hpp"
@ -36,12 +37,12 @@ void CalibrationBedDialog::create_geometry(wxCommandEvent& event_args) {
if (!plat->new_project(L("First layer calibration")))
return;
GLCanvas3D::set_warning_freeze(true);
bool autocenter = gui_app->app_config->get("autocenter") == "1";
if(autocenter) {
//disable aut-ocenter for this calibration.
gui_app->app_config->set("autocenter", "0");
}
std::vector<size_t> objs_idx = plat->load_files(std::vector<std::string>{
Slic3r::resources_dir()+"/calibration/bed_leveling/patch.amf",
Slic3r::resources_dir()+"/calibration/bed_leveling/patch.amf",
@ -134,6 +135,7 @@ void CalibrationBedDialog::create_geometry(wxCommandEvent& event_args) {
}
//update plater
GLCanvas3D::set_warning_freeze(false);
this->gui_app->get_tab(Preset::TYPE_PRINT)->load_config(new_print_config);
plat->on_config_change(new_print_config);
plat->changed_objects(objs_idx);

View File

@ -4,6 +4,7 @@
#include "libslic3r/Utils.hpp"
#include "libslic3r/AppConfig.hpp"
#include "Jobs/ArrangeJob.hpp"
#include "GLCanvas3D.hpp"
#include "GUI.hpp"
#include "GUI_ObjectList.hpp"
#include "Plater.hpp"
@ -56,6 +57,7 @@ void CalibrationBridgeDialog::create_geometry(std::string setting_to_test, bool
if (!plat->new_project(L("Bridge calibration")))
return;
GLCanvas3D::set_warning_freeze(true);
bool autocenter = gui_app->app_config->get("autocenter") == "1";
if (autocenter) {
//disable auto-center for this calibration.
@ -143,6 +145,7 @@ void CalibrationBridgeDialog::create_geometry(std::string setting_to_test, bool
}
//update plater
GLCanvas3D::set_warning_freeze(false);
this->gui_app->get_tab(Preset::TYPE_PRINT)->load_config(new_print_config);
plat->on_config_change(new_print_config);
plat->changed_objects(objs_idx);

View File

@ -2,6 +2,7 @@
#include "I18N.hpp"
#include "libslic3r/Model.hpp"
#include "libslic3r/Utils.hpp"
#include "GLCanvas3D.hpp"
#include "GUI.hpp"
#include "GUI_ObjectList.hpp"
#include "Plater.hpp"
@ -60,6 +61,7 @@ void CalibrationCubeDialog::create_geometry(std::string calibration_path) {
if (!plat->new_project(L("Calibration cube")))
return;
GLCanvas3D::set_warning_freeze(true);
std::vector<size_t> objs_idx = plat->load_files(std::vector<std::string>{
Slic3r::resources_dir()+"/calibration/cube/"+ calibration_path}, true, false, false);
@ -103,6 +105,7 @@ void CalibrationCubeDialog::create_geometry(std::string calibration_path) {
}
//update plater
GLCanvas3D::set_warning_freeze(false);
plat->changed_objects(objs_idx);
plat->is_preview_shown();
//update everything, easier to code.

View File

@ -4,6 +4,7 @@
#include "libslic3r/Utils.hpp"
#include "libslic3r/AppConfig.hpp"
#include "Jobs/ArrangeJob.hpp"
#include "GLCanvas3D.hpp"
#include "GUI.hpp"
#include "GUI_ObjectList.hpp"
#include "Plater.hpp"
@ -41,6 +42,7 @@ void CalibrationFlowDialog::create_geometry(float start, float delta) {
if (!plat->new_project(L("Flow calibration")))
return;
GLCanvas3D::set_warning_freeze(true);
bool autocenter = gui_app->app_config->get("autocenter") == "1";
if (autocenter) {
//disable auto-center for this calibration.
@ -159,6 +161,7 @@ void CalibrationFlowDialog::create_geometry(float start, float delta) {
}
//update plater
GLCanvas3D::set_warning_freeze(false);
this->gui_app->get_tab(Preset::TYPE_PRINT)->load_config(new_print_config);
plat->on_config_change(new_print_config);
plat->changed_objects(objs_idx);

View File

@ -4,6 +4,7 @@
#include "libslic3r/Utils.hpp"
#include "libslic3r/AppConfig.hpp"
#include "Jobs/ArrangeJob.hpp"
#include "GLCanvas3D.hpp"
#include "GUI.hpp"
#include "GUI_ObjectList.hpp"
#include "Plater.hpp"
@ -46,6 +47,7 @@ void CalibrationOverBridgeDialog::create_geometry(bool over_bridge) {
if (!plat->new_project(L("Over-bridge calibration")))
return;
GLCanvas3D::set_warning_freeze(true);
bool autocenter = gui_app->app_config->get("autocenter") == "1";
if (autocenter) {
//disable aut-ocenter for this calibration.
@ -135,6 +137,7 @@ void CalibrationOverBridgeDialog::create_geometry(bool over_bridge) {
}
//update plater
GLCanvas3D::set_warning_freeze(false);
this->gui_app->get_tab(Preset::TYPE_PRINT)->load_config(new_print_config);
plat->on_config_change(new_print_config);
plat->changed_objects(objs_idx);

View File

@ -4,6 +4,7 @@
#include "libslic3r/Utils.hpp"
#include "libslic3r/AppConfig.hpp"
#include "Jobs/ArrangeJob.hpp"
#include "GLCanvas3D.hpp"
#include "GUI.hpp"
#include "GUI_ObjectList.hpp"
#include "Plater.hpp"
@ -104,6 +105,7 @@ void CalibrationRetractionDialog::create_geometry(wxCommandEvent& event_args) {
if (!plat->new_project(L("Retraction calibration")))
return;
GLCanvas3D::set_warning_freeze(true);
bool autocenter = gui_app->app_config->get("autocenter") == "1";
if (autocenter) {
//disable aut-ocenter for this calibration.
@ -254,6 +256,7 @@ void CalibrationRetractionDialog::create_geometry(wxCommandEvent& event_args) {
}
//update plater
GLCanvas3D::set_warning_freeze(false);
plat->changed_objects(objs_idx);
//if (plat->printer_technology() == ptFFF)
//plat->fff_print().full_print_config().apply(plat->config());

View File

@ -4,6 +4,7 @@
#include "libslic3r/CustomGCode.hpp"
#include "libslic3r/Model.hpp"
#include "libslic3r/AppConfig.hpp"
#include "GLCanvas3D.hpp"
#include "GUI.hpp"
#include "GUI_ObjectList.hpp"
#include "Plater.hpp"
@ -59,6 +60,7 @@ void CalibrationTempDialog::create_geometry(wxCommandEvent& event_args) {
if (!plat->new_project(L("Temperature calibration")))
return;
GLCanvas3D::set_warning_freeze(true);
std::vector<size_t> objs_idx = plat->load_files(std::vector<std::string>{
Slic3r::resources_dir()+"/calibration/filament_temp/Smart_compact_temperature_calibration_item.amf"}, true, false, false);
@ -165,6 +167,7 @@ void CalibrationTempDialog::create_geometry(wxCommandEvent& event_args) {
model.objects[objs_idx[0]]->config.set_key_value("top_fill_pattern", new ConfigOptionEnum<InfillPattern>(ipRectilinearWGapFill));
//update plater
GLCanvas3D::set_warning_freeze(false);
this->gui_app->get_tab(Preset::TYPE_PRINT)->load_config(new_print_config);
plat->on_config_change(new_print_config);
//this->gui_app->get_tab(Preset::TYPE_PRINTER)->load_config(new_printer_config);

View File

@ -627,6 +627,9 @@ GLCanvas3D::WarningTexture::WarningTexture()
void GLCanvas3D::WarningTexture::activate(WarningTexture::Warning warning, bool state, const GLCanvas3D& canvas, std::string str_override)
{
if (m_freeze)
return;
// Since we have NotificationsManager.hpp the warning textures are no loger needed.
// However i have left the infrastructure here and only commented the rendering.
// The plater warning / error notifications are added and closed from here.

View File

@ -323,6 +323,7 @@ class GLCanvas3D
// function used to get an information for rescaling of the warning
void msw_rescale(const GLCanvas3D& canvas);
inline static bool m_freeze = false;
private:
static const unsigned char Background_Color[3];
static const unsigned char Opacity;
@ -432,6 +433,8 @@ public:
bool enable_rotation = false;
};
static void set_warning_freeze(bool freeze) { WarningTexture::m_freeze = freeze; }
private:
wxGLCanvas* m_canvas;
wxGLContext* m_context;