diff --git a/src/Core/Animation/PathAnimationManager.cs b/src/Core/Animation/PathAnimationManager.cs index 82ca6c1..e601ffe 100644 --- a/src/Core/Animation/PathAnimationManager.cs +++ b/src/Core/Animation/PathAnimationManager.cs @@ -807,7 +807,8 @@ namespace NavisworksTransport.Core.Animation Point3D startPosition = pathStartPoint; if (_route.PathType == PathType.Free) { - // 自由路径:路径点即物体几何中心,无需任何偏移 + // 自由路径:路径点即物体几何中心,再叠加上下偏移(lift) + startPosition = ApplyGroundPathObjectLiftOffset(startPosition); LogManager.Debug($"[移动到起点] 自由路径:路径点即物体中心=({startPosition.X:F2},{startPosition.Y:F2},{startPosition.Z:F2})"); } else if (_route.PathType == PathType.Hoisting) @@ -959,7 +960,7 @@ namespace NavisworksTransport.Core.Animation { // 兜底:真实物体走纯增量链,虚拟物体走平面姿态链; // 仅当两者都失败(如纯垂直路径)时保持当前姿态纯平移。 - startPosition = ApplyGroundPathObjectLiftOffset(startPosition); + // startPosition 已在位置解析时应用过上下偏移,这里不再重复。 ApplyTrackedTranslationOnly(startPosition); SyncTrackedRotationToDisplayedPose(CurrentControlledObject ?? _animatedObject); _hasGroundRealObjectBasePose = false;