diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 3b4b68341..6796c1616 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -83,10 +83,9 @@ const double BIG_ITEM_TRESHOLD = 0.02; void update_arrange_params(ArrangeParams& params, const DynamicPrintConfig* print_cfg, const ArrangePolygons& selected) { - double skirt_distance = get_real_skirt_dist(*print_cfg); // Note: skirt_distance is now defined between outermost brim and skirt, not the object and skirt. // So we can't do max but do adding instead. - params.brim_skirt_distance = skirt_distance; + params.brim_skirt_distance = get_real_skirt_dist(*print_cfg); params.bed_shrink_x += params.brim_skirt_distance; params.bed_shrink_y += params.brim_skirt_distance; if (params.is_seq_print) { @@ -97,7 +96,7 @@ void update_arrange_params(ArrangeParams& params, const DynamicPrintConfig* prin } else 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 - + // for sequential print, we need to inflate the bed because cleareance_radius is so large params.bed_shrink_x -= unscale_(params.min_obj_distance / 2); params.bed_shrink_y -= unscale_(params.min_obj_distance / 2); diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index 4c6f4f373..8b8adc7ef 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -188,7 +188,7 @@ void ArrangeJob::prepare_selected() { void ArrangeJob::prepare_all() { clear_input(); - PartPlateList& plate_list = m_plater->get_partplate_list(); + PartPlateList& plate_list = m_plater->get_partplate_list(); for (size_t i = 0; i < plate_list.get_plate_count(); i++) { PartPlate* plate = plate_list.get_plate(i); bool same_as_global_print_seq = true; @@ -540,12 +540,12 @@ void ArrangeJob::process() if (params.avoid_extrusion_cali_region && global_config.opt_bool("scan_first_layer")) partplate_list.preprocess_nonprefered_areas(m_unselected, MAX_NUM_PLATES); - update_arrange_params(params, m_plater->config(), m_selected); - update_selected_items_inflation(m_selected, m_plater->config(), params); - update_unselected_items_inflation(m_unselected, m_plater->config(), params); - update_selected_items_axis_align(m_selected, m_plater->config(), params); + update_arrange_params(params, &global_config, m_selected); + update_selected_items_inflation(m_selected, &global_config, params); + update_unselected_items_inflation(m_unselected, &global_config, params); + update_selected_items_axis_align(m_selected, &global_config, params); - Points bedpts = get_shrink_bedpts(m_plater->config(),params); + Points bedpts = get_shrink_bedpts(&global_config,params); partplate_list.preprocess_exclude_areas(params.excluded_regions, 1, scale_(1));