diff --git a/js/cam/Assembler.js b/js/cam/Assembler.js index f8083f875ab92bb381b722c121495dbebbb22287..b5c0743d1bfe7225edbd56f7e1445f0fcc6b51e0 100644 --- a/js/cam/Assembler.js +++ b/js/cam/Assembler.js @@ -5,8 +5,8 @@ Assembler = Backbone.Model.extend({ defaults: { - camStrategy: "xRaster", - placementOrder: "XYZ",//used for manual strategy entry + camStrategy: "raster", + placementOrder: "XYZ",//used for raster strategy entry camProcess: "shopbot", machineName: "shopbot", machine: null, @@ -204,9 +204,7 @@ Assembler = Backbone.Model.extend({ }, _getOrder: function(strategy){ - if (strategy == "xRaster") return "XYZ"; - if (strategy == "yRaster") return "YXZ"; - if (strategy == "manual") return this.get("placementOrder"); + if (strategy == "raster") return this.get("placementOrder"); console.warn("strategy not recognized"); return ""; }, diff --git a/js/menus/AssemblerMenuView.js b/js/menus/AssemblerMenuView.js index 8de418301bfa2530e348f1f1e5dc9eb32c16cd34..139247b309257d27326b0db758d6cd7ba1cc6188 100644 --- a/js/menus/AssemblerMenuView.js +++ b/js/menus/AssemblerMenuView.js @@ -69,8 +69,8 @@ AssemblerMenuView = Backbone.View.extend({ <% }); %>\ </ul>\ </div><br/><br/>\ - <% if (camStrategy == "manual"){ %>\ - Manual Placement Order: <input value="<%= placementOrder %>" placeholder="Placement Order" class="form-control placementOrder" type="text"><br/><br/>\ + <% if (camStrategy == "raster"){ %>\ + Raster Order: <input value="<%= placementOrder %>" placeholder="Placement Order" class="form-control placementOrder" type="text"><br/><br/>\ <% } %>\ ') }); \ No newline at end of file diff --git a/js/models/AppState.js b/js/models/AppState.js index 8abd76db0a7729014c7a40f6251400fcfecb712b..a031a24b3dbf2fab5741a9595064e37540996d02 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -130,9 +130,7 @@ AppState = Backbone.Model.extend({ // } // }, allAssemblyStrategies: { - xRaster: "X Raster", - yRaster: "Y Raster", - manual: "Manual Entry" + raster: "Raster" }, allCamProcesses: { shopbot: "Shopbot (sbp)", diff --git a/js/models/Lattice.js b/js/models/Lattice.js index a70648fd2f6e4394dee73499f29326b587943b3d..4b57ea3c527d955dbffa5c343010da2c92a86253 100644 --- a/js/models/Lattice.js +++ b/js/models/Lattice.js @@ -450,7 +450,7 @@ Lattice = Backbone.Model.extend({ } }, - rasterCells: function(order, callback, var1, var2, var3){//used for CAM raster x/y/z in any order permutation + rasterCells: function(order, callback, var1, var2, var3, cells){//used for CAM raster x/y/z in any order permutation //order is of form 'XYZ' var firstLetter = order.charAt(0); order = order.substr(1); @@ -460,7 +460,7 @@ Lattice = Backbone.Model.extend({ firstLetter = order.charAt(0); order = order.substr(1); } - var cells = this.get("cells"); + if (!cells) cells = this.get("cells");//grab cells once at beginning and hold onto it in case changes are made while looping var newVarOrder; var newVarDim; if (firstLetter == 'X'){ @@ -473,13 +473,9 @@ Lattice = Backbone.Model.extend({ newVarOrder = 2; newVarDim = cells[0][0].length; } else if (firstLetter == ""){ - for (var i=0;i<var1.dim;i++){ - //for (var i=var1.dim-1;i>=0;i--){ - for (var j=var2.dim-1;j>=0;j--){ - for (var k=var3.dim-1;k>=0;k--){ - //for (var i=0;i<var1.dim;i++){ - // for (var j=0;j<var2.dim;j++){ - // for (var k=0;k<var3.dim;k++){ + for (var i=this._getRasterLoopInit(var1);this._getRasterLoopCondition(i,var1);i+=this._getRasterLoopIterator(var1)){ + for (var j=this._getRasterLoopInit(var2);this._getRasterLoopCondition(j,var2);j+=this._getRasterLoopIterator(var2)){ + for (var k=this._getRasterLoopInit(var3);this._getRasterLoopCondition(k,var3);k+=this._getRasterLoopIterator(var3)){ if (var1.order == 0){ if (var2.order == 1) callback(cells[i][j][k], i, j, k); else if (var2.order == 2) callback(cells[i][k][j], i, k, j); @@ -488,7 +484,9 @@ Lattice = Backbone.Model.extend({ else if (var2.order == 2) callback(cells[k][i][j], k, i, j); } else { if (var2.order == 0) callback(cells[j][k][i], j, k, i); - else if (var2.order == 1) callback(cells[k][j][i], k, j, i); + else if (var2.order == 1) { + callback(cells[k][j][i], k, j, i); + } } } @@ -496,10 +494,25 @@ Lattice = Backbone.Model.extend({ } return; } - if (var3 == null) var3 = {order: newVarOrder, dim: newVarDim}; - else if (var2 == null) var2 = {order: newVarOrder, dim: newVarDim}; - else var1 = {order: newVarOrder, dim: newVarDim}; - this.rasterCells(order, callback, var1, var2, var3); + if (var3 == null) var3 = {order: newVarOrder, dim: newVarDim, neg:isNeg}; + else if (var2 == null) var2 = {order: newVarOrder, dim: newVarDim, neg:isNeg}; + else var1 = {order: newVarOrder, dim: newVarDim, neg:isNeg}; + this.rasterCells(order, callback, var1, var2, var3, cells); + }, + + _getRasterLoopInit: function(variable){ + if (variable.neg) return variable.dim-1; + return 0; + }, + + _getRasterLoopCondition: function(iter, variable){ + if (variable.neg) return iter>=0; + return iter<variable.dim; + }, + + _getRasterLoopIterator: function(variable){ + if (variable.neg) return -1; + return 1; } }); \ No newline at end of file