mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-26 20:32:06 +00:00
FIX: support calibration for multi-nozzles with different diameters
github: 7543 Change-Id: Ifa20d786836f1991af35b3b95e25f91431d752e0 (cherry picked from commit 0c1053e962c928b253c268fc6658b8ec98f692ff)
This commit is contained in:
@@ -978,11 +978,17 @@ NozzleVolumeType CalibrationPresetPage::get_nozzle_volume_type(int extruder_id)
|
||||
|
||||
ExtruderType CalibrationPresetPage::get_extruder_type(int extruder_id) const
|
||||
{
|
||||
if (m_extrder_types.size() > extruder_id)
|
||||
return ExtruderType(m_extrder_types[extruder_id]);
|
||||
else {
|
||||
return ExtruderType::etDirectDrive;
|
||||
if (curr_obj) {
|
||||
int extruder_idx = 0;
|
||||
if (curr_obj->is_multi_extruders()) {
|
||||
if (extruder_id == RIGHT_EXTRUDER_ID) {
|
||||
extruder_idx = 1;
|
||||
}
|
||||
}
|
||||
if (m_extrder_types.size() > extruder_idx)
|
||||
return m_extrder_types[extruder_idx];
|
||||
}
|
||||
return ExtruderType::etDirectDrive;
|
||||
}
|
||||
|
||||
void CalibrationPresetPage::create_multi_extruder_filament_list_panel(wxWindow *parent)
|
||||
@@ -1734,17 +1740,17 @@ void CalibrationPresetPage::update_show_status()
|
||||
return;
|
||||
}
|
||||
|
||||
if (obj_->is_multi_extruders()) {
|
||||
float diameter = obj_->m_extder_data.extders[0].current_nozzle_diameter;
|
||||
bool is_same_diameter = std::all_of(obj_->m_extder_data.extders.begin(), obj_->m_extder_data.extders.end(),
|
||||
[diameter](const Extder& extruder) {
|
||||
return std::fabs(extruder.current_nozzle_diameter - diameter) < EPSILON;
|
||||
});
|
||||
if (!is_same_diameter) {
|
||||
show_status(CaliPresetPageStatus::CaliPresetStatusDifferentNozzleDiameters);
|
||||
return;
|
||||
}
|
||||
}
|
||||
//if (obj_->is_multi_extruders()) {
|
||||
// float diameter = obj_->m_extder_data.extders[0].current_nozzle_diameter;
|
||||
// bool is_same_diameter = std::all_of(obj_->m_extder_data.extders.begin(), obj_->m_extder_data.extders.end(),
|
||||
// [diameter](const Extder& extruder) {
|
||||
// return std::fabs(extruder.current_nozzle_diameter - diameter) < EPSILON;
|
||||
// });
|
||||
// if (!is_same_diameter) {
|
||||
// show_status(CaliPresetPageStatus::CaliPresetStatusDifferentNozzleDiameters);
|
||||
// return;
|
||||
// }
|
||||
//}
|
||||
|
||||
// check sdcard when if lan mode printer
|
||||
if (obj_->is_lan_mode_printer()) {
|
||||
|
||||
Reference in New Issue
Block a user