From 5eeea0beba82a99b9f445c218a31862650ee4715 Mon Sep 17 00:00:00 2001 From: tao wang Date: Fri, 10 Jan 2025 22:09:40 +0800 Subject: [PATCH] ENH:fix mapping rules when printing from SD card jira:[STUDIO-9699] Change-Id: I6019875b312cd29d20d69c876d195e5da1a88d18 (cherry picked from commit 062d4745dd9d19c62b618235ef819f247e538e68) --- src/slic3r/GUI/SelectMachine.cpp | 16 ++++++++++++---- src/slic3r/GUI/Widgets/AMSControl.cpp | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index cb6dbdcfa9..9eefc4dea7 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2313,7 +2313,7 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) } confirm_dlg.on_show(); - } + } else { this->on_send_print(); @@ -4185,7 +4185,6 @@ void SelectMachineDialog::set_default_from_sdcard() m_sizer_ams_mapping_right->Layout(); m_filament_panel_right_sizer->Layout(); m_filament_right_panel->Layout(); - m_mapping_popup.set_show_type(ShowType::LEFT_AND_RIGHT); } else { m_filament_left_panel->Hide(); @@ -4194,7 +4193,6 @@ void SelectMachineDialog::set_default_from_sdcard() m_sizer_ams_mapping->SetCols(8); m_sizer_ams_mapping->Layout(); m_filament_panel_sizer->Layout(); - m_mapping_popup.set_show_type(ShowType::RIGHT); } //init MaterialItem @@ -4237,7 +4235,7 @@ void SelectMachineDialog::set_default_from_sdcard() } item->Bind(wxEVT_LEFT_UP, [this, item, materials](wxMouseEvent& e) {}); - item->Bind(wxEVT_LEFT_DOWN, [this, obj_, item, materials, fo](wxMouseEvent& e) { + item->Bind(wxEVT_LEFT_DOWN, [this, obj_, item, materials, diameters_count, filament_map, fo](wxMouseEvent& e) { MaterialHash::iterator iter = m_materialList.begin(); while (iter != m_materialList.end()) { int id = iter->first; @@ -4263,6 +4261,16 @@ void SelectMachineDialog::set_default_from_sdcard() pos.y += item->GetRect().height; m_mapping_popup.Move(pos); + if (diameters_count > 1) { + if (obj_ && can_hybrid_mapping(obj_->m_extder_data)) { + m_mapping_popup.set_show_type(ShowType::LEFT_AND_RIGHT); + } else if (filament_map[m_current_filament_id] == 1) { + m_mapping_popup.set_show_type(ShowType::LEFT); + } else if (filament_map[m_current_filament_id] == 2) { + m_mapping_popup.set_show_type(ShowType::RIGHT); + } + } + if (obj_ && obj_->has_ams() && (m_checkbox_list["use_ams"]->getValue() == "on") && diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 58f870a01c..92f9f007bc 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -1595,7 +1595,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy if (model == EXT_AMS && ams->get_ext_type() == AMSModelOriginType::GENERIC_EXT) { if (m_ams_info.size() == 0 && m_ext_info.size() == 1) { left = true; - length = 49; + length = 50; } else { length = left ? 110 : 82; }