diff --git a/js/kiri-driver-fdm.js b/js/kiri-driver-fdm.js index 3e6bf819..86236b92 100644 --- a/js/kiri-driver-fdm.js +++ b/js/kiri-driver-fdm.js @@ -468,6 +468,7 @@ var gs_kiri_fdm = exports; function dwell(ms) { append("G4 P" + ms); + time += timeDwell; } function retract() { @@ -480,7 +481,7 @@ var gs_kiri_fdm = exports; if (comment) { append(" ; " + comment); } - var o = ['G1']; + var o = [!rate && !newpos.e ? 'G0' : 'G1']; if (typeof newpos.x === 'number') { pos.x = UTIL.round(newpos.x,decimals); o.append(" X").append(pos.x.toFixed(decimals)); @@ -579,7 +580,6 @@ var gs_kiri_fdm = exports; time += (retDist / retSpeed) * 60 * 2; // retraction time if (retDwell) { dwell(retDwell); - time += timeDwell; } } @@ -588,7 +588,7 @@ var gs_kiri_fdm = exports; moveTo({x:x, y:y, e:emitMM}, speedMMM); emitted += emitMM; } else { - moveTo({x:x, y:y}, speedMMM); + moveTo({x:x, y:y}, seekMMM); } // retract filament @@ -596,7 +596,7 @@ var gs_kiri_fdm = exports; retract(); } - // update time and distance + // update time and distance (should calc in moveTo() instead) time += (dist / speedMMM) * 60; distance += dist; progress = Math.round((distance / totaldistance) * 100); diff --git a/js/kiri-slice.js b/js/kiri-slice.js index 7824f849..7f1da3a3 100644 --- a/js/kiri-slice.js +++ b/js/kiri-slice.js @@ -405,9 +405,8 @@ var gs_kiri_slice = exports; top.traces = last; } else { if (opt.thin) { - var sq2 = Math.sqrt(2), - ons2 = offset1 * sq2, - on2s2 = offsetN * sq2; + var on1s2 = offset1 * 2, + on2s2 = offsetN * 2; POLY.expand2( [top.poly], -offset1, @@ -428,20 +427,19 @@ var gs_kiri_slice = exports; }, // thin wall probe function(p1, p2, diff, dist) { - var ds2 = dist * sq2; if (p2) { // nth offset var pall = POLY.nest(POLY.flatten([].appendAll(p1).appendAll(p2)).clone()), pnew1 = POLY.expand(pall, -dist, z, null, 1), - r1 = fillArea(pnew1, 45, offsetN, [], ds2, on2s2), - r2 = fillArea(pnew1, 135, offsetN, [], dist, on2s2), + r1 = fillArea(pnew1, 45, offsetN, [], dist / 2, on2s2), + r2 = fillArea(pnew1, 135, offsetN, [], dist / 2, on2s2), rall = top.thin_fill.appendAll(cullIntersections(r1, r2)); } else { // first offset var pall = POLY.nest(POLY.flatten([].appendAll(p1).appendAll(p2)).clone()), pnew1 = POLY.expand(pall, -dist, z, null, 1), - r1 = fillArea(pnew1, 45, offsetN, [], 0, ons2), - r2 = fillArea(pnew1, 135, offsetN, [], 0, ons2), + r1 = fillArea(pnew1, 45, offsetN, [], 0, on1s2), + r2 = fillArea(pnew1, 135, offsetN, [], 0, on1s2), rall = top.thin_fill.appendAll(cullIntersections(r1, r2)); } // top.thinner.appendAll(pnew1).appendAll(pnew2); diff --git a/js/kiri-widget.js b/js/kiri-widget.js index abe7ac63..072c9e61 100644 --- a/js/kiri-widget.js +++ b/js/kiri-widget.js @@ -552,8 +552,8 @@ var gs_kiri_widget = exports; ondone(false, reply.error); } if (reply.done && !widget.cancel) { - ondone(true); widget.modified = false; + ondone(true); } }); diff --git a/js/kiri.js b/js/kiri.js index 04bf453b..85ff72b4 100644 --- a/js/kiri.js +++ b/js/kiri.js @@ -1244,8 +1244,8 @@ self.kiri.license = exports.LICENSE; if (--countdown === 0 || error) { setProgress(0); showSlices(preserveLayer); - if (callback && typeof callback === 'function') callback(); setOpacity(settings.mode === 'CAM' ? sliced_opacity_cam : sliced_opacity); + if (callback && typeof callback === 'function') callback(); } // update slider window onControlResize();