# Belt组件

使用Belt组件可以为实体添加皮带机,由 @tx3d/extension 包提供。

# 添加基础皮带机

import { Belt } from '@tx3d/extension';

// 构建参数
const params = {
    
    path: [

        [ -50, 1.5, 0 ],
        [ -40, 1.5, 0 ],
        [ -30, 5.5, 0 ],
        [ -20, 5.5, 0 ],
        [ -10, 1.5, 0 ],
        [ 0, 1.5, 0 ]
        
    ],
    belt: '../assets/models/皮带机/机架中间.glb',
    wheel: '../assets/models/皮带机/拖带滚筒.glb',
    head: '../assets/models/皮带机/机头.glb',
    tail: '../assets/models/皮带机/机尾.glb',

    // 以下参数是可选的 可以不传
    // bracketLTop: '../assets/models/皮带机/支架_L_02.glb',
    // bracketLMid: '../assets/models/皮带机/支架_L_01.glb',
    // bracketLBottom: '../assets/models/皮带机/支架_L_03.glb',
    // bracketRTop: '../assets/models/皮带机/支架_R_02.glb',
    // bracketRMid: '../assets/models/皮带机/支架_R_01.glb',
    // bracketRBottom: '../assets/models/皮带机/支架_R_03.glb',
    // shutting: '../assets/models/皮带机/皮带闭锁.glb',
    // shuttingLine: '../assets/models/皮带机/皮带闭锁链接线.glb',
    // bracketWheel:'../assets/models/皮带机2/下方拖带滚筒.glb', // 支架中间的滚筒 可选


    briquetteList: ['../assets/models/皮带机/煤块/煤块1.glb', '../assets/models/皮带机/煤块/煤块2.glb', '../assets/models/皮带机/煤块/煤块3.glb',
        '../assets/models/皮带机/煤块/煤块4.glb', '../assets/models/皮带机/煤块/煤块5.glb', '../assets/models/皮带机/煤块/煤块6.glb',
        '../assets/models/皮带机/煤块/煤块7.glb', '../assets/models/皮带机/煤块/煤块8.glb', '../assets/models/皮带机/煤块/煤块9.glb',
        '../assets/models/皮带机/煤块/煤块10.glb', '../assets/models/皮带机/煤块/煤块11.glb'],
    wheelGap: 2,					// 皮带滚筒间距
    bracketGap: 2.5,				// 支架间距
    shuttingGap: 3,					// 闭锁间距
    shuttingSide: true,				// 闭锁是在左边还是右边 true是左边 false是右边
    beltSpeed: 2.5,					// 皮带转动速度	米每秒
    beltWidth: 1.6,		            // 皮带的宽度
    visibleDistance: 500,			// 皮带的可见距离
    startup: true,					// 皮带开关
    briquetteLoad: 25,				// 煤流量
    isLoad: true,					// 是否按照煤流量填满煤
    generateBriquette:true	        // 是否产生煤块

}

// 创建实体
const entity = engine.createEntity( { transform: { position: [0, 0, 0] } } );

// 添加皮带机渲染组件
const belt = entity.addComponent( Belt, params );
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

提示

Belt组件初始化参数,详见BeltParameters

皮带机建模参数可选部分说明:
这些参数可以不传

bracketLTop: '../assets/models/皮带机/支架_L_02.glb',
bracketLMid: '../assets/models/皮带机/支架_L_01.glb',
bracketLBottom: '../assets/models/皮带机/支架_L_03.glb',
bracketRTop: '../assets/models/皮带机/支架_R_02.glb',
bracketRMid: '../assets/models/皮带机/支架_R_01.glb',
bracketRBottom: '../assets/models/皮带机/支架_R_03.glb',
shutting: '../assets/models/皮带机/皮带闭锁.glb',
shuttingLine: '../assets/models/皮带机/皮带闭锁链接线.glb',
bracketWheel:'../assets/models/皮带机2/下方拖带滚筒.glb',

# 添加多条皮带机及搭接关系

import { Belt } from '@tx3d/extension';

