diff --git a/src/octoprint/plugins/svgtogcode/__init__.py b/src/octoprint/plugins/svgtogcode/__init__.py index 0503ed8d..b859f04c 100644 --- a/src/octoprint/plugins/svgtogcode/__init__.py +++ b/src/octoprint/plugins/svgtogcode/__init__.py @@ -301,7 +301,7 @@ class SvgToGcodePlugin(octoprint.plugin.SlicerPlugin, type="svgtogcode", name="svgtogcode", same_device=True, - progress_report=False + progress_report=True ) def get_slicer_default_profile(self): diff --git a/src/octoprint/plugins/svgtogcode/static/css/mrbeam.css b/src/octoprint/plugins/svgtogcode/static/css/mrbeam.css index fef18060..78670690 100644 --- a/src/octoprint/plugins/svgtogcode/static/css/mrbeam.css +++ b/src/octoprint/plugins/svgtogcode/static/css/mrbeam.css @@ -1814,4 +1814,17 @@ input.search-query, background-color: #DD0000; background-image: none; white-space: nowrap; +} + +.progress-striped .bar { + background-color: #DD0000; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; } \ No newline at end of file diff --git a/src/octoprint/plugins/svgtogcode/static/js/convert.js b/src/octoprint/plugins/svgtogcode/static/js/convert.js index e66f3784..9f2568e5 100644 --- a/src/octoprint/plugins/svgtogcode/static/js/convert.js +++ b/src/octoprint/plugins/svgtogcode/static/js/convert.js @@ -12,7 +12,14 @@ $(function(){ self.target = undefined; self.file = undefined; self.data = undefined; + self.slicing_progress = ko.observable(0); + self.slicing_in_progress = ko.observable(false); + self.title = ko.observable(undefined); + self.slicer = ko.observable(); + self.slicers = ko.observableArray(); + self.profile = ko.observable(); + self.profiles = ko.observableArray(); self.defaultSlicer = undefined; self.defaultProfile = undefined; @@ -27,11 +34,6 @@ $(function(){ self.laserSpeed = ko.observable(undefined); self.maxSpeed = ko.observable(3000); self.minSpeed = ko.observable(20); - self.title = ko.observable(undefined); - self.slicer = ko.observable(); - self.slicers = ko.observableArray(); - self.profile = ko.observable(); - self.profiles = ko.observableArray(); // image engraving stuff // preset values are a good start for wood engraving @@ -88,7 +90,6 @@ $(function(){ self.laserSpeed(speed); } - // TODO: js svg conversion var gcodeFile = self.create_gcode_filename(self.workingArea.placedDesigns()); self.gcodeFilename(gcodeFile); @@ -127,7 +128,6 @@ $(function(){ return gcode_name; } else { -// return "tmp"+Date.now()+".gco"; console.error("no designs placed."); return; } @@ -269,8 +269,6 @@ $(function(){ data: JSON.stringify(data) }); - $("#dialog_vector_graphics_conversion").modal("hide"); - self.gcodeFilename(undefined); self.svg = undefined; } @@ -288,6 +286,31 @@ $(function(){ self._configureFeedrateSlider(); self._configureImgSliders(); }; + + self.onSlicingProgress = function(slicer, model_path, machinecode_path, progress){ + self.slicing_progress(progress); + }; + self.onEventSlicingStarted = function(payload){ + self.slicing_in_progress(true); + console.log("onSlicingDone" , payload); + }; + self.onEventSlicingDone = function(payload){ + // payload +// gcode: "angelina_20091211_0193_11more_i1000s300.gco" +// gcode_location: "local" +// stl: "local/angelina_jolie_20091211_0193_11more_i1000s300.svg" +// time: 30.612739086151123 + $("#dialog_vector_graphics_conversion").modal("hide"); + self.slicing_in_progress(false); + }; + self.onEventSlicingCancelled = function(payload){ + self.slicing_in_progress(false); + console.log("onSlicingCancelled" , payload); + }; + self.onEventSlicingFailed = function(payload){ + self.slicing_in_progress(false); + console.log("onSlicingFailed" , payload); + }; self._configureIntensitySlider = function() { self.intensitySlider = $("#svgtogcode_intensity_slider").slider({ @@ -351,7 +374,7 @@ $(function(){ min: 1, max: self.contrastMax, value: 1, - tooltip: 'hide', + tooltip: 'hide' }).on("slide", function(ev){ self.imgContrast(ev.value); }); @@ -362,19 +385,15 @@ $(function(){ max: self.sharpeningMax, value: 1, class: 'img_slider', - tooltip: 'hide', + tooltip: 'hide' }).on("slide", function(ev){ self.imgSharpening(ev.value); }); }; - // TODO debug this. self.showExpertSettings.subscribe(function(){ -// var wh = $(window).height(); -// var h = $('#dialog_vector_graphics_conversion').outerHeight(); -// var d = Math.max((wh - h) / 2, 10); -// $('#dialog_vector_graphics_conversion').css('top', d + 'px'); + $('#dialog_vector_graphics_conversion').trigger('resize'); }); } diff --git a/src/octoprint/plugins/svgtogcode/templates/svgtogcode.jinja2 b/src/octoprint/plugins/svgtogcode/templates/svgtogcode.jinja2 index 428c60e2..8ed36bce 100644 --- a/src/octoprint/plugins/svgtogcode/templates/svgtogcode.jinja2 +++ b/src/octoprint/plugins/svgtogcode/templates/svgtogcode.jinja2 @@ -4,7 +4,7 @@

+ +
+
+