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_first_layer_inspect": true,
"support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": false,
"support_extrusion_cali": false,
"support_user_preset": false

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -54,6 +54,7 @@
"support_ai_monitoring": true,
"support_first_layer_inspect": false,
"support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [ 0, 65 ],
"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.29
>>>>>>> CHANGE (5fa0cb FIX: check close chamber temperature)

View File

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

View File

@@ -18,6 +18,7 @@ void DevConfig::ParseConfig(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);
if (m_support_chamber_edit)
{

View File

@@ -21,6 +21,7 @@ public:
public:
// chamber
bool HasChamber() const { return m_has_chamber; }
bool SupportChamberEdit() const { return m_support_chamber_edit; }
int GetChamberTempEditMin() const { return m_chamber_temp_edit_min; }
int GetChamberTempEditMax() const { return m_chamber_temp_edit_max; }
@@ -54,6 +55,7 @@ private:
/*configure vals*/
// chamber
bool m_has_chamber = false; // whether the machine has a chamber
bool m_support_chamber_edit = false;
int m_chamber_temp_edit_min = 0;
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)
{
switch (status) {
switch (status)
{
case PrintStatusInit: return "PrintStatusInit";
case PrintStatusNoUserLogin: return "PrintStatusNoUserLogin";
case PrintStatusInvalidPrinter: return "PrintStatusInvalidPrinter";
case PrintStatusConnectingServer: return "PrintStatusConnectingServer";
case PrintStatusReadingTimeout: return "PrintStatusReadingTimeout";
case PrintStatusReading: return "PrintStatusReading";
case PrintStatusConnecting: return "PrintStatusConnecting";
case PrintStatusReconnecting: return "PrintStatusReconnecting";
case PrintStatusInUpgrading: return "PrintStatusInUpgrading";
case PrintStatusModeNotFDM: return "PrintStatusModeNotFDM";
case PrintStatusInSystemPrinting: return "PrintStatusInSystemPrinting";
@@ -34,25 +37,30 @@ std::string PrePrintChecker::get_print_status_info(PrintDialogStatus status)
case PrintStatusBlankPlate: return "PrintStatusBlankPlate";
case PrintStatusUnsupportedPrinter: return "PrintStatusUnsupportedPrinter";
case PrintStatusInvalidMapping: return "PrintStatusInvalidMapping";
// Handle filament errors
case PrintStatusAmsOnSettingup: return "PrintStatusAmsOnSettingup";
case PrintStatusAmsMappingInvalid: return "PrintStatusAmsMappingInvalid";
case PrintStatusAmsMappingU0Invalid: return "PrintStatusAmsMappingU0Invalid";
case PrintStatusAmsMappingMixInvalid: return "PrintStatusAmsMappingMixInvalid";
case PrintStatusTPUUnsupportAutoCali: return "PrintStatusTPUUnsupportAutoCali";
// Handle warnings
case PrintStatusHasFilamentInBlackListError: return "PrintStatusHasFilamentInBlackListError";
case PrintStatusTimelapseNoSdcard: return "PrintStatusTimelapseNoSdcard";
case PrintStatusTimelapseWarning: return "PrintStatusTimelapseWarning";
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 PrintStatusSendingCanceled: return "PrintStatusSendingCanceled";
case PrintStatusAmsMappingSuccess: return "PrintStatusAmsMappingSuccess";
case PrintStatusReadyToGo: return "PrintStatusReadyToGo";
case PrintStatusNotOnTheSameLAN: return "PrintStatusNotOnTheSameLAN";
case PrintStatusNotSupportedSendToSDCard: return "PrintStatusNotSupportedSendToSDCard";
case PrintStatusPublicInitFailed: return "PrintStatusPublicInitFailed";
case PrintStatusPublicUploadFiled: return "PrintStatusPublicUploadFiled";
case PrintStatusReadyToGo: return "PrintStatusReadyToGo";
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 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 PrintStatusFilamentWarningHighChamberTempCloseDoor: return _L("High chamber temperature is required. Please close the door.");
}
return wxEmptyString;
}

View File

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

View File

@@ -1512,8 +1512,9 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
tips = params[1];
}
if (m_print_status != status)
BOOST_LOG_TRIVIAL(info) << "select_machine_dialog: show_status = " << status << "(" << PrePrintChecker::get_print_status_info(status) << ")";
if (m_print_status != status) {
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": update_status: " << status << "(" << PrePrintChecker::get_print_status_info(status) << ")";
}
m_print_status = status;
// all message
@@ -1692,7 +1693,7 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
} else if (status == PrintStatusWarningTpuRightColdPulling) {
Enable_Refresh_Button(true);
Enable_Send_Button(true);
} else if (status == PrintStatusFilamentWarningHighChamberTempCloseDoor) {
} else if (status == PrintStatusFilamentWarningHighChamberTempCloseDoor || status == PrintStatusFilamentWarningHighChamberTemp) {
Enable_Refresh_Button(true);
Enable_Send_Button(true);
} else if (status == PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempSoft || status == PrintDialogStatus::PrintStatusFilamentWarningUnknownHighChamberTempSoft) {
@@ -3519,6 +3520,7 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_)
/*Check high temperture slicing*/
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> unknown_fila_soften_extruders;
auto preset_full_config = wxGetApp().preset_bundle->full_config();
@@ -3527,9 +3529,8 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_)
try
{
int chamber_temp = chamber_temperatures->values[item.id];
if (chamber_temp >= obj_->GetConfig()->GetChamberTempSwitchHeat()) {// check close door
show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor);
if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor)) { return; }
if (chamber_temp >= 40) {
high_temp_filaments.insert(item.get_display_filament_type());// high printing chamber temperature
}
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); }
}
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()) {
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()));