NOTE: this commit is temporary and should be reverted!

Add confirmation dialog when stop print button is pressed.
Add modal alert when print is started to prevent repeated clicking of button (which in turn corrupts gcode buffering).
Change preheat M109 to M104 to speed up printing cycle.
This commit is contained in:
Wouter R 2013-10-14 16:40:48 +02:00
parent a23de73f8d
commit 07fa1f62e8
2 changed files with 22 additions and 19 deletions

View File

@ -189,6 +189,7 @@ function initButtonBehavior() {
}
function stopPrint() {
console.log("f:stopPrint() >> sendPrintCommands = " + sendPrintCommands);
if (!confirm("Weet je zeker dat je de huidige print wilt stoppen?")) return;
if (sendPrintCommands) printer.stop();
setState(Printer.STOPPING_STATE,printer.hasControl);
}
@ -229,6 +230,7 @@ function print(e) {
console.log("f:print >> not enough points!");
}
alert("Je tekening zal nu geprint worden.");
// $.post("/doodle3d.of", { data:output }, function(data) {
// btnPrint.disabled = false;
@ -295,17 +297,17 @@ function previewTwistRight(redrawLess) {
function update() {
setState(printer.state,printer.hasControl);
thermometer.update(printer.temperature, printer.targetTemperature);
//TODO: update progress
}
function setState(newState,newHasControl) { //TODO add hasControl
function setState(newState,newHasControl) { //TODO add hasControl
if(newState == state && newHasControl == hasControl) return;
console.log("setState: ",state," > ",newState," ( ",newHasControl,")");
setDebugText("State: "+newState);
// print button
var printEnabled = (newState == Printer.IDLE_STATE && newHasControl);
if(printEnabled) {
@ -316,7 +318,7 @@ function setState(newState,newHasControl) { //TODO add hasControl
btnPrint.addClass("disabled"); // disable print button
btnPrint.unbind('touchstart mousedown');
}
// stop button
var stopEnabled = ((newState == Printer.PRINTING_STATE || newState == Printer.BUFFERING_STATE) && newHasControl);
if(stopEnabled) {
@ -327,7 +329,7 @@ function setState(newState,newHasControl) { //TODO add hasControl
btnStop.addClass("disabled");
btnStop.unbind('touchstart mousedown');
}
// thermometer
switch(newState) {
case Printer.UNKNOWN_STATE:
@ -338,18 +340,18 @@ function setState(newState,newHasControl) { //TODO add hasControl
thermometer.show();
break;
}
// progress indicator
switch(newState) {
case Printer.PRINTING_STATE:
case Printer.PRINTING_STATE:
displayProgress.show(); // TODO: Show progress
break;
default:
displayProgress.hide(); // TODO: hide progress
break;
}
prevState = state;
state = newState;
hasControl = newHasControl;
}
}

View File

@ -10,7 +10,7 @@ gcodeStart.push("G92 E0"); // zero the extruded length
gcodeStart.push("G1 F200 E10"); // extrude 10mm of feed stock
gcodeStart.push("G92 E0"); // zero the extruded length again
//gcodeStart.push("G92 X-100 Y-100 E0"); // zero the extruded length again and make center the start position
gcodeStart.push("G1 F9000");
gcodeStart.push("G1 F9000");
gcodeStart.push("G90"); // absolute positioning
gcodeStart.push("M117 Printing Doodle... "); // display message (20 characters to clear whole screen)
@ -101,9 +101,9 @@ function generate_gcode(callback) {
console.log("");
//*/
// max amount of real world layers
// max amount of real world layers
var layers = maxObjectHeight / layerHeight; //maxObjectHeight instead of objectHeight
// translate numLayers in preview to objectHeight in real world
//objectHeight = Math.ceil(numLayers / 5); // in settings objectHeight = 20, in previewRendering_v01.js numLayers is 100, hence the / 5
//objectHeight = numLayers; // in settings objectHeight = 20, in previewRendering_v01.js numLayers is 100, hence the / 5
@ -113,7 +113,7 @@ function generate_gcode(callback) {
var rStepGCode = rStep * maxNumLayers/layers; ///maxNumLayers*maxObjectHeight;
// correct direction
rStepGCode = -rStepGCode;
// todo hier een array van PATHS maken wat de losse paths zijn
// copy array without reference -> http://stackoverflow.com/questions/9885821/copying-of-an-array-of-objects-to-another-array-without-object-reference-in-java
@ -125,10 +125,11 @@ function generate_gcode(callback) {
// return;
console.log("printer temperature: ",temperature);
gcode.push("M109 S" + temperature); // set target temperature and wait for the extruder to reach it
gcode.push("M104 S" + temperature); // set target temperature and do not wait for the extruder to reach it
//gcode.push("M109 S" + temperature); // set target temperature and wait for the extruder to reach it
// add gcode begin commands
gcode = gcode.concat(startGcode);
//gcode.push("M109 S" + temperature); // set target temperature and wait for the extruder to reach it
var layers = maxObjectHeight / layerHeight; //maxObjectHeight instead of objectHeight
@ -204,7 +205,7 @@ function generate_gcode(callback) {
}
}
// console.log("f:generategcode() >> paths.length: " + paths.length);
// loop over the subpaths (the separately drawn lines)
for (var j = 0; j < paths.length; j++) { // TODO paths > subpaths
// this line is probably for drawing efficiency, alternating going from 0->end and end->0 (i.e. to and fro)
@ -234,7 +235,7 @@ function generate_gcode(callback) {
// console.log("enableTraveling && isTraveling >> doRetract: " + doRetract + ", retractionspeed: " + retractionspeed);
if (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 (doRetract) gcode.push("G0 E" + extruder.toFixed(3) + " F" + (retractionspeed * 60).toFixed(3)); // return to normal
} else {
// console.log(" else");
extruder += prev.distance(to) * wallThickness * layerHeight / filamentThickness;
@ -343,4 +344,4 @@ Point.prototype = {
toString: function() {
console.log("x:" + this.x + ", y:" + this.y);
}
}
}