FIX: cannot slice when set object extruder is 0

jira: none
Change-Id: Idb6e01acc8ac7801331c3b6b4b0e64a23cc02208
This commit is contained in:
zhimin.zeng 2024-05-20 16:58:28 +08:00 committed by Lane.Wei
parent 922e533fdf
commit 8cfdca6e93
1 changed files with 14 additions and 3 deletions

View File

@ -5722,11 +5722,22 @@ void ObjectList::set_extruder_for_selected_items(const int extruder)
if (type & itLayerRoot) if (type & itLayerRoot)
continue; continue;
// BBS: handle extruder 0 for part, use it's parent extruder
int new_extruder = extruder;
if (extruder == 0) {
if (type & itObject) {
new_extruder = 1;
}
else if ((type & itVolume) && (m_objects_model->GetVolumeType(sel_item) == ModelVolumeType::MODEL_PART)) {
new_extruder = m_objects_model->GetExtruderNumber(m_objects_model->GetParent(sel_item));
}
}
ModelConfig& config = get_item_config(item); ModelConfig& config = get_item_config(item);
if (config.has("extruder")) if (config.has("extruder"))
config.set("extruder", extruder); config.set("extruder", new_extruder);
else else
config.set_key_value("extruder", new ConfigOptionInt(extruder)); config.set_key_value("extruder", new ConfigOptionInt(new_extruder));
// for object, clear all its part volume's extruder config // for object, clear all its part volume's extruder config
if (type & itObject) { if (type & itObject) {
@ -5737,7 +5748,7 @@ void ObjectList::set_extruder_for_selected_items(const int extruder)
} }
} }
const wxString extruder_str = wxString::Format("%d", extruder); const wxString extruder_str = wxString::Format("%d", new_extruder);
m_objects_model->SetExtruder(extruder_str, item); m_objects_model->SetExtruder(extruder_str, item);
} }