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
|
||||
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) {
|
||||
require "Slic3r/SVG.pm";
|
||||
|
@ -262,11 +262,8 @@ MedialAxis::is_valid_edge(const VD::edge_type& edge) const
|
||||
double dist = p0.distance_to(segment1);
|
||||
|
||||
// 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;
|
||||
// if it's too small then it's not suitable for extrusion since it would
|
||||
// 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;
|
||||
// than half the max width, then it's not a true medial axis segment
|
||||
if (dist > this->width/2) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user