diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 8ff8e0952d..89ff0fdb04 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -6059,8 +6059,7 @@ void MachineObject::parse_new_info(json print) } if (device.contains("type")) { - int type = device["type"].get(); // FDM:1<<0 Laser:1<< Cut:1<<2 - is_fdm = type & 1; + m_device_mode = (DeviceMode)device["type"].get();// FDM:1<<0 Laser:1<< Cut:1<<2 } if (device.contains("bed_temp")) { diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index a0031ec419..d327483559 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -963,6 +963,13 @@ public: DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT = 2,/*pause print*/ }; + enum DeviceMode : unsigned int + { + DEVICE_MODE_FDM = 0x00000001, + DEVICE_MODE_LASER = 0x00000010, + DEVICE_MODE_CUT = 0x00000100, + }; + bool file_model_download{false}; bool virtual_camera{false}; @@ -1067,8 +1074,8 @@ public: bool is_makeworld_subtask(); /* device type */ - bool is_fdm{ true }; - inline bool is_fdm_type() const { return is_fdm; } + DeviceMode m_device_mode{ DEVICE_MODE_FDM }; + inline bool is_fdm_type() const { return m_device_mode == DEVICE_MODE_FDM; } int m_plate_index { -1 }; std::string m_gcode_file; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 7f59fbb8ff..7da7586178 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1773,6 +1773,8 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vectoris_fdm_type()) + { + show_status(PrintDialogStatus::PrintStatusModeNotFDM); + return; + } + if (is_blocking_printing(obj_)) { show_status(PrintDialogStatus::PrintStatusUnsupportedPrinter); return; diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index d6853ad824..e793d2e7fb 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -71,6 +71,7 @@ enum PrintDialogStatus { PrintStatusReadingFinished, PrintStatusReadingTimeout, PrintStatusInUpgrading, + PrintStatusModeNotFDM, PrintStatusNeedUpgradingAms, PrintStatusInSystemPrinting, PrintStatusInPrinting,