diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 0a122d9f8..730b8ca7a 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -6103,8 +6103,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 c5a23814d..b70fa36a6 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -960,6 +960,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}; @@ -1064,8 +1071,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 90b30312d..1f38ed2a9 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1775,6 +1775,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 95a513c99..7f2e92558 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -69,6 +69,7 @@ enum PrintDialogStatus { PrintStatusReadingFinished, PrintStatusReadingTimeout, PrintStatusInUpgrading, + PrintStatusModeNotFDM, PrintStatusNeedUpgradingAms, PrintStatusInSystemPrinting, PrintStatusInPrinting,