FIX: check close chamber temperature

JIRA: [STUDIO-13676]
Change-Id: I5c2712ade24d20d361d00a0b763dd16479aa5fb1
(cherry picked from commit 7ac3c82fbaf0337351d41f5d65c2ae088f755744)
This commit is contained in:
xin.zhang
2025-08-09 16:08:21 +08:00
committed by Noisyfox
parent 21cfc7edeb
commit 2626a6bc3b
16 changed files with 58 additions and 13 deletions

View File

@@ -43,6 +43,7 @@
"support_ai_monitoring": false, "support_ai_monitoring": false,
"support_first_layer_inspect": true, "support_first_layer_inspect": true,
"support_save_remote_print_file_to_storage": true, "support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": false, "support_chamber_temp_edit": false,
"support_extrusion_cali": false, "support_extrusion_cali": false,
"support_user_preset": false "support_user_preset": false

View File

@@ -43,6 +43,7 @@
"support_ai_monitoring": false, "support_ai_monitoring": false,
"support_first_layer_inspect": true, "support_first_layer_inspect": true,
"support_save_remote_print_file_to_storage": true, "support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": false, "support_chamber_temp_edit": false,
"support_extrusion_cali": false, "support_extrusion_cali": false,
"support_user_preset": false "support_user_preset": false

View File

@@ -37,6 +37,7 @@
"support_lidar_calibration": false, "support_lidar_calibration": false,
"support_ai_monitoring": false, "support_ai_monitoring": false,
"support_first_layer_inspect": false, "support_first_layer_inspect": false,
"support_chamber": false,
"support_chamber_temp_edit": false, "support_chamber_temp_edit": false,
"support_extrusion_cali": true, "support_extrusion_cali": true,
"support_user_preset": false, "support_user_preset": false,

View File

@@ -37,6 +37,7 @@
"support_lidar_calibration": false, "support_lidar_calibration": false,
"support_ai_monitoring": false, "support_ai_monitoring": false,
"support_first_layer_inspect": false, "support_first_layer_inspect": false,
"support_chamber": true,
"support_chamber_temp_edit": false, "support_chamber_temp_edit": false,
"support_extrusion_cali": true, "support_extrusion_cali": true,
"support_user_preset": false, "support_user_preset": false,

View File

@@ -44,6 +44,7 @@
"support_lidar_calibration": true, "support_lidar_calibration": true,
"support_ai_monitoring": true, "support_ai_monitoring": true,
"support_first_layer_inspect": true, "support_first_layer_inspect": true,
"support_chamber": true,
"support_chamber_temp_edit": true, "support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [0, 60], "support_chamber_temp_edit_range": [0, 60],
"support_extrusion_cali": false, "support_extrusion_cali": false,

View File

@@ -37,6 +37,7 @@
"support_lidar_calibration": false, "support_lidar_calibration": false,
"support_ai_monitoring": false, "support_ai_monitoring": false,
"support_first_layer_inspect": false, "support_first_layer_inspect": false,
"support_chamber": false,
"support_chamber_temp_edit": false, "support_chamber_temp_edit": false,
"support_extrusion_cali": true, "support_extrusion_cali": true,
"support_user_preset": false, "support_user_preset": false,

View File

@@ -37,6 +37,7 @@
"support_lidar_calibration": false, "support_lidar_calibration": false,
"support_ai_monitoring": false, "support_ai_monitoring": false,
"support_first_layer_inspect": false, "support_first_layer_inspect": false,
"support_chamber": false,
"support_chamber_temp_edit": false, "support_chamber_temp_edit": false,
"support_extrusion_cali": true, "support_extrusion_cali": true,
"support_user_preset": false, "support_user_preset": false,

View File

@@ -54,6 +54,7 @@
"support_ai_monitoring": true, "support_ai_monitoring": true,
"support_first_layer_inspect": false, "support_first_layer_inspect": false,
"support_save_remote_print_file_to_storage": true, "support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": true, "support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [ 0, 65 ], "support_chamber_temp_edit_range": [ 0, 65 ],
"support_chamber_temp_switch_heating": 40, "support_chamber_temp_switch_heating": 40,

View File

@@ -54,6 +54,7 @@
"support_ai_monitoring": true, "support_ai_monitoring": true,
"support_first_layer_inspect": false, "support_first_layer_inspect": false,
"support_save_remote_print_file_to_storage": true, "support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": true, "support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [ 0, 65 ], "support_chamber_temp_edit_range": [ 0, 65 ],
"support_chamber_temp_switch_heating": 40, "support_chamber_temp_switch_heating": 40,

View File

@@ -1 +1,5 @@
<<<<<<< HEAD (29536a NEW:add helio file to translate list)
02.00.00.26 02.00.00.26
=======
02.00.00.29
>>>>>>> CHANGE (5fa0cb FIX: check close chamber temperature)

