From fd05ffce3c7910fe92dc38a16da67afc119e9bbd Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Tue, 6 Jan 2026 15:45:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8E=BB=E9=87=8D=E6=97=A5?= =?UTF-8?q?=E5=BF=97=EF=BC=8C=E5=8F=91=E7=8E=B0=E5=8D=95item=E6=9C=892?= =?UTF-8?q?=E4=B8=AA=E5=87=A0=E4=BD=95=E4=BD=93=E5=AF=BC=E8=87=B4=E7=A2=B0?= =?UTF-8?q?=E6=92=9E=E7=BB=93=E6=9E=9C=E9=87=8D=E5=A4=8D=EF=BC=8C=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Core/Animation/PathAnimationManager.cs | 6 --- .../Collision/ClashDetectiveIntegration.cs | 43 ++++++++++++++++++- src/Core/Spatial/SpatialIndexManager.cs | 6 --- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/src/Core/Animation/PathAnimationManager.cs b/src/Core/Animation/PathAnimationManager.cs index ef55059..8fd6585 100644 --- a/src/Core/Animation/PathAnimationManager.cs +++ b/src/Core/Animation/PathAnimationManager.cs @@ -541,12 +541,6 @@ namespace NavisworksTransport.Core.Animation double yawRadians = ComputeYawOnPath(i, allSampledPoints, edgeIndex, edgeProgress); - // 添加朝向计算日志 - if (edge.SegmentType == PathSegmentType.Arc) - { - LogManager.Debug($"帧[{i}] 圆弧段: 边索引={edgeIndex}, 边进度={edgeProgress:F4}, 朝向={yawRadians * 180.0 / Math.PI:F2}度, 位置=({framePosition.X:F3},{framePosition.Y:F3},{framePosition.Z:F3})"); - } - // 创建帧并检测碰撞 var frame = new AnimationFrame { diff --git a/src/Core/Collision/ClashDetectiveIntegration.cs b/src/Core/Collision/ClashDetectiveIntegration.cs index 009844b..9adb4f2 100644 --- a/src/Core/Collision/ClashDetectiveIntegration.cs +++ b/src/Core/Collision/ClashDetectiveIntegration.cs @@ -360,6 +360,26 @@ namespace NavisworksTransport LogManager.Info($"[分组测试] 智能去重: {validCollisions.Count} 个检测点 -> {groupedCollisions.Count} 个唯一碰撞对"); + // 调试:打印所有去重后的碰撞对信息 + LogManager.Debug($"[分组测试] 去重后的碰撞对列表:"); + int groupIndex = 0; + foreach (var group in groupedCollisions) + { + var firstCollision = group.First(); + var item1 = firstCollision.Item1; + var item2 = firstCollision.Item2; + + // 使用 GetModelItemWithAncestorFallback 获取名称(向上查找父节点) + var item1Name = item1 != null ? NavisworksApiHelper.GetModelItemNameWithAncestorFallback(item1) : "null"; + var item2Name = item2 != null ? NavisworksApiHelper.GetModelItemNameWithAncestorFallback(item2) : "null"; + var item1Hash = item1?.GetHashCode() ?? -1; + var item2Hash = item2?.GetHashCode() ?? -1; + var frameCount = group.Count(); + + LogManager.Debug($" [{groupIndex}] Item1={item1Name}(Hash:{item1Hash}), Item2={item2Name}(Hash:{item2Hash}), 帧数={frameCount}"); + groupIndex++; + } + var collisionGroup = new ClashResultGroup { DisplayName = $"物流碰撞检测组 ({groupedCollisions.Count} 个唯一碰撞对)" @@ -505,7 +525,28 @@ namespace NavisworksTransport } } - LogManager.Info($"[分组测试] 智能去重完成: 确认碰撞 {confirmedCount} 组, 跳过 {skippedCount} 个冗余检测点"); + LogManager.Info($"[分组测试] ClashDetective检测完成: 确认碰撞 {confirmedCount} 组, 跳过 {skippedCount} 个冗余检测点"); + + // 调试:打印所有确认的碰撞对信息 + LogManager.Debug($"[分组测试] 确认的碰撞对列表:"); + int confirmedIndex = 0; + foreach (var result in collisionGroup.Children) + { + if (result is ClashResult clashResult) + { + var item1 = clashResult.Item1; + var item2 = clashResult.Item2; + + // 使用 GetModelItemWithAncestorFallback 获取名称(向上查找父节点) + var item1Name = item1 != null ? NavisworksApiHelper.GetModelItemNameWithAncestorFallback(item1) : "null"; + var item2Name = item2 != null ? NavisworksApiHelper.GetModelItemNameWithAncestorFallback(item2) : "null"; + var item1Hash = item1?.GetHashCode() ?? -1; + var item2Hash = item2?.GetHashCode() ?? -1; + + LogManager.Debug($" [{confirmedIndex}] Item1={item1Name}(Hash:{item1Hash}), Item2={item2Name}(Hash:{item2Hash})"); + confirmedIndex++; + } + } // 第三步:将分组添加到主测试 if (collisionGroup.Children.Count > 0) diff --git a/src/Core/Spatial/SpatialIndexManager.cs b/src/Core/Spatial/SpatialIndexManager.cs index 495f939..d4549d0 100644 --- a/src/Core/Spatial/SpatialIndexManager.cs +++ b/src/Core/Spatial/SpatialIndexManager.cs @@ -205,12 +205,6 @@ namespace NavisworksTransport.Core.Spatial sw.Stop(); - LogManager.Debug($"[空间索引] 范围查询完成: " + - $"位置=({position.X:F2}, {position.Y:F2}, {position.Z:F2}), " + - $"半径={searchRadiusInModelUnits:F2}, " + - $"结果={nearbyObjects.Count} 个对象, " + - $"耗时={sw.Elapsed.TotalMilliseconds:F2}ms"); - return nearbyObjects; } catch (Exception ex)