#
luxiaotao1123
2021-12-17 809e230e2a6a2e586df8788946fe98be81459361
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import {MTLLoader} from "../lib/MTLLoader.js";
import {OBJLoader} from "../lib/OBJLoader.js";
import {Color} from "../three.module.js";
 
const xOffset = -1735;
const yOffset = -289;
const zOffset = -480;
 
const xOffset0 = -1735;
const yOffset0 = -108;
const zOffset0 = -480;
 
const xOffset1 = -1735;
const yOffset1 = -107;
const zOffset1 = -475;
 
function StoreCrn(option, object) {
    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||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) {
                        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;
                    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.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;
                    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.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;
                    object.addObject( obj );
                }, null, null );
        });
 
}
 
export {StoreCrn}