diff --git a/src/octoprint/plugins/svgtogcode/static/js/working_area.js b/src/octoprint/plugins/svgtogcode/static/js/working_area.js index 250d288e..2b5aa811 100644 --- a/src/octoprint/plugins/svgtogcode/static/js/working_area.js +++ b/src/octoprint/plugins/svgtogcode/static/js/working_area.js @@ -428,10 +428,16 @@ $(function(){ }; self.getUsefulDimensions = function(wpx, hpx){ - var maxWidthMM = wpx * 0.25; // TODO parametrize - var aspectRatio = wpx / hpx; - var destWidthMM = Math.min(self.workingAreaWidthMM() - 2, maxWidthMM); - var destHeightMM = destWidthMM / aspectRatio; + var maxWidthMM = wpx * 0.25; // TODO parametrize + var maxHeightMM = hpx * 0.25; // TODO parametrize + var aspectRatio = wpx / hpx; + var destWidthMM = Math.min(self.workingAreaWidthMM() - 2, maxWidthMM); + var destHeightMM = Math.min(self.workingAreaHeightMM() - 2, maxHeightMM); + if ((destWidthMM / aspectRatio) > destHeightMM) { + destWidthMM = destHeightMM * aspectRatio; + } else { + destHeightMM = destWidthMM / aspectRatio; + } var destWidthPT = self.mm2svgUnits(destWidthMM); var destHeightPT = self.mm2svgUnits(destHeightMM); return [destWidthPT, destHeightPT]; diff --git a/src/octoprint/static/js/app/viewmodels/printerstate.js b/src/octoprint/static/js/app/viewmodels/printerstate.js index b6b8f6d5..d03312d2 100644 --- a/src/octoprint/static/js/app/viewmodels/printerstate.js +++ b/src/octoprint/static/js/app/viewmodels/printerstate.js @@ -216,6 +216,7 @@ $(function() { $("#confirmation_dialog .confirmation_dialog_acknowledge").click( function (e) { if (typeof callback === 'function') { + self.onEventPrintDone(); callback(e); $("#confirmation_dialog").modal("hide"); $("#confirmation_dialog .confirmation_dialog_message").html(''); @@ -285,14 +286,14 @@ $(function() { self.onEventRealTimeState = function(payload){ self.currentPos({x: payload.wx, y: payload.wy}); }; - + self.intensityOverride.subscribe(function(factor){ self._overrideCommand("/intensity "+factor); }); self.feedrateOverride.subscribe(function(factor){ self._overrideCommand("/feedrate "+factor); }); - + self._overrideCommand = function(command, callback) { $.ajax({ url: API_BASEURL + "printer/command", @@ -307,7 +308,7 @@ $(function() { } }); }; - + self._configureOverrideSliders = function() { self.intensityOverrideSlider = $("#intensity_override_slider").slider({ step: 1, @@ -318,7 +319,7 @@ $(function() { }).on("slideStop", function(ev){ self.intensityOverride(ev.value); }); - + self.feedrateOverrideSlider = $("#feedrate_override_slider").slider({ step: 1, min: 10, @@ -330,14 +331,14 @@ $(function() { }); }; - + self.onEventPrintDone = function(){ self.feedrateOverrideSlider.slider('setValue', 100); self.intensityOverrideSlider.slider('setValue', 100); self.intensityOverride(100); self.feedrateOverride(100); }; - + self.onStartup = function() { self._configureOverrideSliders(); }; diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index 39a0318a..a014b542 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -824,6 +824,10 @@ class MachineCom(object): if self._currentFile is None: raise ValueError("No file selected for printing") + # reset feedrate and intesity factor in case they where changed in a previous run + self._feedrate_factor = 1 + self._intensity_factor = 1 + try: # ensure fan is on whatever gcode follows. self.sendCommand("M08")