NEW: add align_to_y_axis option for auto-arrange

1. Add align_to_y_axis option for auto-arrange.
   This is useful for auto-arranging of i3 type printers.
2. Change default value of align_to_origin to true when switching
   from non-i3 printers to i3 printers.

JIRA: STUDIO-2583

Change-Id: I7dabab846022a0da030a9fec060a60a4207537a0
This commit is contained in:
manch1n 2023-08-18 19:47:35 +08:00 committed by Lane.Wei
parent e789489ed9
commit 7beed5d6dd
8 changed files with 142 additions and 6 deletions

View file

@ -2410,7 +2410,7 @@ int CLI::run(int argc, char **argv)
Model original_model;
std::set<std::pair<int, int>> backup_set;
bool finished_arrange = false, first_run = true;
Slic3r::GUI::PartPlate* cur_plate;
Slic3r::GUI::PartPlate* cur_plate = nullptr;
int low_duplicate_count = 0, up_duplicate_count = duplicate_count, arrange_count = 0;
arrange_cfg.is_seq_print = false;
@ -2616,9 +2616,15 @@ int CLI::run(int argc, char **argv)
arrange_cfg.printable_height = print_height;
arrange_cfg.min_obj_distance = 0;
if (auto printer_structure_opt = m_print_config.option<ConfigOptionEnum<PrinterStructure>>("printer_structure")) {
arrange_cfg.align_to_y_axis = (printer_structure_opt->value == PrinterStructure::psI3);
}
arrangement::update_arrange_params(arrange_cfg, m_print_config, selected);
arrangement::update_selected_items_inflation(selected, &m_print_config, arrange_cfg);
arrangement::update_unselected_items_inflation(unselected, &m_print_config, arrange_cfg);
arrangement::update_selected_items_axis_align(selected, &m_print_config, arrange_cfg);
beds=get_shrink_bedpts(&m_print_config, arrange_cfg);
{