View File

@@ -80,7 +80,7 @@ public:
}; };
/*copied from AmsTray::get_display_filament_type()*/ /*copied from AmsTray::get_display_filament_type()*/
std::string get_display_filament_type() std::string get_display_filament_type() const
{ {
if (type == "PLA-S") if (type == "PLA-S")
return "Sup.PLA"; return "Sup.PLA";

View File

@@ -18,6 +18,7 @@ void DevConfig::ParseConfig(const json& print_json)
void DevConfig::ParseChamberConfig(const json& print_json) void DevConfig::ParseChamberConfig(const json& print_json)
{ {
DevJsonValParser::ParseVal(print_json, "support_chamber", m_has_chamber);
DevJsonValParser::ParseVal(print_json, "support_chamber_temp_edit", m_support_chamber_edit); DevJsonValParser::ParseVal(print_json, "support_chamber_temp_edit", m_support_chamber_edit);
if (m_support_chamber_edit) if (m_support_chamber_edit)
{ {

View File

@@ -21,6 +21,7 @@ public:
public: public:
// chamber // chamber
bool HasChamber() const { return m_has_chamber; }
bool SupportChamberEdit() const { return m_support_chamber_edit; } bool SupportChamberEdit() const { return m_support_chamber_edit; }
int GetChamberTempEditMin() const { return m_chamber_temp_edit_min; } int GetChamberTempEditMin() const { return m_chamber_temp_edit_min; }
int GetChamberTempEditMax() const { return m_chamber_temp_edit_max; } int GetChamberTempEditMax() const { return m_chamber_temp_edit_max; }
@@ -54,6 +55,7 @@ private:
/*configure vals*/ /*configure vals*/
// chamber // chamber
bool m_has_chamber = false; // whether the machine has a chamber
bool m_support_chamber_edit = false; bool m_support_chamber_edit = false;
int m_chamber_temp_edit_min = 0; int m_chamber_temp_edit_min = 0;
int m_chamber_temp_edit_max = 60; int m_chamber_temp_edit_max = 60;

View File

@@ -8,13 +8,16 @@ namespace Slic3r { namespace GUI {
std::string PrePrintChecker::get_print_status_info(PrintDialogStatus status) std::string PrePrintChecker::get_print_status_info(PrintDialogStatus status)
{ {
switch (status) { switch (status)
{
case PrintStatusInit: return "PrintStatusInit"; case PrintStatusInit: return "PrintStatusInit";
case PrintStatusNoUserLogin: return "PrintStatusNoUserLogin"; case PrintStatusNoUserLogin: return "PrintStatusNoUserLogin";
case PrintStatusInvalidPrinter: return "PrintStatusInvalidPrinter"; case PrintStatusInvalidPrinter: return "PrintStatusInvalidPrinter";
case PrintStatusConnectingServer: return "PrintStatusConnectingServer"; case PrintStatusConnectingServer: return "PrintStatusConnectingServer";
case PrintStatusReadingTimeout: return "PrintStatusReadingTimeout"; case PrintStatusReadingTimeout: return "PrintStatusReadingTimeout";
case PrintStatusReading: return "PrintStatusReading"; case PrintStatusReading: return "PrintStatusReading";
case PrintStatusConnecting: return "PrintStatusConnecting";
case PrintStatusReconnecting: return "PrintStatusReconnecting";
case PrintStatusInUpgrading: return "PrintStatusInUpgrading"; case PrintStatusInUpgrading: return "PrintStatusInUpgrading";
case PrintStatusModeNotFDM: return "PrintStatusModeNotFDM"; case PrintStatusModeNotFDM: return "PrintStatusModeNotFDM";
case PrintStatusInSystemPrinting: return "PrintStatusInSystemPrinting"; case PrintStatusInSystemPrinting: return "PrintStatusInSystemPrinting";
@@ -34,25 +37,30 @@ std::string PrePrintChecker::get_print_status_info(PrintDialogStatus status)
case PrintStatusBlankPlate: return "PrintStatusBlankPlate"; case PrintStatusBlankPlate: return "PrintStatusBlankPlate";
case PrintStatusUnsupportedPrinter: return "PrintStatusUnsupportedPrinter"; case PrintStatusUnsupportedPrinter: return "PrintStatusUnsupportedPrinter";
case PrintStatusInvalidMapping: return "PrintStatusInvalidMapping"; case PrintStatusInvalidMapping: return "PrintStatusInvalidMapping";
// Handle filament errors
case PrintStatusAmsOnSettingup: return "PrintStatusAmsOnSettingup"; case PrintStatusAmsOnSettingup: return "PrintStatusAmsOnSettingup";
case PrintStatusAmsMappingInvalid: return "PrintStatusAmsMappingInvalid"; case PrintStatusAmsMappingInvalid: return "PrintStatusAmsMappingInvalid";
case PrintStatusAmsMappingU0Invalid: return "PrintStatusAmsMappingU0Invalid"; case PrintStatusAmsMappingU0Invalid: return "PrintStatusAmsMappingU0Invalid";
case PrintStatusAmsMappingMixInvalid: return "PrintStatusAmsMappingMixInvalid"; case PrintStatusAmsMappingMixInvalid: return "PrintStatusAmsMappingMixInvalid";
case PrintStatusTPUUnsupportAutoCali: return "PrintStatusTPUUnsupportAutoCali"; case PrintStatusTPUUnsupportAutoCali: return "PrintStatusTPUUnsupportAutoCali";
// Handle warnings case PrintStatusHasFilamentInBlackListError: return "PrintStatusHasFilamentInBlackListError";
case PrintStatusTimelapseNoSdcard: return "PrintStatusTimelapseNoSdcard"; case PrintStatusTimelapseNoSdcard: return "PrintStatusTimelapseNoSdcard";
case PrintStatusTimelapseWarning: return "PrintStatusTimelapseWarning"; case PrintStatusTimelapseWarning: return "PrintStatusTimelapseWarning";
case PrintStatusMixAmsAndVtSlotWarning: return "PrintStatusMixAmsAndVtSlotWarning"; case PrintStatusMixAmsAndVtSlotWarning: return "PrintStatusMixAmsAndVtSlotWarning";
// Handle success statuses case PrintStatusWarningKvalueNotUsed: return "PrintStatusWarningKvalueNotUsed";
case PrintStatusWarningTpuRightColdPulling: return "PrintStatusWarningTpuRightColdPulling";
case PrintStatusHasFilamentInBlackListWarning: return "PrintStatusHasFilamentInBlackListWarning";
case PrintStatusFilamentWarningHighChamberTemp: return "PrintStatusFilamentWarningHighChamberTemp";
case PrintStatusFilamentWarningHighChamberTempCloseDoor: return "PrintStatusFilamentWarningHighChamberTempCloseDoor";
case PrintStatusFilamentWarningHighChamberTempSoft: return "PrintStatusFilamentWarningHighChamberTempSoft";
case PrintStatusFilamentWarningUnknownHighChamberTempSoft: return "PrintStatusFilamentWarningUnknownHighChamberTempSoft";
case PrintStatusReadingFinished: return "PrintStatusReadingFinished"; case PrintStatusReadingFinished: return "PrintStatusReadingFinished";
case PrintStatusSendingCanceled: return "PrintStatusSendingCanceled"; case PrintStatusSendingCanceled: return "PrintStatusSendingCanceled";
case PrintStatusAmsMappingSuccess: return "PrintStatusAmsMappingSuccess"; case PrintStatusAmsMappingSuccess: return "PrintStatusAmsMappingSuccess";
case PrintStatusReadyToGo: return "PrintStatusReadyToGo";
case PrintStatusNotOnTheSameLAN: return "PrintStatusNotOnTheSameLAN"; case PrintStatusNotOnTheSameLAN: return "PrintStatusNotOnTheSameLAN";
case PrintStatusNotSupportedSendToSDCard: return "PrintStatusNotSupportedSendToSDCard"; case PrintStatusNotSupportedSendToSDCard: return "PrintStatusNotSupportedSendToSDCard";
case PrintStatusPublicInitFailed: return "PrintStatusPublicInitFailed"; case PrintStatusPublicInitFailed: return "PrintStatusPublicInitFailed";
case PrintStatusPublicUploadFiled: return "PrintStatusPublicUploadFiled"; case PrintStatusPublicUploadFiled: return "PrintStatusPublicUploadFiled";
case PrintStatusReadyToGo: return "PrintStatusReadyToGo";
default: return "Unknown status"; default: return "Unknown status";
} }
} }
@@ -83,7 +91,6 @@ wxString PrePrintChecker::get_pre_state_msg(PrintDialogStatus status)
case PrintStatusWarningKvalueNotUsed: return _L("Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value."); 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 PrintStatusNotSupportedPrintAll: return _L("This printer does not support printing all plates");
case PrintStatusWarningTpuRightColdPulling: return _L("Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."); case PrintStatusWarningTpuRightColdPulling: return _L("Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer.");
case PrintStatusFilamentWarningHighChamberTempCloseDoor: return _L("High chamber temperature is required. Please close the door.");
} }
return wxEmptyString; return wxEmptyString;
} }

View File

@@ -95,6 +95,7 @@ enum PrintDialogStatus : unsigned int {
PrintStatusWarningKvalueNotUsed, PrintStatusWarningKvalueNotUsed,
PrintStatusWarningTpuRightColdPulling, PrintStatusWarningTpuRightColdPulling,
PrintStatusHasFilamentInBlackListWarning, PrintStatusHasFilamentInBlackListWarning,
PrintStatusFilamentWarningHighChamberTemp,
PrintStatusFilamentWarningHighChamberTempCloseDoor, PrintStatusFilamentWarningHighChamberTempCloseDoor,
PrintStatusFilamentWarningHighChamberTempSoft, PrintStatusFilamentWarningHighChamberTempSoft,
PrintStatusFilamentWarningUnknownHighChamberTempSoft, PrintStatusFilamentWarningUnknownHighChamberTempSoft,

View File

@@ -1512,8 +1512,9 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
tips = params[1]; tips = params[1];
} }
if (m_print_status != status) if (m_print_status != status) {
BOOST_LOG_TRIVIAL(info) << "select_machine_dialog: show_status = " << status << "(" << PrePrintChecker::get_print_status_info(status) << ")"; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": update_status: " << status << "(" << PrePrintChecker::get_print_status_info(status) << ")";
}
m_print_status = status; m_print_status = status;
// all message // all message
@@ -1692,7 +1693,7 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
} else if (status == PrintStatusWarningTpuRightColdPulling) { } else if (status == PrintStatusWarningTpuRightColdPulling) {
Enable_Refresh_Button(true); Enable_Refresh_Button(true);
Enable_Send_Button(true); Enable_Send_Button(true);
} else if (status == PrintStatusFilamentWarningHighChamberTempCloseDoor) { } else if (status == PrintStatusFilamentWarningHighChamberTempCloseDoor || status == PrintStatusFilamentWarningHighChamberTemp) {
Enable_Refresh_Button(true); Enable_Refresh_Button(true);
Enable_Send_Button(true); Enable_Send_Button(true);
} else if (status == PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempSoft || status == PrintDialogStatus::PrintStatusFilamentWarningUnknownHighChamberTempSoft) { } else if (status == PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempSoft || status == PrintDialogStatus::PrintStatusFilamentWarningUnknownHighChamberTempSoft) {
@@ -3519,6 +3520,7 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_)
/*Check high temperture slicing*/ /*Check high temperture slicing*/
if (m_print_type == PrintFromType::FROM_NORMAL) { if (m_print_type == PrintFromType::FROM_NORMAL) {
std::set<string> high_temp_filaments;
std::unordered_set<int> known_fila_soften_extruders; std::unordered_set<int> known_fila_soften_extruders;
std::unordered_set<int> unknown_fila_soften_extruders; std::unordered_set<int> unknown_fila_soften_extruders;
auto preset_full_config = wxGetApp().preset_bundle->full_config(); auto preset_full_config = wxGetApp().preset_bundle->full_config();
@@ -3527,9 +3529,8 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_)
try try
{ {
int chamber_temp = chamber_temperatures->values[item.id]; int chamber_temp = chamber_temperatures->values[item.id];
if (chamber_temp >= obj_->GetConfig()->GetChamberTempSwitchHeat()) {// check close door if (chamber_temp >= 40) {
show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor); high_temp_filaments.insert(item.get_display_filament_type());// high printing chamber temperature
if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor)) { return; }
} }
for (const auto& extder : obj_->GetExtderSystem()->GetExtruders()) { // check vitrification for (const auto& extder : obj_->GetExtderSystem()->GetExtruders()) { // check vitrification
@@ -3550,6 +3551,26 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_)
catch (std::exception&) { assert(0); } catch (std::exception&) { assert(0); }
} }
if (!high_temp_filaments.empty()) {
wxString filament_strs;/*join the filament strs*/
for (auto filament : high_temp_filaments) {
filament_strs += filament;
if (filament != *high_temp_filaments.rbegin()) {
filament_strs += ", ";
}
}
if (obj_->GetConfig()->HasChamber()) {
const auto& msg = wxString::Format(_L("[ %s ] requires printing in a high-temperature environment."), filament_strs);
show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor, { msg });
if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor)) { return; }
} else {
const auto& msg = wxString::Format(_L("[ %s ] requires printing in a high-temperature environment.Please close the door."), filament_strs);
show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTemp, { msg });
if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTemp)) { return; }
}
}
if (!known_fila_soften_extruders.empty()) { if (!known_fila_soften_extruders.empty()) {
const wxString& msg = wxString::Format(_L("The filament on %s may soften. Please unload."), const wxString& msg = wxString::Format(_L("The filament on %s may soften. Please unload."),
_get_ext_loc_str(known_fila_soften_extruders, obj_->GetExtderSystem()->GetTotalExtderCount())); _get_ext_loc_str(known_fila_soften_extruders, obj_->GetExtderSystem()->GetTotalExtderCount()));