mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-19 11:23:42 +00:00
FIX: modify the filament id for painting color
jira: none Change-Id: I25dcab95f1499783afd892c790f1e18232ea4f72 (cherry picked from commit f7a0e66e0dd16531d2318843ec86630232880867)
This commit is contained in:
@@ -2486,7 +2486,7 @@ void ModelVolume::update_extruder_count_when_delete_filament(size_t extruder_cou
|
|||||||
std::vector<int> used_extruders = get_extruders();
|
std::vector<int> used_extruders = get_extruders();
|
||||||
for (int extruder_id : used_extruders) {
|
for (int extruder_id : used_extruders) {
|
||||||
if (extruder_id == filament_id) {
|
if (extruder_id == filament_id) {
|
||||||
mmu_segmentation_facets.set_enforcer_block_type_limit(*this, (EnforcerBlockerType)(extruder_count + 1), (EnforcerBlockerType)(filament_id + 1), (EnforcerBlockerType)(replace_filament_id + 1));
|
mmu_segmentation_facets.set_enforcer_block_type_limit(*this, (EnforcerBlockerType)(extruder_count), (EnforcerBlockerType)(filament_id), (EnforcerBlockerType)(replace_filament_id));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1773,13 +1773,17 @@ void TriangleSelector::deserialize(const TriangleSplittingData &data,
|
|||||||
auto state = is_split ? EnforcerBlockerType::NONE : EnforcerBlockerType((code & 0b1100) == 0b1100 ? next_nibble() + 3 : code >> 2);
|
auto state = is_split ? EnforcerBlockerType::NONE : EnforcerBlockerType((code & 0b1100) == 0b1100 ? next_nibble() + 3 : code >> 2);
|
||||||
|
|
||||||
// BBS
|
// BBS
|
||||||
if (state > max_ebt || state == to_delete_filament)
|
if (state == to_delete_filament)
|
||||||
state = replace_filament;
|
state = replace_filament;
|
||||||
|
else if (to_delete_filament != EnforcerBlockerType::NONE && state != EnforcerBlockerType::NONE) {
|
||||||
if (to_delete_filament != EnforcerBlockerType::NONE && state != EnforcerBlockerType::NONE) {
|
|
||||||
state = state > to_delete_filament ? EnforcerBlockerType((int)state - 1) : state;
|
state = state > to_delete_filament ? EnforcerBlockerType((int)state - 1) : state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (state > max_ebt) {
|
||||||
|
assert(false);
|
||||||
|
state = EnforcerBlockerType::NONE;
|
||||||
|
}
|
||||||
|
|
||||||
// Only valid if is_split.
|
// Only valid if is_split.
|
||||||
int special_side = code >> 2;
|
int special_side = code >> 2;
|
||||||
|
|
||||||
|
|||||||
@@ -1957,7 +1957,7 @@ void Sidebar::delete_filament(size_t filament_id, int replace_filament_id) {
|
|||||||
|
|
||||||
wxGetApp().preset_bundle->update_num_filaments(filament_id);
|
wxGetApp().preset_bundle->update_num_filaments(filament_id);
|
||||||
wxGetApp().plater()->get_partplate_list().on_filament_deleted(filament_count, filament_id);
|
wxGetApp().plater()->get_partplate_list().on_filament_deleted(filament_count, filament_id);
|
||||||
wxGetApp().plater()->on_filaments_delete(filament_count, filament_id, replace_filament_id > filament_id ? (replace_filament_id - 1) : replace_filament_id);
|
wxGetApp().plater()->on_filaments_delete(filament_count, filament_id, replace_filament_id > (int)filament_id ? (replace_filament_id - 1) : replace_filament_id);
|
||||||
wxGetApp().get_tab(Preset::TYPE_PRINT)->update();
|
wxGetApp().get_tab(Preset::TYPE_PRINT)->update();
|
||||||
wxGetApp().preset_bundle->export_selections(*wxGetApp().app_config);
|
wxGetApp().preset_bundle->export_selections(*wxGetApp().app_config);
|
||||||
}
|
}
|
||||||
@@ -13545,7 +13545,7 @@ void Plater::on_filaments_delete(size_t num_filaments, size_t filament_id, int r
|
|||||||
// update mmu info
|
// update mmu info
|
||||||
for (ModelObject *mo : wxGetApp().model().objects) {
|
for (ModelObject *mo : wxGetApp().model().objects) {
|
||||||
for (ModelVolume *mv : mo->volumes) {
|
for (ModelVolume *mv : mo->volumes) {
|
||||||
mv->update_extruder_count_when_delete_filament(num_filaments, filament_id, replace_filament_id);
|
mv->update_extruder_count_when_delete_filament(num_filaments, filament_id + 1, replace_filament_id + 1); // this function is 1 base
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ public:
|
|||||||
void on_filaments_delete(size_t filament_id);
|
void on_filaments_delete(size_t filament_id);
|
||||||
|
|
||||||
void add_filament();
|
void add_filament();
|
||||||
void delete_filament(size_t filament_id = size_t(-1), int replace_filament_id = -1); // 0 base
|
void delete_filament(size_t filament_id = size_t(-1), int replace_filament_id = -1); // 0 base, -1 means default
|
||||||
void change_filament(size_t from_id, size_t to_id); // 0 base
|
void change_filament(size_t from_id, size_t to_id); // 0 base
|
||||||
void edit_filament();
|
void edit_filament();
|
||||||
void add_custom_filament(wxColour new_col);
|
void add_custom_filament(wxColour new_col);
|
||||||
|
|||||||
Reference in New Issue
Block a user