| | |
| | | const zOffset = -480; |
| | | |
| | | const xOffset0 = -1735; |
| | | const yOffset0 = -108; |
| | | const yOffset0 = -117; |
| | | const zOffset0 = -480; |
| | | |
| | | const xOffset1 = -1735; |
| | | const yOffset1 = -107; |
| | | const yOffset1 = -116; |
| | | const zOffset1 = -475; |
| | | |
| | | const palletX = -18; |
| | | const palletY = 2; |
| | | const palletZ = -46; |
| | | |
| | | const goodsX = -17; |
| | | const goodsY = 5; |
| | | const goodsZ = -6; |
| | | |
| | | // 堆垛机当前运行状态对象 |
| | | function CrnTask(crnData, object) { |
| | |
| | | that.crnLoad = null; |
| | | that.crnFork = null; |
| | | |
| | | that.pallet = null; |
| | | that.goods = null; |
| | | |
| | | that.sourceLocNo = null; |
| | | that.locNo = null; |
| | | |
| | | let curves = []; |
| | | |
| | | let init = function () { |
| | |
| | | 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"); |
| | | |
| | | if (that.crnBody===null || that.crnLoad===null || that.crnFork==null) { |
| | | console.log(that.crnNo + "号堆垛机没有初始化"); |
| | | // console.log(that.crnNo + "号堆垛机没有初始化"); |
| | | } |
| | | }; |
| | | init(); |
| | |
| | | } |
| | | if (that.crnBody===null) { |
| | | that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body"); |
| | | return; |
| | | // return; |
| | | } |
| | | if (that.crnLoad===null) { |
| | | that.crnLoad = getArrVal(object.objects, "name", that.crnNo + "-load"); |
| | | return; |
| | | // return; |
| | | } |
| | | if (that.crnFork===null) { |
| | | that.crnFork = getArrVal(object.objects, "name", that.crnNo + "-fork"); |
| | | return; |
| | | // return; |
| | | } |
| | | if (crnData.sourceLocNo != null) { |
| | | that.sourceLocNo = crnData.sourceLocNo; |
| | | that.pallet = getArrVal(object.objects, "name", crnData.sourceLocNo + "-Pallet"); |
| | | that.goods = getArrVal(object.objects, "name", crnData.sourceLocNo + "-Goods"); |
| | | } |
| | | if (crnData.locNo != null) { |
| | | that.locNo = crnData.locNo; |
| | | } |
| | | |
| | | if (JSON.stringify(crnData.position) === JSON.stringify(that.position)) { |
| | | return; |
| | | } |
| | |
| | | that.preLev = that.lev; |
| | | that.preX = that.x; |
| | | that.preY = that.y; |
| | | that.preY = that.y; |
| | | that.preZ = that.z; |
| | | that.prePosition = JSON.parse(JSON.stringify(that.position)); |
| | | that.preForkPos = that.forkPos; |
| | | // 当前 |
| | |
| | | start: false, |
| | | progress: 0, |
| | | part: 'fork', |
| | | loaded: crnData.loaded, |
| | | route: new Route([ |
| | | { |
| | | x: that.prePosition.x, |
| | |
| | | start: false, |
| | | progress: 0, |
| | | part: 'load', |
| | | loaded: crnData.loaded, |
| | | loadPos: crnData.loadPos, |
| | | route: new Route([ |
| | | { |
| | | x: that.crnLoad.position.x, |
| | |
| | | }) |
| | | } |
| | | |
| | | // 堆垛机本体运动轨迹 |
| | | 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.map((value, index) => { |
| | | console.log(value.part + " --> " + JSON.stringify(value.route.points)) |
| | | if (that.crnNo === 1) { |
| | | // console.log(crnData) |
| | | // console.log(value.part + " --> " + JSON.stringify(value.route.points)) |
| | | } |
| | | }); |
| | | |
| | | curves[0].start = true; |
| | |
| | | if (i !== curves.length - 1) { |
| | | curves[i+1].start = true; |
| | | } else { |
| | | // if (that.locNo != null) { |
| | | // if (that.pallet != null) { |
| | | // that.pallet.name = that.locNo + "-Pallet"; |
| | | // } |
| | | // if (that.goods != null) { |
| | | // that.goods.name = that.locNo + "-Goods"; |
| | | // } |
| | | // } |
| | | // reset |
| | | curves = []; |
| | | that.run = false; |
| | | } |
| | |
| | | let point = curves[i].route.getPoint(curves[i].progress); |
| | | 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 + zOffset; |
| | | that.crnLoad.position.set(point.x, point.y + yOffset0, point.z + zOffset0); |
| | | that.crnFork.position.set(point.x, point.y + yOffset1, point.z + zOffset1); |
| | | that.crnBody.position.z = point.z + zOffset - that.crnBody.userData.crnBodyWidth/2; |
| | | that.crnLoad.position.set(point.x, point.y + yOffset0, point.z + zOffset0 - that.crnLoad.userData.crnLoadWidth/2 + 5); |
| | | that.crnFork.position.set(point.x, point.y + yOffset1, point.z + zOffset1 - that.crnLoad.userData.crnLoadWidth/2); |
| | | if (curves[i].loaded === 1 && that.pallet) { |
| | | that.pallet.position.set(point.x - xOffset + palletX, point.y + palletY, point.z + palletZ); |
| | | that.goods.position.set(point.x - xOffset + goodsX, point.y + goodsY, point.z + goodsZ); |
| | | } |
| | | break |
| | | case 'fork': |
| | | that.crnFork.position.set(point.x + xOffset1, point.y, point.z); |
| | | // todo:luxiaotao 托盘+货物 运动 不是根据loaded,是根据上下定位 |
| | | if (curves[i].loaded === 1 && that.pallet) { |
| | | that.pallet.position.setX(point.x + palletX); |
| | | that.goods.position.setX(point.x + goodsX); |
| | | } |
| | | break |
| | | default: |
| | | break |