const pathArr = [

    [

        [ -50, 1.5, 0 ],
        [ -40, 1.5, 0 ],
        [ -30, 5.5, 0 ],
        [ -20, 5.5, 0 ],
        [ -10, 1.5, 0 ],
        [ 0, 1.5, 0 ]

    ],
    [ [ 0, 1.5, 0 ], [ 15, 1.5, 0 ] ],
    [ [ 30, 1.5, -5 ], [ 15, 1.5, -5 ] ],
    [ [ 15, 0, -10 ], [ 15, 0, 15 ] ],
    [ [ 25, -1.5, 15 ], [ 0, -4, 15 ] ],
    [ [ 0, -5.5, 15 ], [ 0, -5.5, -20 ] ]

];
// !! 注意 点和点直接的距离 不能小于 机尾或机头 自带的皮带 长度  目前机尾 大约是3米

const beltArr = [];
for ( let i = 0, il = pathArr.length; i < il; i++ ) {

    // 构建参数
    const params = {
        
        path: pathArr[ i ],
        belt: '../assets/models/皮带机/机架中间.glb',
        wheel: '../assets/models/皮带机/拖带滚筒.glb',
        bracketLTop: '../assets/models/皮带机/支架_L_02.glb',
        bracketLMid: '../assets/models/皮带机/支架_L_01.glb',
        bracketLBottom: '../assets/models/皮带机/支架_L_03.glb',
        bracketRTop: '../assets/models/皮带机/支架_R_02.glb',
        bracketRMid: '../assets/models/皮带机/支架_R_01.glb',
        bracketRBottom: '../assets/models/皮带机/支架_R_03.glb',
        head: '../assets/models/皮带机/机头.glb',
        tail: '../assets/models/皮带机/机尾.glb',
        shutting: '../assets/models/皮带机/皮带闭锁.glb',
        shuttingLine: '../assets/models/皮带机/皮带闭锁链接线.glb',
        briquetteList: [

            '../assets/models/皮带机/煤块/煤块1.glb', 
            '../assets/models/皮带机/煤块/煤块2.glb', 
            '../assets/models/皮带机/煤块/煤块3.glb',
            '../assets/models/皮带机/煤块/煤块4.glb', 
            '../assets/models/皮带机/煤块/煤块5.glb', 
            '../assets/models/皮带机/煤块/煤块6.glb',
            '../assets/models/皮带机/煤块/煤块7.glb', 
            '../assets/models/皮带机/煤块/煤块8.glb', 
            '../assets/models/皮带机/煤块/煤块9.glb',
            '../assets/models/皮带机/煤块/煤块10.glb', 
            '../assets/models/皮带机/煤块/煤块11.glb'
        
        ],
        wheelGap: 2,					// 皮带滚筒间距
        bracketGap: 2.5,				// 支架间距
        shuttingGap: 3,					// 闭锁间距
        shuttingSide: true,				// 闭锁是在左边还是右边 true是左边 false是右边
        beltSpeed: 2.5,					// 皮带转动速度	米每秒
        beltWidth: 1.6,					// 皮带的宽度
        visibleDistance: 500,			// 皮带的可见距离
        startup: true,					// 皮带开关
        briquetteLoad: 25,				// 煤流量
        isLoad: true					// 是否按照煤流量填满煤
    }

    // 这几条皮带生产煤块 其他不生产
    if ( i == 0 || i == 2 || i == 3 || i == 4 ) {

        params.generateBriquette = true;	// 产生煤块

    }

    // 创建实体
    const entity = engine.createEntity( { transform: { position: [ 0, 0, 0 ] } } );

    // 添加皮带机渲染组件
    const belt = entity.addComponent( Belt, params );
    beltArr.push( belt );

}

// 设置皮带搭接关系
beltArr[ 1 ].receiveBriquette = beltArr[ 0 ];
beltArr[ 2 ].receiveBriquette = beltArr[ 1 ];
beltArr[ 3 ].receiveBriquette = beltArr[ 2 ];
beltArr[ 4 ].receiveBriquette = beltArr[ 3 ];
beltArr[ 5 ].receiveBriquette = beltArr[ 4 ];
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

# 皮带机异物添加

添加异物需要在传入参数添加异物构造方法和异物线构造方法,具体如下:


import { AssetsManager } from '@tx3d/core';

