ENH: CLI: optimize the logic for message

1. treat the critical slicing warnings as error
2. save more information into result
including the triangle counts and the non-critical warnings

JIRA: STUDIO-4217

Change-Id: I25b746d06c9a1ef2d642c67852577982a2986322
(cherry picked from commit 1d9707ed04cbb6dc12b440b70f3581c619136ac3)
This commit is contained in:
lane.wei 2023-08-25 16:58:36 +08:00 committed by Lane.Wei
parent 82791b0320
commit bf8ac4c436
4 changed files with 182 additions and 100 deletions

View file

@ -477,7 +477,10 @@ void PrintObject::generate_support_material()
{LargeOverhang,L("large overhangs")} };
std::string warning_message = format(L("It seems object %s has %s. Please re-orient the object or enable support generation."),
this->model_object()->name, reasons[sntype]);
this->active_step_add_warning(PrintStateBase::WarningLevel::CRITICAL, warning_message, PrintStateBase::SlicingNeedSupportOn);
if (SharpTail == sntype)
this->active_step_add_warning(PrintStateBase::WarningLevel::CRITICAL, warning_message, PrintStateBase::SlicingNeedSupportOn);
else
this->active_step_add_warning(PrintStateBase::WarningLevel::NON_CRITICAL, warning_message, PrintStateBase::SlicingNeedSupportOn);
}
#if 0
@ -795,7 +798,7 @@ bool PrintObject::invalidate_state_by_config_options(
} else if (
opt_key == "bottom_shell_layers"
|| opt_key == "top_shell_layers") {
steps.emplace_back(posPrepareInfill);
const auto *old_shell_layers = old_config.option<ConfigOptionInt>(opt_key);
@ -807,7 +810,7 @@ bool PrintObject::invalidate_state_by_config_options(
if (value_changed && this->object_extruders().size() > 1) {
steps.emplace_back(posSlice);
}
}
else if (m_print->config().spiral_mode && opt_key == "bottom_shell_layers") {
// Changing the number of bottom layers when a spiral vase is enabled requires re-slicing the object again.
// Otherwise, holes in the bottom layers could be filled, as is reported in GH #5528.