From 27bbe99e7edc98ae0640ec5b5ffdc1a42844cb69 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Tue, 31 Mar 2026 17:39:07 -0400 Subject: [PATCH] fix: preserve part rotation through lead-in assign/remove cycle Track preLeadInRotation when parts are rotated so lead-in removal can restore the correct rotation. Remove stale HasManualLeadIns and LeadInsLocked deserialization from NestReader since these flags are transient state, not persisted data. Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest.Core/Part.cs | 2 ++ OpenNest.IO/NestReader.cs | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenNest.Core/Part.cs b/OpenNest.Core/Part.cs index dd18df4..5a106bf 100644 --- a/OpenNest.Core/Part.cs +++ b/OpenNest.Core/Part.cs @@ -106,6 +106,7 @@ namespace OpenNest EnsureOwnedProgram(); Program.Rotate(angle); location = Location.Rotate(angle); + preLeadInRotation = Program.Rotation; UpdateBounds(); } @@ -119,6 +120,7 @@ namespace OpenNest EnsureOwnedProgram(); Program.Rotate(angle); location = Location.Rotate(angle, origin); + preLeadInRotation = Program.Rotation; UpdateBounds(); } diff --git a/OpenNest.IO/NestReader.cs b/OpenNest.IO/NestReader.cs index 1cb49a5..9a35d19 100644 --- a/OpenNest.IO/NestReader.cs +++ b/OpenNest.IO/NestReader.cs @@ -214,8 +214,6 @@ namespace OpenNest.IO var part = new Part(dwg); part.Rotate(partDto.Rotation); part.Offset(new Vector(partDto.X, partDto.Y)); - part.HasManualLeadIns = partDto.HasManualLeadIns; - part.LeadInsLocked = partDto.LeadInsLocked; plate.Parts.Add(part); }