mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-16 14:35:53 +08:00
SPE-2580: Disable wipe tower in arrange if we know there is none.
This commit is contained in:
parent
c8cac7f678
commit
1675e08268
@ -216,7 +216,17 @@ void SceneBuilder::build_arrangeable_slicer_model(ArrangeableSlicerModel &amodel
|
||||
if (m_fff_print && !m_xl_printer)
|
||||
m_xl_printer = is_XL_printer(m_fff_print->config());
|
||||
|
||||
const bool has_wipe_tower = !m_wipetower_handlers.empty();
|
||||
const bool has_wipe_tower{std::any_of(
|
||||
m_wipetower_handlers.begin(),
|
||||
m_wipetower_handlers.end(),
|
||||
[](const AnyPtr<WipeTowerHandler> &handler){
|
||||
bool is_on_current_bed{false};
|
||||
handler->visit([&](const Arrangeable &arrangeable){
|
||||
is_on_current_bed = arrangeable.get_bed_index() == s_multiple_beds.get_active_bed();
|
||||
});
|
||||
return is_on_current_bed;
|
||||
}
|
||||
)};
|
||||
|
||||
if (m_xl_printer && !has_wipe_tower) {
|
||||
m_bed = XLBed{bounding_box(m_bed), bed_gap(m_bed)};
|
||||
|
@ -1351,10 +1351,8 @@ bool GLCanvas3D::is_arrange_alignment_enabled() const
|
||||
if (!is_XL_printer(*m_config)) {
|
||||
return false;
|
||||
}
|
||||
for (const WipeTowerInfo &wti : this->get_wipe_tower_infos()) {
|
||||
if (bool{wti}) {
|
||||
return false;
|
||||
}
|
||||
if (this->m_wipe_tower_bounding_boxes[s_multiple_beds.get_active_bed()]) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -2553,6 +2551,8 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re
|
||||
} else {
|
||||
delete volume;
|
||||
}
|
||||
} else {
|
||||
m_wipe_tower_bounding_boxes[bed_idx] = std::nullopt;
|
||||
}
|
||||
}
|
||||
s_multiple_beds.ensure_wipe_towers_on_beds(wxGetApp().plater()->model(), wxGetApp().plater()->get_fff_prints());
|
||||
|
@ -920,4 +920,4 @@ bool PresetArchiveDatabase::sync_blocking(PresetUpdaterUIStatus* ui_status)
|
||||
return true;
|
||||
}
|
||||
|
||||
} // Slic3r
|
||||
} // Slic3r
|
||||
|
Loading…
x
Reference in New Issue
Block a user