Finish assembly route generation cleanup

This commit is contained in:
tian 2026-03-22 13:06:08 +08:00
parent 8f55b5e9a1
commit 5e7f9bdf51

View File

@ -1403,15 +1403,10 @@ namespace NavisworksTransport.UI.WPF.ViewModels
{
try
{
CleanupAssemblyReferenceSelection();
AssemblyReferencePathManager.Instance.HideReferenceRod();
ClearAssemblyAnchorMarker();
ClearAssemblyCenterGuideLine();
ClearAssemblyReferenceLine();
AssemblyStartPointText = "未选择";
OnPropertyChanged(nameof(CanSelectAssemblyStartPoint));
UpdateMainStatus("已隐藏终端安装辅助线");
LogManager.Info("[直线装配] 已隐藏辅助线");
HideAssemblyReferenceVisuals(
resetStartPointText: false,
statusMessage: "已隐藏终端安装辅助线",
logMessage: "[直线装配] 已隐藏辅助线");
}
catch (Exception ex)
{
@ -1477,8 +1472,10 @@ namespace NavisworksTransport.UI.WPF.ViewModels
throw new InvalidOperationException("装配路径生成失败");
}
_pathPlanningManager.DrawRouteVisualization(route, isAutoPath: false);
RefreshPathRoutes();
if (!_pathPlanningManager.FinishEditing())
{
throw new InvalidOperationException("装配路径完成编辑失败");
}
var generatedRouteViewModel = PathRoutes.FirstOrDefault(p => p.Name == route.Name);
if (generatedRouteViewModel != null)
@ -1487,6 +1484,11 @@ namespace NavisworksTransport.UI.WPF.ViewModels
UpdatePassageSpaceVisualizationForPathType(route.PathType);
}
HideAssemblyReferenceVisuals(
resetStartPointText: false,
statusMessage: null,
logMessage: "[直线装配] 路径生成完成后已隐藏辅助线可视化");
AssemblyTerminalObjectInfo = string.Format(
"对接终点=({0:F2}, {1:F2}, {2:F2}),装配起点={3},安装方式={4},对接基准={5}",
endPoint.X,
@ -1497,7 +1499,30 @@ namespace NavisworksTransport.UI.WPF.ViewModels
GetAssemblyAnchorText());
OnPropertyChanged(nameof(PathRoutes));
LogManager.Info($"[直线装配] 已生成路径: {route.Name},起点=({startPoint.X:F2}, {startPoint.Y:F2}, {startPoint.Z:F2}),终点=({endPoint.X:F2}, {endPoint.Y:F2}, {endPoint.Z:F2})");
LogManager.Info($"[直线装配] 已生成并完成路径: {route.Name},起点=({startPoint.X:F2}, {startPoint.Y:F2}, {startPoint.Z:F2}),终点=({endPoint.X:F2}, {endPoint.Y:F2}, {endPoint.Z:F2})");
}
private void HideAssemblyReferenceVisuals(bool resetStartPointText, string statusMessage, string logMessage)
{
CleanupAssemblyReferenceSelection();
AssemblyReferencePathManager.Instance.HideReferenceRod();
ClearAssemblyAnchorMarker();
ClearAssemblyCenterGuideLine();
ClearAssemblyReferenceLine();
if (resetStartPointText)
{
AssemblyStartPointText = "未选择";
}
OnPropertyChanged(nameof(CanSelectAssemblyStartPoint));
if (!string.IsNullOrWhiteSpace(statusMessage))
{
UpdateMainStatus(statusMessage);
}
if (!string.IsNullOrWhiteSpace(logMessage))
{
LogManager.Info(logMessage);
}
}
private Point3D GetAssemblyTerminalAnchorPoint()