Cut WIP: Suppress use connectors for SLA mode
This commit is contained in:
parent
27f7a8da0f
commit
05c22604fb
@ -2682,6 +2682,14 @@ bool model_has_multi_part_objects(const Model &model)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool model_has_connectors(const Model &model)
|
||||
{
|
||||
for (const ModelObject *model_object : model.objects)
|
||||
if (!model_object->cut_connectors.empty())
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool model_has_advanced_features(const Model &model)
|
||||
{
|
||||
auto config_is_advanced = [](const ModelConfig &config) {
|
||||
|
@ -1338,6 +1338,8 @@ extern bool model_mmu_segmentation_data_changed(const ModelObject& mo, const Mod
|
||||
// If the model has multi-part objects, then it is currently not supported by the SLA mode.
|
||||
// Either the model cannot be loaded, or a SLA printer has to be activated.
|
||||
bool model_has_multi_part_objects(const Model &model);
|
||||
// If the model has objects with cut connectrs, then it is currently not supported by the SLA mode.
|
||||
bool model_has_connectors(const Model& model);
|
||||
// If the model has advanced features, then it cannot be processed in simple mode.
|
||||
bool model_has_advanced_features(const Model &model);
|
||||
|
||||
|
@ -2869,6 +2869,13 @@ bool GUI_App::may_switch_to_SLA_preset(const wxString& caption)
|
||||
caption);
|
||||
return false;
|
||||
}
|
||||
if (model_has_connectors(model())) {
|
||||
show_info(nullptr,
|
||||
_L("SLA technology doesn't support cut with connectors") + "\n\n" +
|
||||
_L("Please check your object list before preset changing."),
|
||||
caption);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1176,6 +1176,7 @@ void GLGizmoCut3D::on_render_input_window(float x, float y, float bottom_limit)
|
||||
bool cut_clicked = false;
|
||||
bool revert_move{ false };
|
||||
bool revert_rotation{ false };
|
||||
bool fff_printer = wxGetApp().plater()->printer_technology() == ptFFF;
|
||||
|
||||
if (! m_connectors_editing) {
|
||||
if (m_mode == size_t(CutMode::cutPlanar)) {
|
||||
@ -1263,12 +1264,14 @@ void GLGizmoCut3D::on_render_input_window(float x, float y, float bottom_limit)
|
||||
m_imgui->disabled_end();
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
if (fff_printer) {
|
||||
ImGui::Separator();
|
||||
|
||||
m_imgui->disabled_begin(!m_keep_upper || !m_keep_lower);
|
||||
if (m_imgui->button(_L("Add/Edit connectors")))
|
||||
m_connectors_editing = true;
|
||||
m_imgui->disabled_end();
|
||||
m_imgui->disabled_begin(!m_keep_upper || !m_keep_lower);
|
||||
if (m_imgui->button(_L("Add/Edit connectors")))
|
||||
m_connectors_editing = true;
|
||||
m_imgui->disabled_end();
|
||||
}
|
||||
}
|
||||
else { // connectors mode
|
||||
if (m_imgui->button("? " + (m_show_shortcuts ? wxString(ImGui::CollapseBtn) : wxString(ImGui::ExpandBtn))))
|
||||
@ -1361,7 +1364,8 @@ void GLGizmoCut3D::on_render_input_window(float x, float y, float bottom_limit)
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
m_imgui->text(m_has_invalid_connector ? wxString(ImGui::WarningMarkerSmall) + _L("Invalid connectors detected.") : wxString());
|
||||
if (fff_printer)
|
||||
m_imgui->text(m_has_invalid_connector ? wxString(ImGui::WarningMarkerSmall) + _L("Invalid connectors detected.") : wxString());
|
||||
if (!m_connectors_editing) {
|
||||
m_imgui->disabled_begin(!can_perform_cut());
|
||||
cut_clicked = m_imgui->button(_L("Perform cut"));
|
||||
|
Loading…
Reference in New Issue
Block a user