From 9db665e38beb30bdcf6c28c3ea4c1ae7c4d1cc33 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期一, 05 一月 2026 14:29:11 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/insight/agv/AgvMain.jsx |   89 ++++++++++++++++++++++++++++++--------------
 zy-acs-flow/src/map/tool.js                 |    1 
 2 files changed, 61 insertions(+), 29 deletions(-)

diff --git a/zy-acs-flow/src/map/insight/agv/AgvMain.jsx b/zy-acs-flow/src/map/insight/agv/AgvMain.jsx
index 0167d0a..5b8e293 100644
--- a/zy-acs-flow/src/map/insight/agv/AgvMain.jsx
+++ b/zy-acs-flow/src/map/insight/agv/AgvMain.jsx
@@ -18,6 +18,10 @@
 import BoolValueIcon from '../BoolValueIcon';
 import ConfirmButton from '../../../page/components/ConfirmButton';
 import { grey } from '@mui/material/colors';
+import * as Tool from '../../tool';
+import {
+    DEVICE_TYPE,
+} from '../../constants';
 
 const AgvMain = (props) => {
     const { curAgvNo, curAgvInfo: info, fetchAgvInfo } = props;
@@ -48,6 +52,9 @@
 
     const renderThree = (curAgvNo) => {
         if (curAgvNo && threeRef.current) {
+            const agvSprite = Tool.querySprite(DEVICE_TYPE.AGV, curAgvNo);
+            const agvModel = agvSprite.data.model;
+
             threeRef.current.generateMesh((loader, addObject) => {
                 const loadModel = (path) => {
                     return new Promise((resolve, reject) => {
@@ -59,41 +66,65 @@
                     });
                 };
 
-                Promise.all([
-                    loadModel('model/agv/body.fbx'),
-                    loadModel('model/agv/loader.fbx'),
-                    loadModel('model/agv/fork.fbx'),
-                    // loadModel('model/asr/body.fbx'),
-                    // loadModel('model/asr/loader.fbx'),
-                    // loadModel('model/asr/fork.fbx'),
-                ]).then(([bodyMesh, loaderMesh, forkMesh]) => {
-                    const scaleVal = 1;
-                    // const scaleVal = 0.48;
-                    bodyMesh.scale.set(scaleVal, scaleVal, scaleVal);
-                    loaderMesh.scale.set(scaleVal, scaleVal, scaleVal);
-                    forkMesh.scale.set(scaleVal, scaleVal, scaleVal);
+                if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') {
+                    Promise.all([
+                        loadModel('model/asr/body.fbx'),
+                        loadModel('model/asr/loader.fbx'),
+                        loadModel('model/asr/fork.fbx'),
+                    ]).then(([bodyMesh, loaderMesh, forkMesh]) => {
+                        const scaleVal = 0.48;
+                        bodyMesh.scale.set(scaleVal, scaleVal, scaleVal);
+                        loaderMesh.scale.set(scaleVal, scaleVal, scaleVal);
+                        forkMesh.scale.set(scaleVal, scaleVal, scaleVal);
 
-                    bodyMesh.position.set(55, 0, 0);;
-                    loaderMesh.position.set(55, 150, 0);;
-                    forkMesh.position.set(55, 165, 0);;
-                    // bodyMesh.position.set(55, 0, 0);;
-                    // loaderMesh.position.set(55, 150, 0);;
-                    // forkMesh.position.set(55, 165, 0);;
+                        bodyMesh.position.set(55, 0, 0);;
+                        loaderMesh.position.set(55, 150, 0);;
+                        forkMesh.position.set(55, 165, 0);;
 
-                    const agvGroup = new THREE.Group();
-                    agvGroup.add(bodyMesh);
-                    agvGroup.add(loaderMesh);
-                    agvGroup.add(forkMesh);
+                        const agvGroup = new THREE.Group();
+                        agvGroup.add(bodyMesh);
+                        agvGroup.add(loaderMesh);
+                        agvGroup.add(forkMesh);
 
-                    agvGroup.name = curAgvNo;
+                        agvGroup.name = curAgvNo;
 
-                    addObject(agvGroup);
+                        addObject(agvGroup);
 
-                    threeRef.current?.rePerspective(350, 450);
+                        threeRef.current?.rePerspective(350, 450);
 
-                }).catch((error) => {
-                    console.error(error);
-                });
+                    }).catch((error) => {
+                        console.error(error);
+                    });
+                } else {
+                    Promise.all([
+                        loadModel('model/agv/body.fbx'),
+                        loadModel('model/agv/loader.fbx'),
+                        loadModel('model/agv/fork.fbx'),
+                    ]).then(([bodyMesh, loaderMesh, forkMesh]) => {
+                        const scaleVal = 1;
+                        bodyMesh.scale.set(scaleVal, scaleVal, scaleVal);
+                        loaderMesh.scale.set(scaleVal, scaleVal, scaleVal);
+                        forkMesh.scale.set(scaleVal, scaleVal, scaleVal);
+
+                        bodyMesh.position.set(55, 0, 0);;
+                        loaderMesh.position.set(55, 150, 0);;
+                        forkMesh.position.set(55, 165, 0);;
+
+                        const agvGroup = new THREE.Group();
+                        agvGroup.add(bodyMesh);
+                        agvGroup.add(loaderMesh);
+                        agvGroup.add(forkMesh);
+
+                        agvGroup.name = curAgvNo;
+
+                        addObject(agvGroup);
+
+                        threeRef.current?.rePerspective(350, 450);
+
+                    }).catch((error) => {
+                        console.error(error);
+                    });
+                }
             });
         }
     }
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 017d65b..abc1b4f 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -821,6 +821,7 @@
         initSprite(agvSprite, DEVICE_TYPE.AGV);
 
         agvSprite.data.no = agvNo;
+        agvSprite.data.model = agvModel;
         agvSprite.data.backpackCount = backpackCount;
         agvSprite.data.battery = battery;
 

--
Gitblit v1.9.1