| | |
| | | import {MTLLoader} from "../lib/MTLLoader.js"; |
| | | import {OBJLoader} from "../lib/OBJLoader.js"; |
| | | |
| | | const xOffset = -1735; |
| | | const yOffset = -289; |
| | | const zOffset = -480; |
| | | |
| | | const xOffset0 = -1735; |
| | | const yOffset0 = -117; |
| | | const zOffset0 = -480; |
| | | |
| | | const xOffset1 = -1735; |
| | | const yOffset1 = -116; |
| | | const zOffset1 = -475; |
| | | |
| | | function StoreCrn(option, object) { |
| | | this.crnBodyLength = option.crnBody.length||30;//库位长度 |
| | | let that = this; |
| | | this.crnBodyLength = option.crnBody.length||50;//库位长度 |
| | | this.crnBodyWidth = option.crnBody.width||50;//库位宽 |
| | | this.crnBodyHeight = option.crnBody.height||500;//库位高 |
| | | this.crnLoadLength = option.crnLoad.length||60;//库位长度 |
| | | this.crnLoadWidth = option.crnLoad.width||60;//库位宽 |
| | | this.crnLoadHeight = option.crnLoad.height||40;//库位高 |
| | | this.crnForkLength = option.crnFork.length||80;//库位长度 |
| | | this.crnForkLength = option.crnFork.length||50;//库位长度 |
| | | this.crnForkWidth = option.crnFork.width||20;//库位宽 |
| | | this.crnForkHeight = option.crnFork.height||30;//库位高 |
| | | |
| | | // 立柱 |
| | | var a = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnBodyLength, this.crnBodyHeight, this.crnBodyWidth), new THREE.MeshBasicMaterial({ |
| | | color: 0xff0000, |
| | | transparent: true, |
| | | opacity: .3 |
| | | })) |
| | | a.name = option.crnNo + "-body"; |
| | | a.position.x = option.crnBody.position.x; |
| | | a.position.y = option.crnBody.position.y + this.crnBodyHeight/2; |
| | | a.position.z = option.crnBody.position.z - this.crnBodyWidth/2; |
| | | object.addObject(a); |
| | | // 载货台 |
| | | var b = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnLoadLength, this.crnLoadHeight, this.crnLoadWidth), new THREE.MeshBasicMaterial({ |
| | | color: 0x00ff00, |
| | | transparent: true, |
| | | opacity: .5 |
| | | })) |
| | | b.name = option.crnNo + "-load"; |
| | | b.position.x = option.crnLoad.position.x; |
| | | b.position.y = option.crnLoad.position.y + this.crnLoadHeight/2; |
| | | b.position.z = option.crnLoad.position.z - this.crnLoadWidth/2 + 5; |
| | | object.addObject(b); |
| | | // 叉牙 |
| | | var c = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnForkLength, this.crnForkWidth, this.crnForkHeight), new THREE.MeshBasicMaterial({ |
| | | color: 0xff00ff, |
| | | transparent: true, |
| | | opacity: 1 |
| | | })) |
| | | c.name = option.crnNo + "-fork"; |
| | | c.position.x = option.crnFork.position.x; |
| | | c.position.y = option.crnFork.position.y + this.crnLoadHeight/2; |
| | | c.position.z = option.crnFork.position.z - this.crnLoadWidth/2; |
| | | object.addObject(c); |
| | | const manager = new THREE.LoadingManager(); |
| | | new MTLLoader(manager) |
| | | .setPath( '../static/model/obj/' ) |
| | | .load( '堆垛机本体.mtl', function ( materials ) { |
| | | materials.preload(); |
| | | new OBJLoader( manager ) |
| | | .setMaterials( materials ) |
| | | .setPath( '../static/model/obj/' ) |
| | | .load( '堆垛机本体.obj', function ( obj ) { |
| | | obj.traverse (function (child) { |
| | | child.castShadow = true; |
| | | // child.receiveShadow = true; |
| | | if (child instanceof THREE.Mesh) { |
| | | child.material = new THREE.MeshLambertMaterial({ |
| | | color: 0xCD6839 |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | obj.scale.set(0.03, 0.03, 0.03); |
| | | obj.rotateY(- Math.PI / 2); |
| | | obj.name = option.crnNo + "-body"; |
| | | obj.position.x = option.crnBody.position.x + xOffset; |
| | | obj.position.y = option.crnBody.position.y + that.crnBodyHeight/2 + yOffset; |
| | | obj.position.z = option.crnBody.position.z - that.crnBodyWidth/2 + zOffset; |
| | | obj.userData['crnBodyLength'] = that.crnBodyLength; |
| | | obj.userData['crnBodyWidth'] = that.crnBodyWidth; |
| | | obj.userData['crnBodyHeight'] = that.crnBodyHeight; |
| | | object.addObject( obj ); |
| | | }, null, null ); |
| | | }); |
| | | new MTLLoader(manager) |
| | | .setPath( '../static/model/obj/' ) |
| | | .load( '载货台.mtl', function ( materials ) { |
| | | materials.preload(); |
| | | new OBJLoader( manager ) |
| | | .setMaterials( materials ) |
| | | .setPath( '../static/model/obj/' ) |
| | | .load( '载货台.obj', function ( obj ) { |
| | | obj.traverse (function (child) { |
| | | if (child instanceof THREE.Mesh) { |
| | | child.castShadow = true; |
| | | // child.receiveShadow = true; |
| | | child.material = new THREE.MeshLambertMaterial({ |
| | | color: 0xD2691E |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | obj.scale.set(0.03, 0.03, 0.03); |
| | | obj.rotateY(- Math.PI / 2); |
| | | obj.name = option.crnNo + "-load"; |
| | | obj.position.x = option.crnLoad.position.x + xOffset0; |
| | | obj.position.y = option.crnLoad.position.y + that.crnLoadHeight/2 + yOffset0; |
| | | obj.position.z = option.crnLoad.position.z - that.crnLoadWidth/2 + 5 + zOffset0; |
| | | obj.userData['crnLoadLength'] = that.crnLoadLength; |
| | | obj.userData['crnLoadWidth'] = that.crnLoadWidth; |
| | | obj.userData['crnLoadHeight'] = that.crnLoadHeight; |
| | | object.addObject( obj ); |
| | | }, null, null ); |
| | | }); |
| | | new MTLLoader(manager) |
| | | .setPath( '../static/model/obj/' ) |
| | | .load( '货叉.mtl', function ( materials ) { |
| | | materials.preload(); |
| | | new OBJLoader( manager ) |
| | | .setMaterials( materials ) |
| | | .setPath( '../static/model/obj/' ) |
| | | .load( '货叉.obj', function ( obj ) { |
| | | obj.traverse (function (child) { |
| | | if (child instanceof THREE.Mesh) { |
| | | child.castShadow = true; |
| | | // child.receiveShadow = true; |
| | | child.material = new THREE.MeshLambertMaterial({ |
| | | color: 0x363636 |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | obj.scale.set(0.03, 0.03, 0.03); |
| | | obj.rotateY(- Math.PI / 2); |
| | | obj.name = option.crnNo + "-fork"; |
| | | obj.position.x = option.crnFork.position.x + xOffset1; |
| | | obj.position.y = option.crnFork.position.y + that.crnLoadHeight/2 + yOffset1; |
| | | obj.position.z = option.crnFork.position.z - that.crnLoadWidth/2 + zOffset1; |
| | | obj.userData['crnForkLength'] = that.crnForkLength; |
| | | obj.userData['crnForkWidth'] = that.crnForkWidth; |
| | | obj.userData['crnForkHeight'] = that.crnForkHeight; |
| | | object.addObject( obj ); |
| | | }, null, null ); |
| | | }); |
| | | |
| | | } |
| | | |
| | | export {StoreCrn} |