diff --git a/src/octoprint/plugins/svgtogcode/static/js/convert.js b/src/octoprint/plugins/svgtogcode/static/js/convert.js
index 76dacbaa..645858eb 100644
--- a/src/octoprint/plugins/svgtogcode/static/js/convert.js
+++ b/src/octoprint/plugins/svgtogcode/static/js/convert.js
@@ -42,19 +42,25 @@ $(function(){
// shows conversion dialog and extracts svg first
self.show_conversion_dialog = function() {
- var intensity = self.settings.settings.plugins.svgtogcode.defaultIntensity();
- var speed = self.settings.settings.plugins.svgtogcode.defaultFeedrate();
- self.laserIntensity(intensity);
- self.laserSpeed(speed);
-
self.svg = self.workingArea.getCompositionSVG();
self.gcodeFilesToAppend = self.workingArea.getPlacedGcodes();
-
- // TODO: js svg conversion
- self.title(gettext("Converting"));
var gcodeFile = self.create_gcode_filename(self.workingArea.placedDesigns());
self.gcodeFilename(gcodeFile);
- $("#dialog_vector_graphics_conversion").modal("show"); // calls self.convert afterwards
+
+ if(self.svg !== undefined){
+ var intensity = self.settings.settings.plugins.svgtogcode.defaultIntensity();
+ var speed = self.settings.settings.plugins.svgtogcode.defaultFeedrate();
+ self.laserIntensity(intensity);
+ self.laserSpeed(speed);
+
+
+ // TODO: js svg conversion
+ self.title(gettext("Converting"));
+ $("#dialog_vector_graphics_conversion").modal("show"); // calls self.convert() afterwards
+ } else {
+ // just gcodes were placed. Start lasering right away.
+ self.convert();
+ }
};
self.create_gcode_filename = function(placedDesigns){
@@ -136,7 +142,7 @@ $(function(){
});
});
- if (selectedSlicer != undefined) {
+ if (selectedSlicer !== undefined) {
self.slicer(selectedSlicer);
}
@@ -144,10 +150,10 @@ $(function(){
};
self.profilesForSlicer = function(key) {
- if (key == undefined) {
+ if (key === undefined) {
key = self.slicer();
}
- if (key == undefined || !self.data.hasOwnProperty(key)) {
+ if (key === undefined || !self.data.hasOwnProperty(key)) {
return;
}
var slicer = self.data[key];
@@ -156,7 +162,7 @@ $(function(){
self.profiles.removeAll();
_.each(_.values(slicer.profiles), function(profile) {
var name = profile.displayName;
- if (name == undefined) {
+ if (name === undefined) {
name = profile.key;
}
@@ -167,10 +173,10 @@ $(function(){
self.profiles.push({
key: profile.key,
name: name
- })
+ });
});
- if (selectedProfile != undefined) {
+ if (selectedProfile !== undefined) {
self.profile(selectedProfile);
}
@@ -195,6 +201,8 @@ $(function(){
if(self.svg !== undefined){
data.svg = self.svg;
+ } else {
+ data.svg = '';
}
if(self.gcodeFilesToAppend !== undefined){
data.gcodeFilesToAppend = self.gcodeFilesToAppend;
@@ -211,6 +219,7 @@ $(function(){
$("#dialog_vector_graphics_conversion").modal("hide");
self.gcodeFilename(undefined);
+ self.svg = undefined;
//self.slicer(self.defaultSlicer);
//self.profile(self.defaultProfile);
};
diff --git a/src/octoprint/plugins/svgtogcode/static/js/working_area.js b/src/octoprint/plugins/svgtogcode/static/js/working_area.js
index 78cefe48..e138a34d 100644
--- a/src/octoprint/plugins/svgtogcode/static/js/working_area.js
+++ b/src/octoprint/plugins/svgtogcode/static/js/working_area.js
@@ -100,6 +100,7 @@ $(function(){
self.clear = function(){
snap.selectAll('#userContent>*').remove();
+ snap.selectAll('#placedGcodes>*').remove();
self.placedDesigns([]);
};
@@ -339,16 +340,19 @@ $(function(){
};
self.getCompositionSVG = function(){
- var dpiFactor = self.svgDPI()/25.4; // convert mm to pix 90dpi for inkscape, 72 for illustrator
- var w = dpiFactor * self.workingAreaWidthMM();
- var h = dpiFactor * self.workingAreaHeightMM();
-// var w = dpiFactor * self.settings.printerProfiles.currentProfileData().volume.width;
-// var h = dpiFactor * self.settings.printerProfiles.currentProfileData().volume.depth;
-// var yTranslation = "translate(0, "+h+")";
-
var tmpsvg = snap.select("#userContent").innerSVG(); // get working area
- var svg = '';
- return svg;
+ if(tmpsvg !== ''){
+ var dpiFactor = self.svgDPI()/25.4; // convert mm to pix 90dpi for inkscape, 72 for illustrator
+ var w = dpiFactor * self.workingAreaWidthMM();
+ var h = dpiFactor * self.workingAreaHeightMM();
+ // var w = dpiFactor * self.settings.printerProfiles.currentProfileData().volume.width;
+ // var h = dpiFactor * self.settings.printerProfiles.currentProfileData().volume.depth;
+
+ var svg = '';
+ return svg;
+ } else {
+ return;
+ }
};
self.getPlacedGcodes = ko.computed(function() {
diff --git a/src/octoprint/server/api/files.py b/src/octoprint/server/api/files.py
index 58a4ab3d..bc071860 100644
--- a/src/octoprint/server/api/files.py
+++ b/src/octoprint/server/api/files.py
@@ -473,6 +473,11 @@ def gcodeConvertCommand():
import os
name, _ = os.path.splitext(filename)
gcode_name = name + ".gco"
+
+ i = 1;
+ while(fileManager.file_exists(target, gcode_name)):
+ name, ext = os.path.splitext(filename)
+ gcode_name = name+'.'+str(i)+'.'+ext
# prohibit overwriting the file that is currently being printed
currentOrigin, currentFilename = _getCurrentFile()
diff --git a/src/octoprint/static/gcodeviewer/js/renderer.js b/src/octoprint/static/gcodeviewer/js/renderer.js
index 484bf9f8..31a895fd 100644
--- a/src/octoprint/static/gcodeviewer/js/renderer.js
+++ b/src/octoprint/static/gcodeviewer/js/renderer.js
@@ -416,7 +416,7 @@ var drawLayer = function(layerNum, fromProgress, toProgress, isNotCurrentLayer){
prevX = x ;
prevY = y ;
}
- GCODE.workingArea.draw_gcode(points, lastLaser);
+ GCODE.workingArea.draw_gcode(points, lastLaser, '#gCodePreview');
}
};