Experiment: Added a rectilinear monotonic infill without perimeter
connection lines for top / bottom infill patterns. Co-authored-by: lane.wei <lane.wei@bambulab.com>
This commit is contained in:
parent
617747acb3
commit
f7f763300e
6 changed files with 42 additions and 18 deletions
src/libslic3r/Fill
|
@ -110,6 +110,11 @@ struct SurfaceFill {
|
|||
SurfaceFillParams params;
|
||||
};
|
||||
|
||||
static inline bool fill_type_monotonic(InfillPattern pattern)
|
||||
{
|
||||
return pattern == ipMonotonic || pattern == ipMonotonicLines;
|
||||
}
|
||||
|
||||
std::vector<SurfaceFill> group_fills(const Layer &layer)
|
||||
{
|
||||
std::vector<SurfaceFill> surface_fills;
|
||||
|
@ -138,7 +143,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
|||
//FIXME for non-thick bridges, shall we allow a bottom surface pattern?
|
||||
params.pattern = (surface.is_external() && ! is_bridge) ?
|
||||
(surface.is_top() ? region_config.top_fill_pattern.value : region_config.bottom_fill_pattern.value) :
|
||||
region_config.top_fill_pattern == ipMonotonic ? ipMonotonic : ipRectilinear;
|
||||
fill_type_monotonic(region_config.top_fill_pattern) ? ipMonotonic : ipRectilinear;
|
||||
} else if (params.density <= 0)
|
||||
continue;
|
||||
|
||||
|
@ -279,7 +284,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
|||
if (internal_solid_fill == nullptr) {
|
||||
// Produce another solid fill.
|
||||
params.extruder = layerm.region().extruder(frSolidInfill);
|
||||
params.pattern = layerm.region().config().top_fill_pattern == ipMonotonic ? ipMonotonic : ipRectilinear;
|
||||
params.pattern = fill_type_monotonic(layerm.region().config().top_fill_pattern) ? ipMonotonic : ipRectilinear;
|
||||
params.density = 100.f;
|
||||
params.extrusion_role = ExtrusionRole::InternalInfill;
|
||||
params.angle = float(Geometry::deg2rad(layerm.region().config().fill_angle.value));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue