diff --git a/js/kiri-conf.js b/js/kiri-conf.js index d14a706a..8f190462 100644 --- a/js/kiri-conf.js +++ b/js/kiri-conf.js @@ -269,8 +269,8 @@ let gs_kiri_conf = exports; outputRetractDwell: 20, outputBrimCount: 2, outputBrimOffset: 2, - outputShortPoly: 50.0, - outputMinSpeed: 15.0, + outputShortPoly: 100.0, + outputMinSpeed: 10.0, outputCoastDist: 0, outputWipeDistance: 0, outputLayerRetract: false, diff --git a/js/kiri-driver-fdm.js b/js/kiri-driver-fdm.js index 97b841a8..adcaaa45 100644 --- a/js/kiri-driver-fdm.js +++ b/js/kiri-driver-fdm.js @@ -734,7 +734,7 @@ let gs_kiri_fdm = exports; output = [], outputLength = 0, lastProgress = 0, - decimals = 3, + decimals = 5, progress = 0, distance = 0, emitted = 0, diff --git a/js/kiri-driver-sla.js b/js/kiri-driver-sla.js index dbc33e2f..d772336f 100644 --- a/js/kiri-driver-sla.js +++ b/js/kiri-driver-sla.js @@ -336,20 +336,6 @@ let gs_kiri_sla = exports; filedat.writeU16(0x00ff, true); // light pwm (TODO); filedat.writeU16(0x00ff, true); // light pwm bottom (TODO); - filedat.view.setUint32(hirez, filedat.pos, true); - writePhotonImage({ - width: 400, - height: 300, - data: print.sla.done.large - }, filedat); - - filedat.view.setUint32(lorez, filedat.pos, true); - writePhotonImage({ - width: 200, - height: 125, - data: print.sla.done.small - }, filedat); - let propstart = filedat.pos; filedat.view.setUint32(proppos, filedat.pos, true); // write print properties @@ -387,10 +373,24 @@ let gs_kiri_sla = exports; filedat.view.setUint32(layerat[l], filedat.pos, true); let layer = layers[l].sublayers[0]; for (let j=0; j 0 ? 1 : 0); @@ -463,7 +463,7 @@ let gs_kiri_sla = exports; filedat.setUint32 (filePos + 24, 2684702720, false); filePos += 28; for (let j = 0; j < numbytes; j++) { - filedat.setUint8(filePos + j, sublayer[j]); + filedat.setUint8(filePos + j, sublayer[j], false); } filePos += numbytes; } @@ -534,7 +534,7 @@ let gs_kiri_sla = exports; switch (type) { case 'pws': case 'photon': - return length | (color * 128); + return (length & 0x7f) | ((color << 7) & 0x80); case 'photons': length--; return (length & 1 ? 128 : 0) | @@ -547,21 +547,32 @@ let gs_kiri_sla = exports; } } - function rleDecode(data) { + function rleDecode(data, type) { let bytes = []; - for (let i = 0; i < data.length; i++) { - let val = data[i], - col = val & 1, - count = - ((val & 128 ? 1 : 0) | - (val & 64 ? 2 : 0) | - (val & 32 ? 4 : 0) | - (val & 16 ? 8 : 0) | - (val & 8 ? 16 : 0) | - (val & 4 ? 32 : 0) | - (val & 2 ? 64 : 0)) + 1; - for (let j = 0; j < count; j++) { - bytes.push(col); + if (type === 'photon') { + for (let i = 0; i < data.length; i++) { + let val = data[i], + color = val >> 7, + count = val & 0x7f; + for (let j = 0; j < count; j++) { + bytes.push(color); + } + } + } else { + for (let i = 0; i < data.length; i++) { + let val = data[i], + color = val & 1, + count = + ((val & 128 ? 1 : 0) | + (val & 64 ? 2 : 0) | + (val & 32 ? 4 : 0) | + (val & 16 ? 8 : 0) | + (val & 8 ? 16 : 0) | + (val & 4 ? 32 : 0) | + (val & 2 ? 64 : 0)) + 1; + for (let j = 0; j < count; j++) { + bytes.push(color); + } } } return bytes;