From 62a4a8db6c05c98f180ae7f6429a9a232fce6c0c Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 03 七月 2025 17:19:16 +0800
Subject: [PATCH] 1. 重构机器人动画逻辑,采用分帧动画机制,避免在 OnTimer 中阻塞主线程; 2. 动画过程中允许动态中断,确保设备状态变化时可即时响应; 3. 动画结束时自动校正位置与角度,确保最终状态准确一致;

---
 SourceCode/Bond/BoounionPLC/FileManager/AxisManager.cpp |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/SourceCode/Bond/BoounionPLC/FileManager/AxisManager.cpp b/SourceCode/Bond/BoounionPLC/FileManager/AxisManager.cpp
index 49a3c62..494cdd1 100644
--- a/SourceCode/Bond/BoounionPLC/FileManager/AxisManager.cpp
+++ b/SourceCode/Bond/BoounionPLC/FileManager/AxisManager.cpp
@@ -170,17 +170,15 @@
         axisInfo.startAddress = "ZR" + std::to_string(10000 + (axisId - 1) * 300);
 
         // 设置默认的 ValueRange
-        axisInfo.jogDistance = ValueRange(1.0, 10.0, 1.0);
-        axisInfo.manualSpeed = ValueRange(1.0, 100.0, 10.0);
-        axisInfo.autoSpeed = ValueRange(5.0, 200.0, 50.0);
-        axisInfo.accelerationTime = ValueRange(1.0, 10.0, 1.0);
-        axisInfo.decelerationTime = ValueRange(1.0, 10.0, 1.0);
+        axisInfo.jogDistance = ValueRange(0.0, 0.1, 0.0);
+        axisInfo.manualSpeed = ValueRange(0.001, 100.0, 10.0);
+        axisInfo.autoSpeed = ValueRange(0.001, 100.0, 10.0);
+        axisInfo.accelerationTime = ValueRange(0.001, 10.0, 0.3);
+        axisInfo.decelerationTime = ValueRange(0.001, 10.0, 0.3);
 
         // 添加定位点并设置默认的最小值和最大值
         for (int posId = 0; posId < axisInfo.positioningPointCount; ++posId) {
-            double minPos = (posId + 1) * 5.0;
-            double maxPos = (posId + 1) * 20.0;
-            axisInfo.positions.emplace_back(PositionRange(TRUE, "Position " + std::to_string(posId + 1), ValueRange(minPos, maxPos, (posId + 1) * 10.0)));
+            axisInfo.positions.emplace_back(PositionRange(TRUE, "Position " + std::to_string(posId + 1), ValueRange(0, 100, 0)));
         }
 
         m_axes[axisId] = axisInfo;

--
Gitblit v1.9.3