fix solid layer projection through forced solid layers

This commit is contained in:
Stewart Allen 2022-03-01 13:18:40 -05:00
commit 3ff422d702

View file

@ -1098,7 +1098,7 @@ function addSolidFills(slice, polys) {
* project bottom flats down * project bottom flats down
*/ */
function projectFlats(slice, count) { function projectFlats(slice, count) {
if (slice.isSolidLayer || !slice.down || !slice.flats) return; if (!slice.down || !slice.flats) return;
projectSolid(slice, slice.flats, count, false, true); projectSolid(slice, slice.flats, count, false, true);
}; };
@ -1106,7 +1106,7 @@ function projectFlats(slice, count) {
* project top bridges up * project top bridges up
*/ */
function projectBridges(slice, count) { function projectBridges(slice, count) {
if (slice.isSolidLayer || !slice.up || !slice.bridges) return; if (!slice.up || !slice.bridges) return;
projectSolid(slice, slice.bridges, count, true, true); projectSolid(slice, slice.bridges, count, true, true);
}; };
@ -1123,6 +1123,10 @@ function doSolidsFill(slice, spacing, angle, minArea, fillQ) {
return; return;
} }
if (slice.isSolidLayer) {
return;
}
let unioned = POLY.union(solids, undefined, true, { wasm: true }).flat(), let unioned = POLY.union(solids, undefined, true, { wasm: true }).flat(),
isSLA = (spacing === undefined && angle === undefined); isSLA = (spacing === undefined && angle === undefined);
@ -1448,7 +1452,7 @@ function fillSupportPolys(promises, polys, linewidth, density, z, isBelt) {
* @returns {*} * @returns {*}
*/ */
function projectSolid(slice, polys, count, up, first) { function projectSolid(slice, polys, count, up, first) {
if (!slice || slice.isSolidLayer || count <= 0) { if (!slice || count <= 0) {
return; return;
} }
let clones = polys.clone(true); let clones = polys.clone(true);