Skip to content
Snippets Groups Projects
Commit 45740f5e authored by Amanda Ghassaei's avatar Amanda Ghassaei
Browse files

working on gcode editor

parent 8429cfe1
No related branches found
No related tags found
No related merge requests found
...@@ -156,3 +156,7 @@ hr { ...@@ -156,3 +156,7 @@ hr {
border-width: 0px; border-width: 0px;
background-color: rgba(255,255,255,0.5); background-color: rgba(255,255,255,0.5);
} }
#gcodeEditor:focus {
outline-width: 0;
}
...@@ -15,6 +15,8 @@ Assembler = Backbone.Model.extend({ ...@@ -15,6 +15,8 @@ Assembler = Backbone.Model.extend({
initialize: function(){ initialize: function(){
_.bindAll(this, "postProcess");
//bind events //bind events
this.listenTo(this, "change:camProcess", this._setNeedsPostProcessing); this.listenTo(this, "change:camProcess", this._setNeedsPostProcessing);
this.listenTo(dmaGlobals.appState, "change:units", this._setNeedsPostProcessing); this.listenTo(dmaGlobals.appState, "change:units", this._setNeedsPostProcessing);
...@@ -25,8 +27,9 @@ Assembler = Backbone.Model.extend({ ...@@ -25,8 +27,9 @@ Assembler = Backbone.Model.extend({
this.set("needsPostProcessing", true); this.set("needsPostProcessing", true);
}, },
setProgramEditsMade: function(){ makeProgramEdits: function(data){
this.set("editsMadeToProgram", true); this.set("dataOut", data, {silent:true});
this.set("editsMadeToProgram", true, {silent: true});
}, },
_getExporter: function(){ _getExporter: function(){
...@@ -43,12 +46,13 @@ Assembler = Backbone.Model.extend({ ...@@ -43,12 +46,13 @@ Assembler = Backbone.Model.extend({
} else { } else {
return new GCodeExporter(); return new GCodeExporter();
} }
} } else console.warn("cam process not supported");
}, },
postProcess: function(){ postProcess: function(){
this.set("needsPostProcessing", false);
var exporter = this._getExporter(); var exporter = this._getExporter();
if (exporter) {
var data = ""; var data = "";
data += exporter.makeHeader(); data += exporter.makeHeader();
data += "\n\n"; data += "\n\n";
...@@ -60,23 +64,19 @@ Assembler = Backbone.Model.extend({ ...@@ -60,23 +64,19 @@ Assembler = Backbone.Model.extend({
data += exporter.addComment("end program"); data += exporter.addComment("end program");
data += "\n"; data += "\n";
data += exporter.makeFooter(); data += exporter.makeFooter();
this.set("dataOut", data); this.set("dataOut", data);
this.set("exporter", exporter); this.set("exporter", exporter);
}
else console.warn("cam process not supported");
this.set("needsPostProcessing", false);
return {data:data, exporter:exporter}; return {data:data, exporter:exporter};
}, },
save: function(data, exporter){ save: function(){
if (this.get("needsPostProcessing")){ if (this.get("needsPostProcessing")){
var output = this.postProcess(); var output = this.postProcess();
output.exporter.save(output.data); output.exporter.save(output.data);
return; return;
} }
if (!data) data = this.get("dataOut"); this.get("exporter").save(this.get("dataOut"));
if (!exporter) exporter = this.get("exporter");
exporter.save(data);
}, },
destroy: function(){ destroy: function(){
......
...@@ -59,8 +59,6 @@ GCodeExporter.prototype.moveZ = function(z){ ...@@ -59,8 +59,6 @@ GCodeExporter.prototype.moveZ = function(z){
GCodeExporter.prototype.makeFooter = function(){ GCodeExporter.prototype.makeFooter = function(){
var data = ""; var data = "";
data += "\n";
data += "\n";
data += this.goHome(); data += this.goHome();
data += this.addLine("M30", [], "program stop"); data += this.addLine("M30", [], "program stop");
......
...@@ -10,9 +10,9 @@ ShopbotExporter.prototype.makeHeader = function(){ ...@@ -10,9 +10,9 @@ ShopbotExporter.prototype.makeHeader = function(){
data += this.addLine("FG", [], "single step mode"); data += this.addLine("FG", [], "single step mode");
data += this.goHome(); data += this.goHome();
data += this.addLine("SA", [], "absolute distances"); data += this.addLine("SA", [], "absolute distances");
data += this.addLine("SM", [], "move/cut mode (as opposed to preview mode)"); data += this.addLine("SM", [], "move/cut mode");
data += this.addLine("JS", [4, 1], "jog speed- xy, z inches per sec"); data += this.addLine("JS", [4, 1], "jog speed xy, z");
data += this.addLine("MS", [2, 0.5], "move speed- xy, z inches per sec"); data += this.addLine("MS", [2, 0.5], "move speed xy, z");
return data; return data;
}; };
......
...@@ -63,7 +63,7 @@ CamMenuView = Backbone.View.extend({ ...@@ -63,7 +63,7 @@ CamMenuView = Backbone.View.extend({
<% }); %>\ <% }); %>\
</ul>\ </ul>\
</div><br/><br/>\ </div><br/><br/>\
<a href="#" id="saveCam" class=" btn btn-block btn-lg btn-default">Save</a><br/>\ <a href="#" id="saveCam" class=" btn btn-block btn-lg btn-default">Process and Save</a><br/>\
') ')
}); });
\ No newline at end of file
...@@ -15,6 +15,7 @@ SendMenuView = Backbone.View.extend({ ...@@ -15,6 +15,7 @@ SendMenuView = Backbone.View.extend({
//bind events //bind events
this.listenTo(dmaGlobals.assembler, "change", this.render); this.listenTo(dmaGlobals.assembler, "change", this.render);
$(document).bind('keyup', {state:false}, this._codeEdit);
_.bindAll(this, "render"); _.bindAll(this, "render");
}, },
...@@ -29,6 +30,13 @@ SendMenuView = Backbone.View.extend({ ...@@ -29,6 +30,13 @@ SendMenuView = Backbone.View.extend({
dmaGlobals.assembler.postProcess(); dmaGlobals.assembler.postProcess();
}, },
_codeEdit: function(e){
var textarea = $("#gcodeEditor");
if (!textarea.is(":focus")) return;
e.preventDefault();
dmaGlobals.assembler.makeProgramEdits(textarea.val());
},
render: function(){ render: function(){
if (this.model.get("currentTab") != "send") return; if (this.model.get("currentTab") != "send") return;
if (dmaGlobals.assembler.get("needsPostProcessing")) dmaGlobals.assembler.postProcess(); if (dmaGlobals.assembler.get("needsPostProcessing")) dmaGlobals.assembler.postProcess();
...@@ -37,7 +45,7 @@ SendMenuView = Backbone.View.extend({ ...@@ -37,7 +45,7 @@ SendMenuView = Backbone.View.extend({
template: _.template('\ template: _.template('\
<a href="#" id="saveSendMenu" class=" btn btn-block btn-lg btn-default">Save</a><br/>\ <a href="#" id="saveSendMenu" class=" btn btn-block btn-lg btn-default">Save</a><br/>\
<textarea id="gcodeEditor"><%= dataOut %></textarea>\ <textarea id="gcodeEditor"><%= dataOut %></textarea><br/><br/>\
<a href="#" id="overrideEdits" class=" btn btn-block btn-lg btn-default">Undo Changes</a><br/>\ <a href="#" id="overrideEdits" class=" btn btn-block btn-lg btn-default">Undo Changes</a><br/>\
') ')
......
...@@ -186,6 +186,7 @@ AppState = Backbone.Model.extend({ ...@@ -186,6 +186,7 @@ AppState = Backbone.Model.extend({
_handleKeyStroke: function(e){//receives keyup and keydown _handleKeyStroke: function(e){//receives keyup and keydown
if ($("input").is(':focus')) return;//we are typing in an input if ($("input").is(':focus')) return;//we are typing in an input
if ($("textarea").is(':focus')) return;//we are typing in an input
var state = e.data.state; var state = e.data.state;
var currentTab = this.get("currentTab"); var currentTab = this.get("currentTab");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment