A single-layer rectilinear or honeycomb fill under a low slope
wall/ceiling or extra perimeter will stick out from under the
overhang, because those fills get extended beyond their fill_surface
boundaries to purposely overlap perimeters. This causes interference
with multil-layer fills. This commit clips the single layer fill
boundaries a bit more where they interface with multi-layer fill
boundaries, to avoid overlap.
An undocumented feature of Net::DBus->session() is that it returns
the same connection object it creates the first time it's called for
all subsequent calls. Somehow this exposes us to a bug where unref()
is called on that object too many times, causing a segfault.
Undefining the cached object after we've used it once avoids this.
Each object on the plater was being queried for points for
producing the skirt for all skirt layers, even when the object was
shorter than the skirt.
layers of the print
Polygons used for N x depth fill surfaces need to be offset
by flow spacing before they are reused to clip lower fill surfaces.
Otherwise thin fill sections remain on clipped layers against sloping
walls, and the N x depth fill collides with them.
Was set to 10 to address 801. Setting to 3 has the same effect for 801,
and avoids spike artifacts that are likely causing "spike and pimple"
problems in the referenced issues.
Geomery in referenced issues triggered Clipper problems, but also
pointed to a situation where integer truncation (as coordinates pass
into Clipper) might be shrinking a clip polygon in a way that leaves
degenerate or unwanted thin clip results. Growing the clip polygon by 2
is expected to overcome any issues caused by truncation of floats.
Geometry::lines_parallel() test used for collapsing adjacent colinear
lines was too loose in testing for colinearity, because of this constant
setting. Gradualy curving and high-res outer perimiters would
over-simplify into straight lines.
A default scale of 1 was being calculated most of the time. That's too
low to avoid artifacts from offsetting concave curves. Setting scale to
a default of 100000 eliminates artifacts in the test cases in issues
#700, #702 and #703. There is a risk of large point proliferation with
this scale in combination with the JT_ROUND option, but in the four
places where that option is used, scale is already explicitly set to a
safer low value.