From 10f9b5357cac875a4053e9b5168bf59b53633782 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Sat, 14 Mar 2026 12:41:08 -0400 Subject: [PATCH] fix(engine): compute unused area from actual part areas Calculate unused plate area by subtracting total part area from the work area instead of relying on FillScore.UsableRemnantArea, which could over-report available space. Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest.Engine/NestEngine.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OpenNest.Engine/NestEngine.cs b/OpenNest.Engine/NestEngine.cs index a74e8ca..ca39d10 100644 --- a/OpenNest.Engine/NestEngine.cs +++ b/OpenNest.Engine/NestEngine.cs @@ -723,9 +723,13 @@ namespace OpenNest var score = FillScore.Compute(best, workArea); var clonedParts = new List(best.Count); + var totalPartArea = 0.0; foreach (var part in best) + { clonedParts.Add((Part)part.Clone()); + totalPartArea += part.BaseDrawing.Area; + } progress.Report(new NestProgress { @@ -733,7 +737,7 @@ namespace OpenNest PlateNumber = plateNumber, BestPartCount = score.Count, BestDensity = score.Density, - UsableRemnantArea = score.UsableRemnantArea, + UsableRemnantArea = workArea.Area() - totalPartArea, BestParts = clonedParts }); }