|
@@ -692,13 +692,15 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|
|
fills_by_priority[(size_t)surface_fill.params.priority]->entities()[idx]->visit(compute_volume);
|
|
|
fills_by_priority[(size_t)surface_fill.params.priority]->entities()[idx]->visit(compute_volume_no_gap_fill);
|
|
|
}
|
|
|
- ExPolygons temp = intersection_ex(ExPolygons{surface_fill.surface.expolygon}, f->no_overlap_expolygons);
|
|
|
+ ExPolygons temp = f->no_overlap_expolygons.empty() ?
|
|
|
+ ExPolygons{surface_fill.surface.expolygon} :
|
|
|
+ intersection_ex(ExPolygons{surface_fill.surface.expolygon}, f->no_overlap_expolygons);
|
|
|
double real_surface = 0;
|
|
|
for(auto &t : temp) real_surface += t.area();
|
|
|
assert(compute_volume.volume < unscaled(unscaled(surface_fill.surface.area())) * surface_fill.params.layer_height + EPSILON);
|
|
|
double area = unscaled(unscaled(real_surface));
|
|
|
- assert(compute_volume.volume <= area * surface_fill.params.layer_height * 1.001);
|
|
|
- assert(compute_volume.volume >= area * surface_fill.params.layer_height * 0.999 || area < std::max(1.,surface_fill.params.config->solid_infill_below_area.value));
|
|
|
+ assert(compute_volume.volume <= area * surface_fill.params.layer_height * 1.001 || f->debug_verify_flow_mult <= 0.8);
|
|
|
+ assert(compute_volume.volume >= area * surface_fill.params.layer_height * 0.999 || f->debug_verify_flow_mult >= 1.3 || area < std::max(1.,surface_fill.params.config->solid_infill_below_area.value));
|
|
|
}
|
|
|
#endif
|
|
|
}
|