ENH: add sysmetric y for zigzag

Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ibd01a37ea206c0433b43a756f3a7840ca87fd3b2
This commit is contained in:
qing.zhang 2025-03-11 15:24:52 +08:00 committed by lane.wei
parent 766c6e0041
commit 3e974ffe0b
2 changed files with 10 additions and 4 deletions

View File

@ -161,9 +161,10 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
if (params.pattern == ipCrossZag){ if (params.pattern == ipCrossZag){
params.infill_shift_step = scale_(region_config.infill_shift_step); params.infill_shift_step = scale_(region_config.infill_shift_step);
params.symmetric_infill_y_axis = region_config.symmetric_infill_y_axis; params.symmetric_infill_y_axis = region_config.symmetric_infill_y_axis;
} }else if (params.pattern == ipZigZag){
if (params.pattern == ipZigZag)
params.infill_rotate_step = region_config.infill_rotate_step * M_PI / 360; params.infill_rotate_step = region_config.infill_rotate_step * M_PI / 360;
params.symmetric_infill_y_axis = region_config.symmetric_infill_y_axis;
}
if (surface.is_solid()) { if (surface.is_solid()) {
params.density = 100.f; 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; 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) if (surface_fill.params.pattern == ipGrid || surface_fill.params.pattern == ipFloatingConcentric)
params.can_reverse = false; params.can_reverse = false;
LayerRegion* layerm = this->m_regions[surface_fill.region_id]; LayerRegion* layerm = this->m_regions[surface_fill.region_id];

View File

@ -568,7 +568,9 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in
for (auto el : {"infill_shift_step", "symmetric_infill_y_axis"}) for (auto el : {"infill_shift_step", "symmetric_infill_y_axis"})
toggle_line(el, is_cross_zag); toggle_line(el, is_cross_zag);
toggle_line("infill_rotate_step", config->option<ConfigOptionEnum<InfillPattern>>("sparse_infill_pattern")->value == InfillPattern::ipZigZag); bool is_zig_zag = config->option<ConfigOptionEnum<InfillPattern>>("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"); bool has_spiral_vase = config->opt_bool("spiral_mode");
toggle_line("spiral_mode_smooth", has_spiral_vase); toggle_line("spiral_mode_smooth", has_spiral_vase);