mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-18 20:28:08 -06:00
FIX: correct the obj distance of by-object partplate arrangement
STUDIO-3103 Change-Id: I44dd3e8677713bf5427f266ff3c88870fbb4b2f9 (cherry picked from commit aebcba75ba760d31245f9cf336cba72da3521b1a)
This commit is contained in:
parent
ebaca0d42d
commit
d303e41acc
3 changed files with 12 additions and 5 deletions
|
@ -392,7 +392,7 @@ void ArrangeJob::prepare()
|
||||||
NotificationManager::NotificationLevel::RegularNotificationLevel, _u8L("Arranging..."));
|
NotificationManager::NotificationLevel::RegularNotificationLevel, _u8L("Arranging..."));
|
||||||
m_plater->get_notification_manager()->bbl_close_plateinfo_notification();
|
m_plater->get_notification_manager()->bbl_close_plateinfo_notification();
|
||||||
|
|
||||||
params = init_arrange_params(*m_plater);
|
params = init_arrange_params(m_plater);
|
||||||
|
|
||||||
//BBS update extruder params and speed table before arranging
|
//BBS update extruder params and speed table before arranging
|
||||||
Plater::setExtruderParams(Model::extruderParamsMap);
|
Plater::setExtruderParams(Model::extruderParamsMap);
|
||||||
|
@ -727,10 +727,10 @@ arrangement::ArrangeParams get_arrange_params(Plater *p)
|
||||||
}
|
}
|
||||||
|
|
||||||
// call before get selected and unselected
|
// call before get selected and unselected
|
||||||
arrangement::ArrangeParams init_arrange_params(const Plater &p)
|
arrangement::ArrangeParams init_arrange_params(Plater *p)
|
||||||
{
|
{
|
||||||
arrangement::ArrangeParams params;
|
arrangement::ArrangeParams params;
|
||||||
const GLCanvas3D::ArrangeSettings &settings = static_cast<const GLCanvas3D *>(p.canvas3D())->get_arrange_settings();
|
const GLCanvas3D::ArrangeSettings &settings = static_cast<const GLCanvas3D *>(p->canvas3D())->get_arrange_settings();
|
||||||
auto & print = wxGetApp().plater()->get_partplate_list().get_current_fff_print();
|
auto & print = wxGetApp().plater()->get_partplate_list().get_current_fff_print();
|
||||||
|
|
||||||
params.clearance_height_to_rod = print.config().extruder_clearance_height_to_rod.value;
|
params.clearance_height_to_rod = print.config().extruder_clearance_height_to_rod.value;
|
||||||
|
@ -745,6 +745,13 @@ arrangement::ArrangeParams init_arrange_params(const Plater &p)
|
||||||
params.bed_shrink_x = settings.bed_shrink_x;
|
params.bed_shrink_x = settings.bed_shrink_x;
|
||||||
params.bed_shrink_y = settings.bed_shrink_y;
|
params.bed_shrink_y = settings.bed_shrink_y;
|
||||||
|
|
||||||
|
int state = p->get_prepare_state();
|
||||||
|
if (state == Job::JobPrepareState::PREPARE_STATE_MENU) {
|
||||||
|
PartPlateList &plate_list = p->get_partplate_list();
|
||||||
|
PartPlate * plate = plate_list.get_curr_plate();
|
||||||
|
params.is_seq_print = plate->get_real_print_seq() == PrintSequence::ByObject;
|
||||||
|
}
|
||||||
|
|
||||||
if (params.is_seq_print)
|
if (params.is_seq_print)
|
||||||
params.min_obj_distance = std::max(params.min_obj_distance, scaled(params.cleareance_radius + 0.001)); // +0.001mm to avoid clearance check fail due to rounding error
|
params.min_obj_distance = std::max(params.min_obj_distance, scaled(params.cleareance_radius + 0.001)); // +0.001mm to avoid clearance check fail due to rounding error
|
||||||
return params;
|
return params;
|
||||||
|
|
|
@ -78,7 +78,7 @@ double bed_stride_y(const Plater* plater);
|
||||||
|
|
||||||
arrangement::ArrangeParams get_arrange_params(Plater *p);
|
arrangement::ArrangeParams get_arrange_params(Plater *p);
|
||||||
|
|
||||||
arrangement::ArrangeParams init_arrange_params(const Plater &p);
|
arrangement::ArrangeParams init_arrange_params(Plater *p);
|
||||||
|
|
||||||
Points get_shrink_bedpts(const Plater& plater,const arrangement::ArrangeParams& params);
|
Points get_shrink_bedpts(const Plater& plater,const arrangement::ArrangeParams& params);
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ void FillBedJob::prepare()
|
||||||
m_unselected.clear();
|
m_unselected.clear();
|
||||||
m_bedpts.clear();
|
m_bedpts.clear();
|
||||||
|
|
||||||
params = init_arrange_params(*m_plater);
|
params = init_arrange_params(m_plater);
|
||||||
|
|
||||||
m_object_idx = m_plater->get_selected_object_idx();
|
m_object_idx = m_plater->get_selected_object_idx();
|
||||||
if (m_object_idx == -1)
|
if (m_object_idx == -1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue