From 2cb94758474534567f64484278d306f8fcfdc080 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Mon, 15 Sep 2025 18:33:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E4=B8=80=E7=82=B9=E5=A4=9A?= =?UTF-8?q?=E4=BA=8E=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Commands/ViewCollisionReportCommand.cs | 21 ++++++++++++++++ src/Core/PathPlanningManager.cs | 28 +++++----------------- src/PathPlanning/GridMapGenerator.cs | 5 ---- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/Commands/ViewCollisionReportCommand.cs b/src/Commands/ViewCollisionReportCommand.cs index 9d190d1..0aa68cb 100644 --- a/src/Commands/ViewCollisionReportCommand.cs +++ b/src/Commands/ViewCollisionReportCommand.cs @@ -139,6 +139,27 @@ namespace NavisworksTransport.Commands // 生成报告内容 result.ReportContent = GenerateReportContent(collisionData, _parameters.Type, _parameters.IncludeDetails); + UpdateProgress(90, "处理报告显示..."); + + // 自动高亮(如果启用) + if (_parameters.AutoHighlight && collisionData.AllCollisions.Count > 0) + { + try + { + var highlightIntegration = ClashDetectiveIntegration.Instance; + if (highlightIntegration != null) + { + var highlightColor = Color.Green; // 绿色 (Navisworks API中没有Orange) + highlightIntegration.ManageHighlightsByCategory("report", collisionData.AllCollisions, highlightColor, true); + LogManager.Info($"自动高亮显示报告中的 {collisionData.AllCollisions.Count} 个碰撞对象"); + } + } + catch (Exception ex) + { + LogManager.Error($"自动高亮报告对象失败: {ex.Message}"); + } + } + UpdateProgress(100, "报告生成完成"); }, cancellationToken); diff --git a/src/Core/PathPlanningManager.cs b/src/Core/PathPlanningManager.cs index ee1d9b1..b4e090e 100644 --- a/src/Core/PathPlanningManager.cs +++ b/src/Core/PathPlanningManager.cs @@ -780,34 +780,18 @@ namespace NavisworksTransport } } - /// - /// 自动路径规划(完整实现) - /// - /// 起点 - /// 终点 - /// 车辆尺寸(米) - /// 安全间隙(米) - /// 网格精度(米) - /// 车辆高度(米) - /// 规划结果 - public Task AutoPlanPath(PathPoint startPoint, PathPoint endPoint, double vehicleSize = 1.0, double safetyMargin = 0.5, double gridSize = -1, double vehicleHeight = 2.0) - { - // 调用支持策略的重载方法,默认使用最短路径策略确保向后兼容 - return AutoPlanPath(startPoint, endPoint, vehicleSize, safetyMargin, gridSize, vehicleHeight, PathStrategy.Shortest); - } - /// /// 自动路径规划(支持路径策略) /// /// 起点 /// 终点 - /// 车辆尺寸(米) + /// 车辆尺寸(米) /// 安全间隙(米) /// 网格精度(米) /// 车辆高度(米) /// 路径规划策略 /// 规划结果 - public Task AutoPlanPath(PathPoint startPoint, PathPoint endPoint, double vehicleSize = 1.0, double safetyMargin = 0.5, double gridSize = -1, double vehicleHeight = 2.0, PathStrategy strategy = PathStrategy.Shortest) + public Task AutoPlanPath(PathPoint startPoint, PathPoint endPoint, double vehicleRadius, double safetyMargin, double gridSize, double vehicleHeight, PathStrategy strategy) { try { @@ -819,7 +803,7 @@ namespace NavisworksTransport LogManager.Info($"开始自动路径规划: {startPoint.Name} -> {endPoint.Name}"); LogManager.Info($"起点坐标: ({startPoint.Position.X:F2}, {startPoint.Position.Y:F2}, {startPoint.Position.Z:F2})"); LogManager.Info($"终点坐标: ({endPoint.Position.X:F2}, {endPoint.Position.Y:F2}, {endPoint.Position.Z:F2})"); - LogManager.Info($"车辆尺寸: {vehicleSize}m, 安全间隙: {safetyMargin}m, 车辆高度: {vehicleHeight}m"); + LogManager.Info($"车辆半径: {vehicleRadius}m, 安全间隙: {safetyMargin}m, 车辆高度: {vehicleHeight}m"); RaiseStatusChanged("正在进行自动路径规划...", PathPlanningStatusType.Info); @@ -851,7 +835,7 @@ namespace NavisworksTransport // 获取当前文档 var document = Application.ActiveDocument; LogManager.Info($"网格生成参数 - 边界: {bounds.Min.X:F2},{bounds.Min.Y:F2} -> {bounds.Max.X:F2},{bounds.Max.Y:F2}"); - LogManager.Info($"网格生成参数 - 网格大小: {gridSize}m, 车辆大小: {vehicleSize}m, 安全边距: {safetyMargin}m"); + LogManager.Info($"网格生成参数 - 网格大小: {gridSize}m, 车辆半径: {vehicleRadius}m, 安全边距: {safetyMargin}m"); LogManager.Info($"网格生成参数 - 起点: ({startPoint.Position.X:F2}, {startPoint.Position.Y:F2}, {startPoint.Position.Z:F2})"); LogManager.Info($"网格生成参数 - 终点: ({endPoint.Position.X:F2}, {endPoint.Position.Y:F2}, {endPoint.Position.Z:F2})"); @@ -863,7 +847,7 @@ namespace NavisworksTransport document, bounds, gridSize, - vehicleSize, + vehicleRadius, safetyMargin, startPoint.Position, endPoint.Position, @@ -986,7 +970,7 @@ namespace NavisworksTransport // 保存GridMap和参数到PathRoute以便后续恢复网格可视化 autoRoute.AssociatedGridMap = gridMap; autoRoute.GridSize = gridSize; - autoRoute.VehicleSize = vehicleSize; + autoRoute.VehicleSize = vehicleRadius; autoRoute.SafetyMargin = safetyMargin; autoRoute.VehicleHeight = vehicleHeight; LogManager.Info($"已保存GridMap到路径: {routeName}, 网格大小: {gridSize}米"); diff --git a/src/PathPlanning/GridMapGenerator.cs b/src/PathPlanning/GridMapGenerator.cs index 15c8d55..2ea4860 100644 --- a/src/PathPlanning/GridMapGenerator.cs +++ b/src/PathPlanning/GridMapGenerator.cs @@ -43,12 +43,7 @@ namespace NavisworksTransport.PathPlanning { _categoryManager = new CategoryAttributeManager(); _channelBuilder = new ChannelBasedGridBuilder(); - - // 延迟创建VerticalScanProcessor,等待实际网格大小 - // 这样可以根据用户设置的网格大小进行优化 _verticalScanner = null; - - LogManager.Info($"[网格生成器] 初始化完成,延迟创建垂直扫描器"); } ///