adapt sla spacing to accommodate raft
This commit is contained in:
parent
e984726ba9
commit
17f12aa0d5
2 changed files with 19 additions and 11 deletions
|
|
@ -85,23 +85,24 @@ let gs_kiri_sla = exports;
|
||||||
}
|
}
|
||||||
// prepend raft layers to slices array
|
// prepend raft layers to slices array
|
||||||
if (process.slaSupportLayers) {
|
if (process.slaSupportLayers) {
|
||||||
let zoff = height / 2,
|
let layers = process.slaSupportLayers,
|
||||||
|
zoff = height / 2,
|
||||||
snew = [],
|
snew = [],
|
||||||
polys = [],
|
polys = [],
|
||||||
off = 2, // starting union offset from part
|
|
||||||
gap = 10, // gap layers above raft
|
gap = 10, // gap layers above raft
|
||||||
grow = 0.1; // union per layer expand
|
grow = height, // union per layer expand
|
||||||
|
off = 1 - (layers * grow); // starting union offset from part
|
||||||
let outer = slices.forEach(slice => {
|
let outer = slices.forEach(slice => {
|
||||||
polys.appendAll(slice.tops.map(t => t.poly));
|
polys.appendAll(slice.tops.map(t => t.poly));
|
||||||
});
|
});
|
||||||
let union = POLY.union(polys);
|
let union = POLY.union(polys);
|
||||||
let expand = POLY.expand(union, off, zoff, [], 1);
|
let expand = POLY.expand(union, off, zoff, [], 1);
|
||||||
let lastraft;
|
let lastraft;
|
||||||
for (let s=0; s<process.slaSupportLayers + gap; s++) {
|
for (let s=0; s<layers + gap; s++) {
|
||||||
let slice = newSlice(zoff);
|
let slice = newSlice(zoff);
|
||||||
slice.height = height;
|
slice.height = height;
|
||||||
slice.index = snew.length;
|
slice.index = snew.length;
|
||||||
if (s < process.slaSupportLayers) {
|
if (s < layers) {
|
||||||
slice.synth = true;
|
slice.synth = true;
|
||||||
expand.forEach(u => {
|
expand.forEach(u => {
|
||||||
slice.tops.push(newTop(u.clone(true).setZ(zoff)));
|
slice.tops.push(newTop(u.clone(true).setZ(zoff)));
|
||||||
|
|
@ -488,12 +489,14 @@ let gs_kiri_sla = exports;
|
||||||
support = layers.support;
|
support = layers.support;
|
||||||
|
|
||||||
if (slice.solids.unioned) {
|
if (slice.solids.unioned) {
|
||||||
|
// console.log('solid', slice.index)
|
||||||
slice.solids.unioned.forEach(poly => {
|
slice.solids.unioned.forEach(poly => {
|
||||||
poly = poly.clone(true);//.move(widget.track.pos);
|
poly = poly.clone(true);//.move(widget.track.pos);
|
||||||
outline.poly(poly, 0x010101, true);
|
outline.poly(poly, 0x010101, true);
|
||||||
outline.solid(poly, 0x0099cc);
|
outline.solid(poly, 0x0099cc);
|
||||||
});
|
});
|
||||||
} else if (slice.tops) {
|
} else if (slice.tops) {
|
||||||
|
// console.log('top', slice.index)
|
||||||
slice.tops.forEach(top => {
|
slice.tops.forEach(top => {
|
||||||
let poly = top.poly;//.clone(true).move(widget.track.pos);
|
let poly = top.poly;//.clone(true).move(widget.track.pos);
|
||||||
outline.poly(poly, 0x010101, true, false);
|
outline.poly(poly, 0x010101, true, false);
|
||||||
|
|
@ -501,12 +504,14 @@ let gs_kiri_sla = exports;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (slice.supports)
|
if (slice.supports) {
|
||||||
slice.supports.forEach(poly => {
|
// console.log('support', slice.index)
|
||||||
//poly = poly.clone(true).move(widget.track.pos);
|
slice.supports.forEach(poly => {
|
||||||
support.poly(poly, 0x010105, true, false);
|
//poly = poly.clone(true).move(widget.track.pos);
|
||||||
support.solid(poly, 0xfcba03);
|
support.poly(poly, 0x010101, true, false);
|
||||||
});
|
support.solid(poly, 0xfcba03);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
slice.renderDiff();
|
slice.renderDiff();
|
||||||
slice.renderSolidOutlines();
|
slice.renderSolidOutlines();
|
||||||
|
|
|
||||||
|
|
@ -1148,6 +1148,9 @@ self.kiri.copyright = exports.COPYRIGHT;
|
||||||
topZ = MODE === MODES.CAM ? camTopZ - proc.camZTopOffset : 0;
|
topZ = MODE === MODES.CAM ? camTopZ - proc.camZTopOffset : 0;
|
||||||
|
|
||||||
switch (MODE) {
|
switch (MODE) {
|
||||||
|
case MODES.SLA:
|
||||||
|
space = space || (proc.slaSupportLayers && proc.slaSupportDensity ? 2 : 1);
|
||||||
|
break;
|
||||||
case MODES.CAM:
|
case MODES.CAM:
|
||||||
case MODES.LASER:
|
case MODES.LASER:
|
||||||
space = space || proc.outputTileSpacing || 1;
|
space = space || proc.outputTileSpacing || 1;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue