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($"[网格生成器] 初始化完成,延迟创建垂直扫描器");
}
///