one wall top/bottom for Arachne

#340
#350
This commit is contained in:
SoftFever 2023-02-26 12:07:40 +08:00
parent 113f3d4c26
commit ae6c5be6e9
2 changed files with 5 additions and 1 deletions

View file

@ -1138,6 +1138,11 @@ void PerimeterGenerator::process_arachne()
bead_width_0 = ext_perimeter_width + this->perimeter_flow.scaled_width() - perimeter_spacing; bead_width_0 = ext_perimeter_width + this->perimeter_flow.scaled_width() - perimeter_spacing;
// detect how many perimeters must be generated for this island // detect how many perimeters must be generated for this island
int loop_number = this->config->wall_loops + surface.extra_perimeters - 1; // 0-indexed loops int loop_number = this->config->wall_loops + surface.extra_perimeters - 1; // 0-indexed loops
if (this->layer_id == 0 && this->config->only_one_wall_first_layer)
loop_number = 0;
// BBS: set the topmost layer to be one wall
if (loop_number > 0 && config->only_one_wall_top && this->upper_slices == nullptr)
loop_number = 0;
ExPolygons last = offset_ex(surface.expolygon.simplify_p(m_scaled_resolution), ExPolygons last = offset_ex(surface.expolygon.simplify_p(m_scaled_resolution),
config->precise_outer_wall ? -float(ext_perimeter_width / 2. - bead_width_0 / 2.) config->precise_outer_wall ? -float(ext_perimeter_width / 2. - bead_width_0 / 2.)
: -float(ext_perimeter_width / 2. - ext_perimeter_spacing / 2.)); : -float(ext_perimeter_width / 2. - ext_perimeter_spacing / 2.));

View file

@ -659,7 +659,6 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
"min_feature_size", "min_bead_width", "wall_distribution_count" }) "min_feature_size", "min_bead_width", "wall_distribution_count" })
toggle_line(el, have_arachne); toggle_line(el, have_arachne);
toggle_field("detect_thin_wall", !have_arachne); toggle_field("detect_thin_wall", !have_arachne);
toggle_field("only_one_wall_top", !have_arachne);
// SoftFever // SoftFever
auto is_role_based_wipe_speed = config->opt_bool("role_based_wipe_speed"); auto is_role_based_wipe_speed = config->opt_bool("role_based_wipe_speed");