diff --git a/resources/printers/BL-P001.json b/resources/printers/BL-P001.json index bec3e8e44..c4024e21d 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 85a04885b..a6a971beb 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 a250347f4..eae6e2120 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/O1D.json b/resources/printers/O1D.json index 29b66aef4..0db1b00ff 100644 --- a/resources/printers/O1D.json +++ b/resources/printers/O1D.json @@ -43,6 +43,7 @@ "support_flow_calibration": true, "support_auto_flow_calibration": true, "support_build_plate_marker_detect": true, + "support_build_plate_marker_detect_type": 2, "support_lidar_calibration": false, "support_nozzle_offset_calibration": true, "support_high_tempbed_calibration": true, diff --git a/resources/printers/version.txt b/resources/printers/version.txt index 41d3f4094..f81d1b689 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 355616039..bb06a9140 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -3455,6 +3455,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 e354f576e..11fde3a71 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -957,6 +957,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*/ @@ -999,7 +1005,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 d79d868ad..52f0a004d 100644 --- a/src/slic3r/GUI/PrintOptionsDialog.cpp +++ b/src/slic3r/GUI/PrintOptionsDialog.cpp @@ -153,6 +153,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();