diff --git a/js/cam/Assembler.js b/js/cam/Assembler.js index 5242d67a4cdc9f3ab7243d1d6e711a4ad5bf61c6..a0329a5553dc10be993854c496247334b5180743 100644 --- a/js/cam/Assembler.js +++ b/js/cam/Assembler.js @@ -32,7 +32,6 @@ Assembler = Backbone.Model.extend({ this.listenTo(dmaGlobals.appState, "change:currentTab", this._setCAMVisibility); this.listenTo(this, "change:originPosition", this._moveOrigin); this.listenTo(this, "change:stockPosition", this._moveStock); - this.listenTo(dmaGlobals.appState, "change:units", this._setNeedsPostProcessing); this.listenTo(this, "change:originPosition " + "change:stockPosition " + @@ -43,6 +42,7 @@ Assembler = Backbone.Model.extend({ this._setNeedsPostProcessing); this.listenTo(dmaGlobals.lattice, "change:numCells " + + "change:units " + "change:scale " + "change:cellType " + "change:connectionType", @@ -133,7 +133,7 @@ Assembler = Backbone.Model.extend({ var wcs = this.get("originPosition"); var stockPosition = this.get("stockPosition"); - dmaGlobals.lattice.rasterCells(this._getOrder(this.get("camStrategy"), function(cell){ + dmaGlobals.lattice.rasterCells(this._getOrder(this.get("camStrategy")), function(cell){ if (!cell) return; data += exporter.rapidXY(stockPosition.x-wcs.x, stockPosition.y-wcs.y); diff --git a/js/cam/GCodeExporter.js b/js/cam/GCodeExporter.js index 64ba054f2cf097f26401f43730b13113ec9f34fc..7d544bf71ef1b944c91ac801ee8107bd82e3fea0 100644 --- a/js/cam/GCodeExporter.js +++ b/js/cam/GCodeExporter.js @@ -7,7 +7,7 @@ function GCodeExporter() { GCodeExporter.prototype.makeHeader = function(){ var data = ""; - if (dmaGlobals.appState.get("units") == "inches") data += this.addLine("G20", [], "units inches"); + if (dmaGlobals.lattice.get("units") == "inches") data += this.addLine("G20", [], "units inches"); else data += this.addLine("G21", [], "units mm"); data += this.addLine("G90", [], "absolute positioning"); data += this.addLine("G54", [], "work offset"); @@ -31,6 +31,7 @@ GCodeExporter.prototype.addLine = function(command, params, comment){ if (!param) return; if (isNaN(parseFloat(param))) { data += param + " "; + return; } data += param.toFixed(3) + " "; }); diff --git a/js/cam/ShopbotExporter.js b/js/cam/ShopbotExporter.js index 4fe28e78b8b44686f0de880a239b7ae286e0ead0..a2d26f5e14dac8ba20b013dbe7f60c82ca74875e 100644 --- a/js/cam/ShopbotExporter.js +++ b/js/cam/ShopbotExporter.js @@ -27,7 +27,7 @@ ShopbotExporter.prototype.addLine = function(command, params, comment){ data += param + ", "; return; } - if (dmaGlobals.appState.get("units") == "mm") param = self.convertToInches(param);//all shopbot stuff must be in inches + if (dmaGlobals.lattice.get("units") == "mm") param = self.convertToInches(param);//all shopbot stuff must be in inches data += param.toFixed(3) + ", "; }); if (comment) data += "'" +comment; diff --git a/js/menus/CamMenuView.js b/js/menus/CamMenuView.js index be447d49d695257794a43942cbd6894db470cd65..a115d9939c9ec28ef79cc4ca7300a854860c5d43 100644 --- a/js/menus/CamMenuView.js +++ b/js/menus/CamMenuView.js @@ -23,7 +23,7 @@ CamMenuView = Backbone.View.extend({ _.bindAll(this, "_onKeyup"); //bind events this.listenTo(this.assembler, "change", this.render); - this.listenTo(this.model, "change:units", this.render); + this.listenTo(this.lattice, "change:units", this.render); $(document).bind('keyup', {state:false}, this._onKeyup); }, @@ -34,7 +34,7 @@ CamMenuView = Backbone.View.extend({ _changeUnits: function(e){ e.preventDefault(); - this.model.set("units", $(e.target).data("type")); + this.lattice.set("units", $(e.target).data("type")); }, _onKeyup: function(e){ @@ -61,7 +61,7 @@ CamMenuView = Backbone.View.extend({ render: function(){ if (this.model.get("currentTab") != "cam") return; if ($("input").is(":focus")) return; - this.$el.html(this.template(_.extend(this.model.toJSON(), this.assembler.toJSON()))); + this.$el.html(this.template(_.extend(this.model.toJSON(), this.assembler.toJSON(), this.lattice.toJSON()))); }, template: _.template('\ diff --git a/js/menus/LatticeMenuView.js b/js/menus/LatticeMenuView.js index 87a4901703ceca882a0335f3640b12d549cf78a5..9c5bf3756cc0f44075f49e6be5514f4c0c2f6438 100644 --- a/js/menus/LatticeMenuView.js +++ b/js/menus/LatticeMenuView.js @@ -28,7 +28,6 @@ LatticeMenuView = Backbone.View.extend({ //bind events this.listenTo(this.lattice, "change", this.render); - this.listenTo(this.model, "change:units", this.render); }, _clearCells: function(e){ @@ -45,7 +44,7 @@ LatticeMenuView = Backbone.View.extend({ _changeUnits: function(e){ e.preventDefault(); - this.model.set("units", $(e.target).data("type")); + this.lattice.set("units", $(e.target).data("type")); }, _sliderDidSlide: function(e){ diff --git a/js/models/AppState.js b/js/models/AppState.js index 80bbdfe9d65d363ff5b1578031d7f63010195f7a..5cad69bd7ecaa0efd3b9e8bd9ef43ca384b89f56 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -142,7 +142,6 @@ AppState = Backbone.Model.extend({ mm: "mm", inches: "Inches" }, - units: "mm", //key bindings shift: false, @@ -238,6 +237,7 @@ AppState = Backbone.Model.extend({ this.set("shift", state); break; case 68://d delete mode + console.log(state); if (dmaGlobals.lattice.get("cellMode") == "cell") this.set("deleteMode", state);//only for cell mode else this.set("deleteMode", false); break; diff --git a/js/models/Lattice.js b/js/models/Lattice.js index 6b19e6a36c161debcf7624fa882053001b784c39..94c7d22ece6294ae419ae5a63d13f84e9fecb006 100644 --- a/js/models/Lattice.js +++ b/js/models/Lattice.js @@ -7,6 +7,8 @@ Lattice = Backbone.Model.extend({ defaults: { + units: "mm", + nodes: [], cells: [[[null]]],//3D matrix containing all cells and null, dynamic size cellsMin: {x:0, y:0, z:0},//min position of cells matrix @@ -503,7 +505,10 @@ Lattice = Backbone.Model.extend({ saveJSON: function(name){ if (!name) name = "lattice"; - var data = JSON.stringify(_.omit(this.toJSON(), ["highlighter", "basePlane"])); + var data = JSON.stringify({ + lattice:_.omit(this.toJSON(), ["highlighter", "basePlane"]), + assembler: _.omit(dmaGlobals.assembler.toJSON(), ["origin", "stock"]) + }); var blob = new Blob([data], {type: "text/plain;charset=utf-8"}); saveAs(blob, name + ".json"); },