diff --git a/js/cam/cam.js b/js/cam/cam.js index 304510d9bb2147d95241a41b141a699119b8cf2e..192b2aecf466f15c26155d0070e82ec0e5385987 100644 --- a/js/cam/cam.js +++ b/js/cam/cam.js @@ -2,11 +2,13 @@ * Created by aghassaei on 3/10/15. */ -define(['underscore', 'backbone', 'appState', 'latticeCAM', 'threeModel', 'plist'], function(_, Backbone, appState, lattice, three, plist){ +define(['underscore', 'three', 'backbone', 'appState', 'latticeCAM', 'threeModel', 'plist', 'materials'], + function(_, THREE, Backbone, appState, lattice, three, plist, materials){ var Cam = Backbone.Model.extend({ defaults: { + camStrategy: "raster", placementOrder: "XYZ",//used for raster strategy entry camProcess: "gcode", @@ -36,7 +38,9 @@ define(['underscore', 'backbone', 'appState', 'latticeCAM', 'threeModel', 'plist feedRate:{xy: 0.1, z: 0.1},//speed when heading towards assembly simLineNumber: 0,//used for stock simulation, reading through gcode - simSpeed: 4//#X times real speed + simSpeed: 4,//#X times real speed + + allCAMMaterialTypes: []//all types of stock needed }, initialize: function(){ @@ -64,9 +68,9 @@ define(['underscore', 'backbone', 'appState', 'latticeCAM', 'threeModel', 'plist "change:machineName", this._setNeedsPostProcessing); this.listenTo(lattice, + "change:scale" + + "change:units" + "change:numCells " + - "change:units " + - "change:scale " + "change:cellType " + "change:connectionType", this._setNeedsPostProcessing); @@ -79,11 +83,16 @@ define(['underscore', 'backbone', 'appState', 'latticeCAM', 'threeModel', 'plist this._navChanged(); // this._initOriginAndStock(); + + }, + _calculateNumMaterials: function(){ + this.set("allCAMMaterialTypes", materials.getChildCellTypes(lattice.sparseCells, true)); + }, @@ -120,7 +129,10 @@ define(['underscore', 'backbone', 'appState', 'latticeCAM', 'threeModel', 'plist //events _navChanged: function(){ - if (appState.get("currentNav") == "navAssemble") this._setToDefaults(); + if (appState.get("currentNav") == "navAssemble") { + this._setToDefaults(); + this._calculateNumMaterials(); + } }, _setToDefaults: function(){ @@ -144,7 +156,6 @@ define(['underscore', 'backbone', 'appState', 'latticeCAM', 'threeModel', 'plist if (this.get("assembler")) this.get("assembler").setVisibility(visible); if (appState.get("currentNav") == "navAssemble") { appState.set("basePlaneIsVisible", !visible); - appState.set("highlighterIsVisible", !visible); } three.render(); }, diff --git a/js/lattice/Lattice.js b/js/lattice/Lattice.js index 6b6627904dcbe8117e4eb1fbb29107ecb7206dfb..0cd49e79fa7472eddfcd8b0f20320f9ce1b19ed5 100644 --- a/js/lattice/Lattice.js +++ b/js/lattice/Lattice.js @@ -11,6 +11,7 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre defaults: _.extend(_.clone(LatticeBase.prototype.defaults), { units: "mm", + scale: 1.0, cellType: "cube", connectionType: "gik", diff --git a/js/menus/AnimationMenuView.js b/js/menus/AnimationMenuView.js index 35ced6921c339cae3585ed6ac36440f491783864..47475ce4bf793f06aa48e5662e7bb9215b0e1d20 100644 --- a/js/menus/AnimationMenuView.js +++ b/js/menus/AnimationMenuView.js @@ -2,7 +2,8 @@ * Created by aghassaei on 2/1/15. */ -define(['jquery', 'underscore', 'menuParent', 'plist', 'cam', 'text!animationMenuTemplate'], function($, _, MenuParentView, plist, cam, template){ +define(['jquery', 'underscore', 'menuParent', 'plist', 'cam', 'text!animationMenuTemplate'], + function($, _, MenuParentView, plist, cam, template){ return MenuParentView.extend({ diff --git a/js/menus/AssemblerMenuView.js b/js/menus/AssemblerMenuView.js index dcae6a7d799ce8f5697d7128b8cf773b5bdc9021..1e70594766c295eb759648f5a4301932019bec5a 100644 --- a/js/menus/AssemblerMenuView.js +++ b/js/menus/AssemblerMenuView.js @@ -2,7 +2,7 @@ * Created by aghassaei on 2/25/15. */ -define(['jquery', 'underscore', 'menuParent', 'plist', 'cam', 'lattice', 'text!assemblerMenuTemplate'], function($, _, MenuParentView, plist, cam, lattice, template){ +define(['jquery', 'underscore', 'menuParent', 'plist', 'cam', 'lattice', 'materials', 'text!assemblerMenuTemplate'], function($, _, MenuParentView, plist, cam, lattice, materials, template){ return MenuParentView.extend({ @@ -35,7 +35,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'cam', 'lattice', 'text!a }, _makeTemplateJSON: function(){ - return _.extend(this.model.toJSON(), cam.toJSON(), lattice.toJSON(), plist); + return _.extend(this.model.toJSON(), cam.toJSON(), lattice.toJSON(), plist, {materials:materials.list}); }, template: _.template(template) diff --git a/js/menus/templates/AssemblerMenuView.html b/js/menus/templates/AssemblerMenuView.html index c6a41a9d717bfd3782adf4fcb22a35d94a215d6b..c7ed425079a5173d749f4750f51b10e2e90d3272 100644 --- a/js/menus/templates/AssemblerMenuView.html +++ b/js/menus/templates/AssemblerMenuView.html @@ -25,6 +25,16 @@ Strategy: </ul> </div><br/><br/> <% if (camStrategy == "raster"){ %> - Raster Order: <input value="<%= placementOrder %>" placeholder="Placement Order" class="form-control placementOrder" type="text"><br/><br/> + Raster Order: <input value="<%= placementOrder %>" placeholder="Placement Order" class="form-control placementOrder" type="text"><br/> <% } %> -Num Materials: +<% if (allMachines[machineName].numMaterials > -1 && allMachines[machineName].numMaterials < allCAMMaterialTypes.length){ %> + <div class="inlineWarning">Number of materials in assembly exceeds available materials ( <%= allMachines[machineName].numMaterials %> ) for assembler type.</div> +<% } %> +Num Materials: <%= allCAMMaterialTypes.length %><br/> +<% _.each(allCAMMaterialTypes, function(material){ %> + <label class="radio colorSwatches"> + <div class="materialColorSwatch"> + <div style="background-color:<% if(realisticColorScheme){ %><%= materials[material].color %><% }else{ %><%= materials[material].altColor %><% } %>"></div> + <span><span class="materialListTitle"><%= materials[material].name %></span></span></div> + </label> +<% }) %> \ No newline at end of file diff --git a/js/menus/templates/CamMenuView.html b/js/menus/templates/CamMenuView.html index 6ac1992ec23f213798fde0e00529a346ea8db8db..c632b0196b15fff254df235f8d080aa9a0ede1ef 100644 --- a/js/menus/templates/CamMenuView.html +++ b/js/menus/templates/CamMenuView.html @@ -7,6 +7,7 @@ CAM output: <div class="btn-group"> </ul> </div><br/><br/> <a href="#" id="saveCam" class=" btn btn-block btn-lg btn-default">Process and Save</a><br/> +Scale: <input data-property="scale" value="<%= scale %>" placeholder="Scale" class="form-control floatInput lattice" type="text"> Units: <div class="btn-group"> <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allUnitTypes[units] %><span class="caret"></span></button> <ul role="menu" class="dropdown-menu"> diff --git a/js/models/AppState.js b/js/models/AppState.js index ef40440390db19ea603ecc5b121bd1535cbcd905..76e105b27431d8019bbb34917bdb2a2758a05acb 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -111,6 +111,7 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu this.set("basePlaneIsVisible", true); this.set("highlighterIsVisible", false); } else if (navSelection == "navAssemble"){ + this.set("highlighterIsVisible", false); } }, diff --git a/js/plists/PList.js b/js/plists/PList.js index 8b63c903bc5b697e85de565d5957970935d13701..45b29cdd17e36ef138e9e9f6fd32d1b3c26da6b2 100644 --- a/js/plists/PList.js +++ b/js/plists/PList.js @@ -199,13 +199,15 @@ define(['three'], function(THREE){ name: "Hand of God", shouldPickUpStock: false, relative: false, - camProcesses: ["gcode"] + camProcesses: ["gcode"], + numMaterials: -1//-1 == infinite }, shopbot: { name: "Shopbot", shouldPickUpStock: true, relative: false, - camProcesses: ["shopbot", "gcode"] + camProcesses: ["shopbot", "gcode"], + numMaterials: -1 }, oneBitBot: { name: "One Bit Bot", @@ -218,6 +220,7 @@ define(['three'], function(THREE){ shouldPickUpStock: false, relative: false, camProcesses: ["gcode"], + numMaterials: 2, defaults: { camStrategy: "raster", placementOrder: "XYZ",//used for raster strategy entry