#
luxiaotao1123
2024-04-26 c9ec91f64f45e1484231cee06d3efd8510bb0995
#
3个文件已修改
41 ■■■■ 已修改文件
src/components/box.jsx 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/config/setting.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/common.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/box.jsx
@@ -2,7 +2,13 @@
import { useFrame } from '@react-three/fiber';
import { useFBX, useAnimations } from '@react-three/drei';
import * as THREE from 'three';
import { MODEL_BOX_SCALE, SHELF_BAY_GROUP_COUNT } from '@/config/setting'
import {
    MODEL_BOX_SCALE,
    SHELF_BAY_GROUP_COUNT,
    SHELF_BAY_UNIT_SEPARTE_DISTANCE,
    SHELF_LEV_UNIT_SEPARTE_DISTANCE,
    SHELF_HEIGHT_FROM_GROUND
} from '@/config/setting'
import * as Common from '../utils/common';
import { useStore } from '@/store';
@@ -43,11 +49,26 @@
            // from shelf
            const shelfNo = getShelfNo(row, bay, lev);
            const shelfPos = state.shelfList[shelfNo];
            if (!shelfPos) { return }
            const { row: shelfRow, bay: shelfBay, lev: shelfLev } = Common.parseLocNo(shelfNo);
            console.log([shelfPos[0], shelfPos[1] + (bay - shelfBay) * 100, shelfPos[2] + (lev - shelfLev) * 100]);
            // cal bay position
            let posZByLev = shelfPos[2];
            if (bay === shelfBay) {
                posZByLev = shelfPos[2] + SHELF_BAY_UNIT_SEPARTE_DISTANCE;
            }
            if (bay === shelfBay + 1) {
                posZByLev = shelfPos[2];
            }
            if (bay === shelfBay + 2) {
                posZByLev = shelfPos[2] - SHELF_BAY_UNIT_SEPARTE_DISTANCE;
            }
            setPos([shelfPos[0], shelfPos[1] + (bay - shelfBay) * 10, shelfPos[2] + (lev - shelfLev) * 100]);
            setPos([
                shelfPos[0],
                shelfPos[1] + SHELF_HEIGHT_FROM_GROUND + (lev - shelfLev) * SHELF_LEV_UNIT_SEPARTE_DISTANCE,
                posZByLev
            ]);
            setRotaY(Math.PI / 2);
        } else {
            // from agv
src/config/setting.js
@@ -26,4 +26,10 @@
// shelf setting
export const SHELF_BAY_GROUP_COUNT = 3;
export const SHELF_BAY_GROUP_COUNT = 3;
export const SHELF_BAY_UNIT_SEPARTE_DISTANCE = 50;
export const SHELF_HEIGHT_FROM_GROUND = 10;
export const SHELF_LEV_UNIT_SEPARTE_DISTANCE = 28;
src/utils/common.js
@@ -84,9 +84,9 @@
    }
    const locParseArr = locNo.split('-');
    return {
        row: locParseArr?.[0],
        bay: locParseArr?.[1],
        lev: locParseArr?.[2],
        row: Number(locParseArr?.[0]),
        bay: Number(locParseArr?.[1]),
        lev: Number(locParseArr?.[2]),
    }
}