From ad98c9971c56263b55818e261ae36c089de1bf58 Mon Sep 17 00:00:00 2001 From: "jiaxi.chen" Date: Thu, 15 May 2025 16:53:21 +0800 Subject: [PATCH] FIX: dont change raft_distance when no raft jira: STUDIO-12187 Change-Id: I1db2124e5e818025249a038086553c9eb845f025 --- src/libslic3r/GCode.cpp | 4 ++-- src/libslic3r/Slicing.cpp | 2 +- src/slic3r/GUI/ConfigManipulation.cpp | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 7e302da4f..fe1527e15 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1187,12 +1187,12 @@ std::vector GCode::collect_layers_to_print(const PrintObjec // raft contact distance should not trigger any warning if (last_extrusion_layer && last_extrusion_layer->support_layer) { - double raft_gap = object.config().raft_contact_distance.value; + double raft_gap = top_cd == 0 ? 0 : object.config().raft_contact_distance.value; //if (!object.print()->config().independent_support_layer_height) { raft_gap = std::ceil(raft_gap / object.config().layer_height) * object.config().layer_height; } - extra_gap = std::max(extra_gap, object.config().raft_contact_distance.value); + extra_gap = std::max(extra_gap, top_cd == 0 ? 0 :object.config().raft_contact_distance.value); } double maximal_print_z = (last_extrusion_layer ? last_extrusion_layer->print_z() : 0.) + layer_to_print.layer()->height diff --git a/src/libslic3r/Slicing.cpp b/src/libslic3r/Slicing.cpp index 1be275a09..a4da25204 100644 --- a/src/libslic3r/Slicing.cpp +++ b/src/libslic3r/Slicing.cpp @@ -110,7 +110,7 @@ SlicingParameters SlicingParameters::create_from_config( params.min_layer_height = std::min(params.min_layer_height, params.layer_height); params.max_layer_height = std::max(params.max_layer_height, params.layer_height); - params.gap_raft_object = object_config.raft_contact_distance.value; + params.gap_raft_object = soluble_interface ? 0 : object_config.raft_contact_distance.value; //BBS params.gap_object_support = object_config.support_bottom_z_distance.value; params.gap_support_object = object_config.support_top_z_distance.value; diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 543eb57ec..e797a3f45 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -676,7 +676,6 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in toggle_field("support_filament", have_support_material || have_skirt); toggle_line("raft_contact_distance", have_raft && !have_support_soluble); - if (!have_raft || have_support_soluble) config->opt_float("raft_contact_distance") = config->opt_float("support_top_z_distance"); bool has_ironing = (config->opt_enum("ironing_type") != IroningType::NoIroning); for (auto el : {