mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-04-06 00:32:05 +02:00
ENH: support_clump_position_calibration
jira: [STUDIO-14896] Change-Id: I2913a1e4022686889aaa94ee31b787930200d02d (cherry picked from commit 14370c8910878c2182189b42e013c1323615c310)
This commit is contained in:
@@ -46,6 +46,7 @@
|
||||
"support_lidar_calibration": false,
|
||||
"support_nozzle_offset_calibration": false,
|
||||
"support_high_tempbed_calibration": true,
|
||||
"support_clump_position_calibration": true,
|
||||
"support_ai_monitoring": true,
|
||||
"support_first_layer_inspect": false,
|
||||
"support_save_remote_print_file_to_storage": true,
|
||||
|
||||
@@ -55,7 +55,8 @@ CalibrationDialog::CalibrationDialog(Plater *plater)
|
||||
select_vibration = create_check_option(_L("Vibration compensation"), cali_left_panel, _L("Vibration compensation"), "vibration");
|
||||
select_motor_noise = create_check_option(_L("Motor noise cancellation"), cali_left_panel, _L("Motor noise cancellation"), "motor_noise");
|
||||
select_nozzle_cali = create_check_option(_L("Nozzle offset calibration"), cali_left_panel, _L("Nozzle offset calibration"), "nozzle_cali");
|
||||
select_heatbed_cali = create_check_option(_L("High-temperature Heatbed Calibration"), cali_left_panel, _L("High-temperature Heatbed Calibration"), "bed_cali");
|
||||
select_heatbed_cali = create_check_option(_L("High-temperature Heatbed Calibration"), cali_left_panel, _L("High-temperature Heatbed Calibration"), "bed_cali");
|
||||
select_clumppos_cali = create_check_option(_L("Nozzle clumping detection Calibration"), cali_left_panel, _L("Nozzle clumping detection Calibration"), "clump_pos_cali");
|
||||
|
||||
// STUDIO-10091 the default not checked option
|
||||
if(m_checkbox_list.count("bed_cali") != 0)
|
||||
@@ -70,6 +71,7 @@ CalibrationDialog::CalibrationDialog(Plater *plater)
|
||||
cali_left_sizer->Add(select_motor_noise, 0, wxLEFT, FromDIP(15));
|
||||
cali_left_sizer->Add(select_nozzle_cali, 0, wxLEFT, FromDIP(15));
|
||||
cali_left_sizer->Add(select_heatbed_cali, 0, wxLEFT, FromDIP(15));
|
||||
cali_left_sizer->Add(select_clumppos_cali, 0, wxLEFT, FromDIP(15));
|
||||
cali_left_sizer->Add(0, FromDIP(30), 0, wxEXPAND, 0);
|
||||
|
||||
auto cali_left_text_top = new wxStaticText(cali_left_panel, wxID_ANY, _L("Calibration program"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
@@ -252,6 +254,13 @@ void CalibrationDialog::update_cali(MachineObject *obj)
|
||||
m_checkbox_list["bed_cali"]->SetValue(false);
|
||||
}
|
||||
|
||||
if (obj->GetConfig()->SupportCaliClumpPos()) {
|
||||
select_clumppos_cali->Show();
|
||||
} else {
|
||||
select_clumppos_cali->Hide();
|
||||
m_checkbox_list["clump_pos_cali"]->SetValue(false);
|
||||
}
|
||||
|
||||
if (obj->is_calibration_running() || obj->is_calibration_done()) {
|
||||
if (obj->is_calibration_done()) {
|
||||
m_calibration_btn->Enable();
|
||||
@@ -279,6 +288,8 @@ void CalibrationDialog::update_cali(MachineObject *obj)
|
||||
for (int i = 0; i < obj->stage_list_info.size(); i++) {
|
||||
m_calibration_flow->AppendItem(Slic3r::get_stage_string(obj->stage_list_info[i]));
|
||||
}
|
||||
|
||||
last_stage_list_info = obj->stage_list_info;
|
||||
}
|
||||
int index = obj->get_curr_stage_idx();
|
||||
m_calibration_flow->SelectItem(index);
|
||||
@@ -333,7 +344,8 @@ void CalibrationDialog::on_start_calibration(wxMouseEvent &event)
|
||||
m_checkbox_list["xcam_cali"]->GetValue(),
|
||||
m_checkbox_list["motor_noise"]->GetValue(),
|
||||
m_checkbox_list["nozzle_cali"]->GetValue(),
|
||||
m_checkbox_list["bed_cali"]->GetValue()
|
||||
m_checkbox_list["bed_cali"]->GetValue(),
|
||||
m_checkbox_list["clump_pos_cali"]->GetValue()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ private:
|
||||
wxWindow* select_motor_noise { nullptr };
|
||||
wxWindow* select_nozzle_cali{ nullptr };
|
||||
wxWindow* select_heatbed_cali{ nullptr };
|
||||
wxWindow* select_clumppos_cali{ nullptr };
|
||||
wxWindow* create_check_option(wxString title, wxWindow *parent, wxString tooltip, std::string param);
|
||||
|
||||
public:
|
||||
|
||||
@@ -50,6 +50,7 @@ void DevConfig::ParseCalibrationConfig(const json& print_json)
|
||||
DevJsonValParser::ParseVal(print_json, "support_nozzle_offset_calibration", m_support_calibration_nozzle_offset);
|
||||
DevJsonValParser::ParseVal(print_json, "support_high_tempbed_calibration", m_support_calibration_high_temp_bed);
|
||||
DevJsonValParser::ParseVal(print_json, "support_auto_flow_calibration", m_support_calibration_pa_flow_auto);
|
||||
DevJsonValParser::ParseVal(print_json, "support_clump_position_calibration", m_support_calibration_clump_pos);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
bool SupportCalibrationLidar() const { return m_support_calibration_lidar; }
|
||||
bool SupportCalibrationNozzleOffset() const { return m_support_calibration_nozzle_offset; }
|
||||
bool SupportCalibrationHighTempBed() const { return m_support_calibration_high_temp_bed; }
|
||||
bool SupportCaliClumpPos() const { return m_support_calibration_clump_pos; }
|
||||
|
||||
bool SupportCalibrationPA_FlowAuto() const { return m_support_calibration_pa_flow_auto; }
|
||||
|
||||
@@ -73,6 +74,7 @@ private:
|
||||
bool m_support_calibration_lidar = false;
|
||||
bool m_support_calibration_nozzle_offset = false;
|
||||
bool m_support_calibration_high_temp_bed = false; // High-temperature Heatbed Calibration
|
||||
bool m_support_calibration_clump_pos = false; // clump position calibration
|
||||
|
||||
bool m_support_calibration_pa_flow_auto = false;// PA flow calibration. used in SendPrint
|
||||
};
|
||||
|
||||
@@ -187,6 +187,8 @@ wxString Slic3r::get_stage_string(int stage)
|
||||
return _L("Measuring Surface");
|
||||
case 58:
|
||||
return _L("Thermal Preconditioning for first layer optimization");
|
||||
case 65:
|
||||
return _L("Calibrating the detection position of nozzle clumping"); // N7
|
||||
default:
|
||||
BOOST_LOG_TRIVIAL(info) << "stage = " << stage;
|
||||
}
|
||||
@@ -1856,7 +1858,7 @@ bool MachineObject::is_support_command_calibration()
|
||||
return true;
|
||||
}
|
||||
|
||||
int MachineObject::command_start_calibration(bool vibration, bool bed_leveling, bool xcam_cali, bool motor_noise, bool nozzle_cali, bool bed_cali)
|
||||
int MachineObject::command_start_calibration(bool vibration, bool bed_leveling, bool xcam_cali, bool motor_noise, bool nozzle_cali, bool bed_cali, bool clumppos_cali)
|
||||
{
|
||||
if (!is_support_command_calibration()) {
|
||||
// fixed gcode file
|
||||
@@ -1869,7 +1871,8 @@ int MachineObject::command_start_calibration(bool vibration, bool bed_leveling,
|
||||
json j;
|
||||
j["print"]["command"] = "calibration";
|
||||
j["print"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++);
|
||||
j["print"]["option"]= (bed_cali ? 1 << 5 : 0)
|
||||
j["print"]["option"] = + (clumppos_cali ? 1 << 6 : 0)
|
||||
+ (bed_cali ? 1 << 5 : 0)
|
||||
+ (nozzle_cali ? 1 << 4 : 0)
|
||||
+ (motor_noise ? 1 << 3 : 0)
|
||||
+ (vibration ? 1 << 2 : 0)
|
||||
|
||||
@@ -757,7 +757,7 @@ public:
|
||||
int command_extruder_control(int nozzle_id, double val);
|
||||
// calibration printer
|
||||
bool is_support_command_calibration();
|
||||
int command_start_calibration(bool vibration, bool bed_leveling, bool xcam_cali, bool motor_noise, bool nozzle_cali, bool bed_cali);
|
||||
int command_start_calibration(bool vibration, bool bed_leveling, bool xcam_cali, bool motor_noise, bool nozzle_cali, bool bed_cali, bool clumppos_cali);
|
||||
|
||||
// PA calibration
|
||||
int command_start_pa_calibration(const X1CCalibInfos& pa_data, int mode = 0); // 0: automatic mode; 1: manual mode. default: automatic mode
|
||||
|
||||
Reference in New Issue
Block a user