| | |
| | | that.forkPos = -1; |
| | | |
| | | that.crnBody = null; |
| | | that.crnLoad = null; |
| | | that.crnFork = null; |
| | | |
| | | let curves = []; |
| | | that.curve = null; |
| | | that.progress = 0; |
| | | |
| | |
| | | that.position = crnData.position; |
| | | that.forkPos = crnData.forkPos; |
| | | |
| | | that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body") |
| | | that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body"); |
| | | that.crnLoad = getArrVal(object.objects, "name", that.crnNo + "-load"); |
| | | that.crnFork = getArrVal(object.objects, "name", that.crnNo + "-fork"); |
| | | }; |
| | | init(); |
| | | |
| | |
| | | if (JSON.stringify(crnData.position) === JSON.stringify(that.position)) { |
| | | return; |
| | | } |
| | | that.run = true; |
| | | // 上一次 |
| | | that.preBay = that.bay; |
| | | that.preLev = that.lev; |
| | |
| | | that.z = crnData.position.z; |
| | | that.position = crnData.position; |
| | | that.forkPos = crnData.forkPos; |
| | | |
| | | // create Route ------------------------------------------------ |
| | | that.curve = new Route([that.prePosition, that.position]); // body |
| | | |
| | | // 堆垛机叉牙 伸叉 |
| | | if (that.prePosition.x !== that.position.x) { |
| | | curves.push({ |
| | | start: false, |
| | | progress: 0, |
| | | part: 'fork', |
| | | route: new Route([ |
| | | { |
| | | x: that.prePosition.x, |
| | | y: that.crnFork.position.y, |
| | | z: that.crnFork.position.z |
| | | }, |
| | | { |
| | | x: that.position.x, |
| | | y: that.crnFork.position.y, |
| | | z: that.crnFork.position.z |
| | | } |
| | | ]) |
| | | }) |
| | | } |
| | | |
| | | // 堆垛机载货台和叉牙 移动 |
| | | if (that.prePosition.z !== that.position.z || that.prePosition.y !== that.position.y) { |
| | | curves.push({ |
| | | start: false, |
| | | progress: 0, |
| | | part: 'load', |
| | | route: new Route([ |
| | | { |
| | | x: that.crnLoad.position.x, |
| | | y: that.prePosition.y, |
| | | z: that.prePosition.z |
| | | }, |
| | | { |
| | | x: that.crnLoad.position.x, |
| | | y: that.position.y, |
| | | z: that.position.z |
| | | } |
| | | ]) |
| | | }) |
| | | } |
| | | |
| | | // 堆垛机本体运动轨迹 |
| | | if (that.prePosition.z !== that.position.z && false) { |
| | | curves.push({ |
| | | start: false, |
| | | progress: 0, |
| | | part: 'body', |
| | | route: new Route([ |
| | | { |
| | | x: that.crnBody.position.x, |
| | | y: that.crnBody.position.y, |
| | | z: that.prePosition.z |
| | | }, |
| | | { |
| | | x: that.crnBody.position.x, |
| | | y: that.crnBody.position.y, |
| | | z: that.position.z |
| | | } |
| | | ]) |
| | | }) |
| | | } |
| | | curves[0].start = true; |
| | | |
| | | console.log(curves); |
| | | |
| | | // new Route(); // load |
| | | // console.log(bodyRoute); |
| | | console.log("pre" + JSON.stringify(that.prePosition)); |
| | | console.log(JSON.stringify(that.position)); |
| | | that.run = true; |
| | | // console.log(that.curve); |
| | | // console.log("pre" + JSON.stringify(that.prePosition)); |
| | | // console.log(JSON.stringify(that.position)); |
| | | |
| | | } |
| | | } |
| | | |
| | | that.move = function (object) { |
| | | if (that.curve) { |
| | | that.progress += 0.001; |
| | | if (that.progress>1.0) { |
| | | that.curve = null; |
| | | } else { |
| | | let point = that.curve.getPoint(that.progress); |
| | | if(point && point.x){ |
| | | that.crnBody.position.set(point.x,point.y,point.z); |
| | | that.move = function () { |
| | | if (curves.length > 0) { |
| | | for (let i = 0; i < curves.length ; i++) { |
| | | if (curves[i].start) { |
| | | curves[i].progress += 0.01; |
| | | if (curves[i].progress > 1.0) { |
| | | curves[i].start = false; |
| | | if (i !== curves.length - 1) { |
| | | curves[i+1].start = true; |
| | | } else { |
| | | curves = []; |
| | | that.run = false; |
| | | } |
| | | } else { |
| | | let point = curves[i].route.getPoint(curves[i].progress); |
| | | console.log(point) |
| | | if ( point && point.x ) { |
| | | switch (curves[i].part) { |
| | | case 'body': |
| | | that.crnBody.position.set(point.x, point.y, point.z); |
| | | break |
| | | case 'load': |
| | | that.crnBody.position.z = point.z; |
| | | that.crnLoad.position.set(point.x, point.y, point.z); |
| | | that.crnFork.position.set(point.x, point.y, point.z); |
| | | break |
| | | case 'fork': |
| | | that.crnFork.position.set(point.x, point.y, point.z); |
| | | break |
| | | default: |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |