diff --git a/OpenNest.Engine/StripNestEngine.cs b/OpenNest.Engine/StripNestEngine.cs index 283a145..7053617 100644 --- a/OpenNest.Engine/StripNestEngine.cs +++ b/OpenNest.Engine/StripNestEngine.cs @@ -270,7 +270,23 @@ namespace OpenNest while (madeProgress && !token.IsCancellationRequested) { madeProgress = false; - var freeBoxes = finder.FindRemnants(spacing); + + // Minimum remnant size = smallest remaining part dimension + var minRemnantDim = double.MaxValue; + foreach (var item in effectiveRemainder) + { + if (localQty[item.Drawing.Name] <= 0) + continue; + var bb = item.Drawing.Program.BoundingBox(); + var dim = System.Math.Min(bb.Width, bb.Length); + if (dim < minRemnantDim) + minRemnantDim = dim; + } + + if (minRemnantDim == double.MaxValue) + break; // No items with remaining quantity + + var freeBoxes = finder.FindRemnants(minRemnantDim); if (freeBoxes.Count == 0) break;