// 提前加载 异物类型的模型
const largeCoalGLTF = await AssetsManager.loadGLTFModelAsset( '../assets/models/皮带机/大煤块.glb' );// 大块煤模型

const anchorBoltGLTF = await AssetsManager.loadGLTFModelAsset( '../assets/models/皮带机/锚杆.glb' );// 锚杆模型

// 添加创建异物的构造函数
// type 是你在调用添加异物时传入的参数 在这里接收  用以判断 添加什么类型模型
// parentObject 是添加的容器
params.createForeignBody = ( type, parentObject ) => {

    let mesh;
    
    if ( type == 0 ) {

        mesh = largeCoalGLTF;

    } else if ( type == 1 ) {

        mesh = anchorBoltGLTF;

    }

    // 创建模型实体
    return engine.modelManager.createModel( mesh, { transform: { parent: parentObject } } );

};

// 添加创建异物线的构造函数
params.createTrackLine = ( points ) => {

    // 异物线样式
    const trackLineStyle = {

        coordinates: points,
        lineJoin: 'round',
        width: 10,
        color: '#ff0000',
        isClosed: false,
        outline: true,
        outlineWidth: 1,
        outlineColor: "#ffffff",
        flowSpeed: 1,
        moveColor: "#ffffff"

    }

    return engine.createPixelLine( trackLineStyle );
};


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

添加异物及异物线方法调用,参数详见接口说明

belt.addForeignBody( 1, [ 0, 0, 0 ], [ 10, 0, 0 ] );
1

# 皮带机卡扣添加

添加卡扣需要在传入参数添加卡扣构造方法,具体如下:

// 添加创建皮带卡扣的构造函数
params.createFastening = ( points ) => {

    // 线样式
    const trackLineStyle = {

        coordinates: points,
        lineJoin: 'round',
        width: 10,
        color: '#ff0000',
        isClosed: false,
        outline: true,
        outlineWidth: 1,
        outlineColor: "#ffffff",
        flowSpeed: 1,
        moveColor: "#ffffff"

    }

    return engine.createPixelLine( trackLineStyle );

};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

添加卡扣方法调用,参数详见接口说明

belt.addFastening( [ 0, 0, 0 ], 1 );
1

# 属性

🌏 receiveBriquette 设置接收皮带

// 皮带机2接收皮带机1上的物体
belt2.receiveBriquette = belt1;
1
2

🌏 forceVisible 强制隐藏(不受皮带机自动控制的影响)

// 获取当前隐藏值
const forceVisible = belt.forceVisible;

// 设置隐藏值
belt.forceVisible = false;
1
2
3
4
5

🌏 beltSpeed 设置皮带速度(米每秒 如果模型单位是米)

// 设置皮带机传输速度为10米每秒
belt.beltSpeed = 10;
1
2

🌏 beltStartup 设置皮带机开关

// 设置皮带机停止
belt.beltStartup = false;
1
2

🌏 briquetteLoad 设置煤流量

// 设置皮带机每秒添加25块
belt.briquetteLoad = 25;
1
2

🌏 generateBriquette 设置产生煤块

// 设置皮带机产生煤块
belt.generateBriquette = true;
1
2

# 接口

🌏 addForeignBody 添加异物及异物线

const foreignBodyID = belt.addForeignBody( 1, [ 0, 0, 0 ], [ 10, 0, 0 ] );
1

🌏 removeForeignBody 删除异物

// 删除这条皮带机上的异物 (如果有的话)
belt.removeForeignBody( foreignBodyID );
1
2

🌏 removeTrack 删除异物线

// 删除这条皮带机上的异物线 (如果有的话)
belt.removeTrack( foreignBodyID );
1
2

🌏 addFastening 添加皮带卡扣

const fasteningID = belt.addFastening( [ 0, 0, 0 ], 1 );
1

🌏 removeFastening 删除皮带卡扣

// 删除这条皮带机上的卡扣 (如果有的话)
belt.removeFastening(fasteningID);
1
2

🌏 setHighlight 设置高亮效果

// 设置高亮效果
belt.getComponent(Belt).renderer.setHighlight( true, { name: "2#减速器", color: "#ff0000" } );
1
2
Last Updated: 5/8/2024, 9:21:32 AM