From 295ba222a334035343eb211934e69a3739f01cf3 Mon Sep 17 00:00:00 2001 From: Wouter R Date: Fri, 10 Jan 2014 17:47:05 +0100 Subject: [PATCH] Add settings for bottom layer speed and bottom layer flow rate. Force travel from wait position to first point. Disable traveling in bottom layers (providing sort of a poor man's raft). Fix use of firstLayerSlow setting. --- js_src/gcodeGenerating.js | 16 ++++++++++------ www/settings.html | 7 +++++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/js_src/gcodeGenerating.js b/js_src/gcodeGenerating.js index b0684d2..93f4cba 100644 --- a/js_src/gcodeGenerating.js +++ b/js_src/gcodeGenerating.js @@ -15,9 +15,11 @@ function generate_gcode() { gcode = []; console.log("settings: ",settings); - var speed = settings["printer.speed"] + var speed = settings["printer.speed"]; var normalSpeed = speed; - var bottomSpeed = speed*0.5; + var bottomSpeed = settings["printer.bottomLayerSpeed"]; + var firstLayerSlow = settings["printer.firstLayerSlow"]; + var bottomFlowRate = settings["printer.bottomFlowRate"]; var travelSpeed = settings["printer.travelSpeed"] var filamentThickness = settings["printer.filamentThickness"]; var wallThickness = settings["printer.wallThickness"]; @@ -157,12 +159,14 @@ function generate_gcode() { var isTraveling = !isLoop && i==0; var doRetract = retractionEnabled && prev.distance(to) > retractionminDistance; - if (enableTraveling && isTraveling) { - if (doRetract) gcode.push("G0 E" + (extruder - retractionamount).toFixed(3) + " F" + (retractionspeed * 60).toFixed(3)); //retract + var firstPointEver = (layer == 0 && i == 0 && j == 0); + if (firstPointEver || layer > 2 && enableTraveling && isTraveling) { //always travel to first point, then disable traveling for first two layers and use settings for remainder of print + if (!firstPointEver && doRetract) gcode.push("G0 E" + (extruder - retractionamount).toFixed(3) + " F" + (retractionspeed * 60).toFixed(3)); //retract gcode.push("G0 X" + to.x.toFixed(3) + " Y" + to.y.toFixed(3) + " Z" + z.toFixed(3) + " F" + (travelSpeed * 60).toFixed(3)); - if (doRetract) gcode.push("G0 E" + extruder.toFixed(3) + " F" + (retractionspeed * 60).toFixed(3)); // return to normal + if (!firstPointEver && doRetract) gcode.push("G0 E" + extruder.toFixed(3) + " F" + (retractionspeed * 60).toFixed(3)); // return to normal } else { - extruder += prev.distance(to) * wallThickness * layerHeight / (Math.pow((filamentThickness/2), 2) * Math.PI); + var f = (layer < 2) ? bottomFlowRate : 1; + extruder += prev.distance(to) * wallThickness * layerHeight / (Math.pow((filamentThickness/2), 2) * Math.PI) * f; gcode.push("G1 X" + to.x.toFixed(3) + " Y" + to.y.toFixed(3) + " Z" + z.toFixed(3) + " F" + (speed * 60).toFixed(3) + " E" + extruder.toFixed(3)); } diff --git a/www/settings.html b/www/settings.html index 779c9bf..9b0c765 100644 --- a/www/settings.html +++ b/www/settings.html @@ -96,10 +96,13 @@ degrees C

mm/s
+ mm/s
mm/s

-
-
+
+
+ * Multiplier for extrusion rate in first few layers +
* Continuously move platform while printing instead of once per layer