mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
FIX: check close chamber temperature
JIRA: [STUDIO-13676] Change-Id: I5c2712ade24d20d361d00a0b763dd16479aa5fb1 (cherry picked from commit 7ac3c82fbaf0337351d41f5d65c2ae088f755744)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -95,6 +95,7 @@ enum PrintDialogStatus : unsigned int {
|
||||
PrintStatusWarningKvalueNotUsed,
|
||||
PrintStatusWarningTpuRightColdPulling,
|
||||
PrintStatusHasFilamentInBlackListWarning,
|
||||
PrintStatusFilamentWarningHighChamberTemp,
|
||||
PrintStatusFilamentWarningHighChamberTempCloseDoor,
|
||||
PrintStatusFilamentWarningHighChamberTempSoft,
|
||||
PrintStatusFilamentWarningUnknownHighChamberTempSoft,
|
||||
|
||||
@@ -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()));
|
||||
|
||||
Reference in New Issue
Block a user