diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 914cfe4bec..2576d7956c 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1235,6 +1235,16 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons* } if (m_config.enable_prime_tower) { + for (const PrintObject* object : m_objects) { + if (object->config().precise_z_height.value && warning != nullptr) { + StringObjectException warningtemp; + warningtemp.string = L("Enabling both precise Z height and the prime tower may cause the slicing errors."); + warningtemp.opt_key = "precise_z_height"; + warningtemp.is_warning = true; + *warning = warningtemp; + break; + } + } } else { if (m_config.enable_wrapping_detection && warning!=nullptr) { StringObjectException warningtemp; diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 954923cfdd..05844c63bb 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1589,11 +1589,11 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) } bool is_precise_z_height = m_config->option("precise_z_height")->value; if (boost::any_cast(value) && is_precise_z_height) { - MessageDialog dlg(wxGetApp().plater(), _L("Enabling both precise Z height and the prime tower may cause the size of prime tower to increase. Do you still want to enable?"), + MessageDialog dlg(wxGetApp().plater(), _L("Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable?"), _L("Warning"), wxICON_WARNING | wxYES | wxNO); if (dlg.ShowModal() == wxID_NO) { DynamicPrintConfig new_conf = *m_config; - new_conf.set_key_value("enable_prime_tower", new ConfigOptionBool(false)); + new_conf.set_key_value("precise_z_height", new ConfigOptionBool(false)); m_config_manipulation.apply(m_config, &new_conf); } wxGetApp().plater()->update(); @@ -1631,7 +1631,7 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) if (opt_key == "precise_z_height") { bool wipe_tower_enabled = m_config->option("enable_prime_tower")->value; if (boost::any_cast(value) && wipe_tower_enabled) { - MessageDialog dlg(wxGetApp().plater(), _L("Enabling both precise Z height and the prime tower may cause the size of prime tower to increase. Do you still want to enable?"), + MessageDialog dlg(wxGetApp().plater(), _L("Enabling both precise Z height and the prime tower may cause the slicing errors when there are multiple parts."), _L("Warning"), wxICON_WARNING | wxYES | wxNO); if (dlg.ShowModal() == wxID_NO) { DynamicPrintConfig new_conf = *m_config;