diff --git a/resources/printers/BL-P001.json b/resources/printers/BL-P001.json index bec3e8e440..c4024e21d7 100644 --- a/resources/printers/BL-P001.json +++ b/resources/printers/BL-P001.json @@ -65,6 +65,7 @@ "support_filament_backup": true, "support_send_to_sd": true, "support_build_plate_marker_detect": true, + "support_build_plate_marker_detect_type": 1, "support_ai_monitoring": true } }, diff --git a/resources/printers/BL-P002.json b/resources/printers/BL-P002.json index 85a04885be..a6a971bebd 100644 --- a/resources/printers/BL-P002.json +++ b/resources/printers/BL-P002.json @@ -65,6 +65,7 @@ "support_filament_backup": true, "support_send_to_sd": true, "support_build_plate_marker_detect": true, + "support_build_plate_marker_detect_type": 1, "support_ai_monitoring": true } }, diff --git a/resources/printers/C13.json b/resources/printers/C13.json index a250347f47..eae6e21209 100644 --- a/resources/printers/C13.json +++ b/resources/printers/C13.json @@ -36,6 +36,7 @@ "support_flow_calibration": true, "support_auto_flow_calibration": true, "support_build_plate_marker_detect": true, + "support_build_plate_marker_detect_type": 1, "support_lidar_calibration": true, "support_ai_monitoring": true, "support_first_layer_inspect": true, diff --git a/resources/printers/version.txt b/resources/printers/version.txt index 41d3f40943..f81d1b6890 100644 --- a/resources/printers/version.txt +++ b/resources/printers/version.txt @@ -1 +1 @@ -02.00.00.06 \ No newline at end of file +02.00.00.07 \ No newline at end of file diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 97c24539c6..b23fffcbe9 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -3397,6 +3397,10 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } + if(jj.contains("support_build_plate_marker_detect_type") && jj["support_build_plate_marker_detect_type"].is_number()) { + m_plate_maker_detect_type = (PlateMakerDectect)jj["support_build_plate_marker_detect_type"].get(); + } + if (jj.contains("support_flow_calibration") && jj["support_flow_calibration"].is_boolean()) { is_support_flow_calibration = jj["support_flow_calibration"].get(); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 37e7e7c32d..0dfd6e9541 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -960,6 +960,12 @@ public: FR_TutkAgora } file_remote{ FR_None }; + enum PlateMakerDectect : int + { + POS_CHECK = 1, + TYPE_POS_CHECK = 2, + }; + enum DoorOpenCheckState : int { DOOR_OPEN_CHECK_DISABLE = 0,/*do nothing*/ @@ -1002,7 +1008,10 @@ public: bool is_support_first_layer_inspect{false}; bool is_support_ai_monitoring {false}; bool is_support_lidar_calibration {false}; + bool is_support_build_plate_marker_detect{false}; + PlateMakerDectect m_plate_maker_detect_type{ POS_CHECK }; + bool is_support_pa_calibration{false}; bool is_support_flow_calibration{false}; bool is_support_auto_flow_calibration{false};/*The flag is used to distinguish auto/on/off or on/off */ diff --git a/src/slic3r/GUI/PrintOptionsDialog.cpp b/src/slic3r/GUI/PrintOptionsDialog.cpp index de02c7c71e..51e0cbc64b 100644 --- a/src/slic3r/GUI/PrintOptionsDialog.cpp +++ b/src/slic3r/GUI/PrintOptionsDialog.cpp @@ -151,6 +151,16 @@ void PrintOptionsDialog::update_options(MachineObject* obj_) } if (obj_->is_support_build_plate_marker_detect) { + if (obj_->m_plate_maker_detect_type == MachineObject::POS_CHECK && (text_plate_mark->GetLabel() != _L("Enable detection of build plate position"))) { + text_plate_mark->SetLabel(_L("Enable detection of build plate position")); + text_plate_mark_caption->SetLabel(_L("The localization tag of build plate is detected, and printing is paused if the tag is not in predefined range.")); + text_plate_mark_caption->Wrap(FromDIP(260)); + } else if (obj_->m_plate_maker_detect_type == MachineObject::TYPE_POS_CHECK && (text_plate_mark->GetLabel() != _L("Build Plate Detection"))) { + text_plate_mark->SetLabel(_L("Build Plate Detection")); + text_plate_mark_caption->SetLabel(_L("Identifies the type and position of the build plate on the heatbed. Pausing printing if a mismatch is detected.")); + text_plate_mark_caption->Wrap(FromDIP(260)); + } + text_plate_mark->Show(); m_cb_plate_mark->Show(); text_plate_mark_caption->Show();