Fix the max width supplied to medial axis code: it's up to two extrusions
This commit is contained in:
parent
4a894b1e20
commit
c2ed6090d3
@ -224,7 +224,8 @@ sub make_perimeters {
|
|||||||
|
|
||||||
# process thin walls by collapsing slices to single passes
|
# process thin walls by collapsing slices to single passes
|
||||||
if (@thin_walls) {
|
if (@thin_walls) {
|
||||||
my @p = map @{$_->medial_axis($pspacing)}, @thin_walls;
|
# the maximum thickness of our thin wall area is equal to the minimum thickness of a single loop
|
||||||
|
my @p = map @{$_->medial_axis($pwidth + $pspacing)}, @thin_walls;
|
||||||
|
|
||||||
if (0) {
|
if (0) {
|
||||||
require "Slic3r/SVG.pm";
|
require "Slic3r/SVG.pm";
|
||||||
|
@ -262,11 +262,8 @@ MedialAxis::is_valid_edge(const VD::edge_type& edge) const
|
|||||||
double dist = p0.distance_to(segment1);
|
double dist = p0.distance_to(segment1);
|
||||||
|
|
||||||
// if distance between this edge and the thin area boundary is greater
|
// if distance between this edge and the thin area boundary is greater
|
||||||
// than half the max width, then it's not a true medial axis segment;
|
// than half the max width, then it's not a true medial axis segment
|
||||||
// if it's too small then it's not suitable for extrusion since it would
|
if (dist > this->width/2) return false;
|
||||||
// exceed the desired shape too much (this also traps some very narrow
|
|
||||||
// areas caused by collapsing/mitering that we should ignore)
|
|
||||||
if (dist > this->width/2 || dist < this->width/10) return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user