FIX: CLI: fix a wipe tower position issue
when arrange failed and restore to original we will compute the position of wipe tower again we should skip this case JIRA: STUDIO-4048 Change-Id: I19edc36dfa7ec5a9f6b5ba3a1c1e0767361b3e33
This commit is contained in:
parent
5c59b0721f
commit
c8651b43f1
|
@ -1839,6 +1839,7 @@ int CLI::run(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int plate_count = plate_list.get_plate_count();
|
int plate_count = plate_list.get_plate_count();
|
||||||
ConfigOptionFloats *wipe_x_option = nullptr, *wipe_y_option = nullptr;
|
ConfigOptionFloats *wipe_x_option = nullptr, *wipe_y_option = nullptr;
|
||||||
|
Vec3d wipe_offset;
|
||||||
if (print_config.has("wipe_tower_x")) {
|
if (print_config.has("wipe_tower_x")) {
|
||||||
wipe_x_option = dynamic_cast<ConfigOptionFloats *>(print_config.option("wipe_tower_x"));
|
wipe_x_option = dynamic_cast<ConfigOptionFloats *>(print_config.option("wipe_tower_x"));
|
||||||
wipe_y_option = dynamic_cast<ConfigOptionFloats *>(print_config.option("wipe_tower_y"));
|
wipe_y_option = dynamic_cast<ConfigOptionFloats *>(print_config.option("wipe_tower_y"));
|
||||||
|
@ -1854,10 +1855,12 @@ int CLI::run(int argc, char **argv)
|
||||||
Vec3d offset = new_center - cur_center;
|
Vec3d offset = new_center - cur_center;
|
||||||
|
|
||||||
cur_plate->translate_all_instance(offset);
|
cur_plate->translate_all_instance(offset);
|
||||||
|
if (index == 0)
|
||||||
|
wipe_offset = offset;
|
||||||
if (wipe_x_option) {
|
if (wipe_x_option) {
|
||||||
BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed, plate %1%: wipe tower src: {%2%, %3%}")%(index+1) %wipe_x_option->get_at(index) %wipe_y_option->get_at(index);
|
BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed, plate %1%: wipe tower src: {%2%, %3%}")%(index+1) %wipe_x_option->get_at(index) %wipe_y_option->get_at(index);
|
||||||
ConfigOptionFloat wipe_tower_x(wipe_x_option->get_at(index) + offset(0));
|
ConfigOptionFloat wipe_tower_x(wipe_x_option->get_at(index) + wipe_offset(0));
|
||||||
ConfigOptionFloat wipe_tower_y(wipe_y_option->get_at(index) + offset(1));
|
ConfigOptionFloat wipe_tower_y(wipe_y_option->get_at(index) + wipe_offset(1));
|
||||||
|
|
||||||
wipe_x_option->set_at(&wipe_tower_x, index, 0);
|
wipe_x_option->set_at(&wipe_tower_x, index, 0);
|
||||||
wipe_y_option->set_at(&wipe_tower_y, index, 0);
|
wipe_y_option->set_at(&wipe_tower_y, index, 0);
|
||||||
|
@ -2534,8 +2537,7 @@ int CLI::run(int argc, char **argv)
|
||||||
finished_arrange = true;
|
finished_arrange = true;
|
||||||
model = original_model;
|
model = original_model;
|
||||||
partplate_list.load_from_3mf_structure(plate_data_src);
|
partplate_list.load_from_3mf_structure(plate_data_src);
|
||||||
|
partplate_list.reset_size(current_printable_width, current_printable_depth, current_printable_height, true, true);
|
||||||
translate_models(partplate_list, m_print_config);
|
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": exit arrange process");
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": exit arrange process");
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
@ -2550,8 +2552,7 @@ int CLI::run(int argc, char **argv)
|
||||||
finished_arrange = true;
|
finished_arrange = true;
|
||||||
model = original_model;
|
model = original_model;
|
||||||
partplate_list.load_from_3mf_structure(plate_data_src);
|
partplate_list.load_from_3mf_structure(plate_data_src);
|
||||||
|
partplate_list.reset_size(current_printable_width, current_printable_depth, current_printable_height, true, true);
|
||||||
translate_models(partplate_list, m_print_config);
|
|
||||||
duplicate_count = 0;
|
duplicate_count = 0;
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": exit arrange process");
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": exit arrange process");
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue