diff --git a/xs/src/libslic3r/Print.cpp b/xs/src/libslic3r/Print.cpp index 80f68c51b..756fe08f9 100644 --- a/xs/src/libslic3r/Print.cpp +++ b/xs/src/libslic3r/Print.cpp @@ -923,13 +923,15 @@ void Print::_make_skirt() // Initial offset of the brim inner edge from the object (possible with a support & raft). // The skirt will touch the brim if the brim is extruded. - coord_t distance = scale_(std::max(this->config.skirt_distance.value, this->config.brim_width.value)); + Flow brim_flow = this->brim_flow(); + double actual_brim_width = brim_flow.spacing() * floor(this->config.brim_width.value / brim_flow.spacing()); + coord_t distance = scale_(std::max(this->config.skirt_distance.value, actual_brim_width)); // Draw outlines from outside to inside. // Loop while we have less skirts than required or any extruder hasn't reached the min length if any. std::vector extruded_length(extruders.size(), 0.); for (int i = n_skirts, extruder_idx = 0; i > 0; -- i) { // Offset the skirt outside. - distance += coord_t(scale_(spacing)); + distance += coord_t(scale_(spacing/2.)); // Generate the skirt centerline. Polygon loop; { @@ -989,7 +991,7 @@ void Print::_make_brim() } } Polygons loops; - size_t num_loops = size_t(floor(this->config.brim_width.value / flow.width)); + size_t num_loops = size_t(floor(this->config.brim_width.value / flow.spacing())); for (size_t i = 0; i < num_loops; ++ i) { islands = offset(islands, float(flow.scaled_spacing()), jtSquare); for (Polygon &poly : islands) {