From 3e974ffe0be0cfbd67ce5e2b116fefc8a7b5d710 Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Tue, 11 Mar 2025 15:24:52 +0800 Subject: [PATCH] ENH: add sysmetric y for zigzag Jira: none Signed-off-by: qing.zhang Change-Id: Ibd01a37ea206c0433b43a756f3a7840ca87fd3b2 --- src/libslic3r/Fill/Fill.cpp | 10 +++++++--- src/slic3r/GUI/ConfigManipulation.cpp | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index 4d015bcf6..5760073d8 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -161,9 +161,10 @@ std::vector group_fills(const Layer &layer) if (params.pattern == ipCrossZag){ params.infill_shift_step = scale_(region_config.infill_shift_step); params.symmetric_infill_y_axis = region_config.symmetric_infill_y_axis; + }else if (params.pattern == ipZigZag){ + params.infill_rotate_step = region_config.infill_rotate_step * M_PI / 360; + params.symmetric_infill_y_axis = region_config.symmetric_infill_y_axis; } - if (params.pattern == ipZigZag) - params.infill_rotate_step = region_config.infill_rotate_step * M_PI / 360; if (surface.is_solid()) { params.density = 100.f; @@ -601,7 +602,10 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive: params.symmetric_infill_y_axis = surface_fill.params.symmetric_infill_y_axis; - } + } else if( surface_fill.params.pattern == ipZigZag ) { + params.symmetric_infill_y_axis = surface_fill.params.symmetric_infill_y_axis; + } + if (surface_fill.params.pattern == ipGrid || surface_fill.params.pattern == ipFloatingConcentric) params.can_reverse = false; LayerRegion* layerm = this->m_regions[surface_fill.region_id]; diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index e62bde792..95da4d29d 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -568,7 +568,9 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in for (auto el : {"infill_shift_step", "symmetric_infill_y_axis"}) toggle_line(el, is_cross_zag); - toggle_line("infill_rotate_step", config->option>("sparse_infill_pattern")->value == InfillPattern::ipZigZag); + bool is_zig_zag = config->option>("sparse_infill_pattern")->value == InfillPattern::ipZigZag; + for (auto el : {"infill_rotate_step", "symmetric_infill_y_axis"}) + toggle_line(el, is_zig_zag); bool has_spiral_vase = config->opt_bool("spiral_mode"); toggle_line("spiral_mode_smooth", has_spiral_vase);