From d6e40352c2b5c810304b711b4ba0ed736a80a1b3 Mon Sep 17 00:00:00 2001 From: milk Date: Mon, 7 Jul 2025 20:10:02 +0800 Subject: [PATCH] FIX:Add colors exceed message jira:[STUDIO-13236] Change-Id: Id5b761a661c4b0d47cb8cd600a061b403dce0ae8 (cherry picked from commit 7a11f7e8ca0cb08c08b8a1e62f77b670b61aa094) --- src/slic3r/GUI/PrePrintChecker.cpp | 4 ++++ src/slic3r/GUI/PrePrintChecker.hpp | 1 + src/slic3r/GUI/SelectMachine.cpp | 14 +++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/PrePrintChecker.cpp b/src/slic3r/GUI/PrePrintChecker.cpp index 83d558f896..50f805c8b1 100644 --- a/src/slic3r/GUI/PrePrintChecker.cpp +++ b/src/slic3r/GUI/PrePrintChecker.cpp @@ -37,6 +37,8 @@ std::string PrePrintChecker::get_print_status_info(PrintDialogStatus status) case PrintStatusBlankPlate: return "PrintStatusBlankPlate"; case PrintStatusUnsupportedPrinter: return "PrintStatusUnsupportedPrinter"; case PrintStatusInvalidMapping: return "PrintStatusInvalidMapping"; + case PrintStatusColorQuantityExceed: return "PrintStatusColorQuantityExceed"; + // Handle filament errors case PrintStatusAmsOnSettingup: return "PrintStatusAmsOnSettingup"; case PrintStatusAmsMappingInvalid: return "PrintStatusAmsMappingInvalid"; case PrintStatusAmsMappingU0Invalid: return "PrintStatusAmsMappingU0Invalid"; @@ -89,6 +91,8 @@ wxString PrePrintChecker::get_pre_state_msg(PrintDialogStatus status) case PrintStatusTPUUnsupportAutoCali: return _L("TPU 90A/TPU 85A is too soft and does not support automatic Flow Dynamics calibration."); case PrintStatusWarningKvalueNotUsed: return _L("Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value."); case PrintStatusNotSupportedPrintAll: return _L("This printer does not support printing all plates"); + case PrintStatusColorQuantityExceed: return _L("Maximum 16 colors are supported. Please reduce current project filaments to <= 16 colors in Prepare Page before printing."); + } return wxEmptyString; } diff --git a/src/slic3r/GUI/PrePrintChecker.hpp b/src/slic3r/GUI/PrePrintChecker.hpp index 2683cc1872..b8f69d415b 100644 --- a/src/slic3r/GUI/PrePrintChecker.hpp +++ b/src/slic3r/GUI/PrePrintChecker.hpp @@ -76,6 +76,7 @@ enum PrintDialogStatus : unsigned int { PrintStatusAmsMappingMixInvalid, PrintStatusTPUUnsupportAutoCali, PrintStatusHasFilamentInBlackListError, + PrintStatusColorQuantityExceed, PrintStatusFilamentErrorEnd, PrintStatusErrorEnd,//->end error<- diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 2c41fe31eb..cf57b5c3a2 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1576,7 +1576,11 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector 1) @@ -3308,6 +3312,13 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_) show_status(PrintDialogStatus::PrintStatusNoSdcard); return; } + if (wxGetApp().preset_bundle->filament_presets.size() > 16 && m_print_type != PrintFromType::FROM_SDCARD_VIEW) { + if (!obj_->is_enable_ams_np && !obj_->is_enable_np) + { + show_status(PrintDialogStatus::PrintStatusColorQuantityExceed); + return; + } + } /*check sdcard when if lan mode printer*/ if (obj_->is_lan_mode_printer()) { @@ -3515,7 +3526,7 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_) try { int chamber_temp = chamber_temperatures->values[item.id]; - if (chamber_temp >= 40) { + if (chamber_temp >= 40) { high_temp_filaments.insert(item.get_display_filament_type());// high printing chamber temperature } @@ -5303,5 +5314,6 @@ void PrinterInfoBox::OnBtnQuestionClicked(wxCommandEvent& event) wxLaunchDefaultBrowser(wxT("https://wiki.bambulab.com/en/software/bambu-studio/failed-to-connect-printer")); } + } } // namespace Slic3r::GUI