#744 fix for extrusion width: they can be a % in superslicer

This commit is contained in:
supermerill 2020-12-08 17:01:28 +01:00
parent 40015e8de5
commit aef6bec1b4
2 changed files with 5 additions and 3 deletions

View File

@ -305,7 +305,7 @@ std::pair<double, double> adaptive_fill_line_spacing(const PrintObject &print_ob
has_adaptive_infill ? Tristate::Maybe : Tristate::No,
has_support_infill ? Tristate::Maybe : Tristate::No,
config.fill_density,
config.infill_extrusion_width != 0. ? config.infill_extrusion_width : default_infill_extrusion_width
config.infill_extrusion_width != 0. ? config.infill_extrusion_width.get_abs_value(max_nozzle_diameter) : default_infill_extrusion_width
}));
build_octree |= has_adaptive_infill || has_support_infill;
}

View File

@ -625,8 +625,10 @@ void PerimeterGenerator::process()
const ExPolygons top_polygons = diff_ex(fill_clip, inner_polygons, true);
// increase by half peri the inner space to fill the frontier between last and stored.
top_fills = union_ex(top_fills, top_polygons);
//set the clip to the external wall but go bacjk inside by infill_extrusion_width/2 to be sure the extrusion won't go outside even with a 100% overlap.
fill_clip = offset_ex(last, double(ext_perimeter_spacing / 2) - this->config->infill_extrusion_width.get_abs_value(nozzle_diameter)/2);
//set the clip to the external wall but go back inside by infill_extrusion_width/2 to be sure the extrusion won't go outside even with a 100% overlap.
double infill_spacing_unscaled = this->config->infill_extrusion_width.get_abs_value(nozzle_diameter);
if (infill_spacing_unscaled == 0) infill_spacing_unscaled = Flow::auto_extrusion_width(frInfill, nozzle_diameter);
fill_clip = offset_ex(last, double(ext_perimeter_spacing / 2) - scale_d(infill_spacing_unscaled / 2));
// ExPolygons oldLast = last;
last = intersection_ex(inner_polygons, last);
//{