From 97f1d7f888e94e6d9c73962d8e351140cb282011 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Fri, 27 Mar 2015 04:02:14 -0400 Subject: [PATCH] auto calculate rapid height and stock position form lattice bbox --- js/cam/Machine.js | 8 ++++++-- js/models/Lattice.js | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/js/cam/Machine.js b/js/cam/Machine.js index 0a64aee4..c4018411 100644 --- a/js/cam/Machine.js +++ b/js/cam/Machine.js @@ -27,6 +27,8 @@ Machine.prototype._setDefaults = function(){ dmaGlobals.assembler.set("camProcess", "gcode"); dmaGlobals.assembler.set("stockFixed", false); dmaGlobals.assembler.set("originPosition", {x:0,y:0,z:0}); + var boundingBox = dmaGlobals.lattice.calculateBoundingBox(); + dmaGlobals.assembler.set("rapidHeight", boundingBox.max.z + 2*dmaGlobals.lattice.zScale()); dmaGlobals.assembler.set("stockPosition", {x:0,y:0,z:0}); dmaGlobals.assembler.set("stockSeparation", dmaGlobals.lattice.xScale()); }; @@ -264,7 +266,8 @@ Shopbot.prototype = Object.create(Machine.prototype); Shopbot.prototype._setDefaults = function(){ Machine.prototype._setDefaults.call(this); dmaGlobals.assembler.set("camProcess", "shopbot"); - dmaGlobals.assembler.set("stockPosition", {x:0,y:100,z:0});//todo calculate this + var boundingBox = dmaGlobals.lattice.calculateBoundingBox(); + dmaGlobals.assembler.set("stockPosition", {x:0,y:boundingBox.max.y + 3*dmaGlobals.lattice.yScale(),z:0}); }; Shopbot.prototype._buildMeshes = function(callback){ @@ -302,7 +305,8 @@ God.prototype = Object.create(Machine.prototype); God.prototype._setDefaults = function(){ Machine.prototype._setDefaults.call(this); - dmaGlobals.assembler.set("stockPosition", {x:0,y:0,z:150});//todo calculate this + var boundingBox = dmaGlobals.lattice.calculateBoundingBox(); + dmaGlobals.assembler.set("stockPosition", {x:0,y:0,z:boundingBox.max.z + 5*dmaGlobals.lattice.zScale()}); }; God.prototype._buildMeshes = function(callback){ diff --git a/js/models/Lattice.js b/js/models/Lattice.js index a05b3f3a..952f179f 100644 --- a/js/models/Lattice.js +++ b/js/models/Lattice.js @@ -141,6 +141,27 @@ Lattice = Backbone.Model.extend({ dmaGlobals.three.render(); }, + calculateBoundingBox: function(){ + var scale = this._allAxesScales(); + var min = _.clone(this.get("cellsMin")); + var max = _.clone(this.get("cellsMax")); + console.log(min); + console.log(max); + _.each(_.keys(scale), function(key){ + min[key] *= scale[key]; + max[key] *= scale[key]; + }); + return {min:min, max:max}; + }, + + _allAxesScales: function(){ + var scale = this.get("scale"); + var xScale = this.xScale(scale); + var yScale = this.yScale(scale); + var zScale = this.zScale(scale); + return {x:xScale, y:yScale, z:zScale}; + }, + //////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////FILL GEOMETRY//////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// -- GitLab