diff --git a/js/cam/Assembler.js b/js/cam/Assembler.js index 4e5f09169721c47ee527549860c8dfd06c5693e9..cd46d909423ac511fb55a22ed2fcf02d8e1e3663 100644 --- a/js/cam/Assembler.js +++ b/js/cam/Assembler.js @@ -16,12 +16,12 @@ Assembler = Backbone.Model.extend({ needsPostProcessing: true, editsMadeToProgram: false,//warn the user that they will override changes - rapidHeight: 6, + rapidHeight: 6,//always store relative to origin rapidHeightRelative: true, safeHeight: 0.5,//inches above stock or assembly, when feed rate should slow origin: null, - originPosition: new THREE.Vector3(20,0,0), + originPosition: new THREE.Vector3(20,0,0),//in abs coordinates stock: null, stockPosition: new THREE.Vector3(20,0,0),//in abs coordinates stockPositionRelative: true, diff --git a/js/menus/CamMenuView.js b/js/menus/CamMenuView.js index 6434d2e48882317ee55ce51efef4d4486e4f3003..26ff715ff4a4f34ffd872918d103dff90ca14c58 100644 --- a/js/menus/CamMenuView.js +++ b/js/menus/CamMenuView.js @@ -55,7 +55,10 @@ CamMenuView = Backbone.View.extend({ else if ($(".rapidSpeeds").is(":focus")) this._updateNumber(e, "rapidSpeeds"); else if ($(".feedRate").is(":focus")) this._updateNumber(e, "feedRate"); else if ($(".safeHeight").is(":focus")) this._updateNumber(e, "safeHeight"); - else if ($(".rapidHeight").is(":focus")) this._updateNumber(e, "rapidHeight"); + else if ($(".rapidHeight").is(":focus")) { + if (this.assembler.get("rapidHeightRelative")) this._updateNumber(e, "rapidHeight"); + else this._updateAbsoluteRapidHeight(e) + } else if ($(".stockArraySize").is(":focus")) this._updateNumber(e, "stockArraySize"); else if ($(".stockSeparation").is(":focus")) this._updateNumber(e, "stockSeparation"); }, @@ -85,6 +88,14 @@ CamMenuView = Backbone.View.extend({ this.assembler.trigger("change"); }, + _updateAbsoluteRapidHeight: function(e){ + e.preventDefault(); + var newVal = parseFloat($(e.target).val()); + if (isNaN(newVal)) return; + newVal -= this.assembler.get("originPosition".z).toFixed(4);//always store relative to origin + this.assembler.set("rapidHeight", parseFloat(newVal)); + }, + _clickCheckbox: function(e){ e.preventDefault(); var $object = $(e.target); @@ -109,6 +120,10 @@ CamMenuView = Backbone.View.extend({ relStockPos.z = data.stockPosition.z - data.originPosition.z; data.stockPosition = relStockPos; } + if (!this.assembler.get("rapidHeightRelative")){ + data.rapidHeight = data.rapidHeight + data.originPosition.z; + } + this.$el.html(this.template(data)); },