From 3bdbf218816ade2ef35c9dab8b9cb23f6dd5c71f Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Mon, 6 Apr 2026 09:19:12 -0400 Subject: [PATCH] fix: plate optimizer tiebreak prefers highest utilization over smallest area When plate costs are equal (e.g. all zero), the optimizer now picks the plate size with the tightest density instead of the smallest plate. Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest.Engine/PlateOptimizer.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenNest.Engine/PlateOptimizer.cs b/OpenNest.Engine/PlateOptimizer.cs index ec53768..ed201bd 100644 --- a/OpenNest.Engine/PlateOptimizer.cs +++ b/OpenNest.Engine/PlateOptimizer.cs @@ -158,8 +158,8 @@ namespace OpenNest if (!candidate.NetCost.IsEqualTo(current.NetCost)) return candidate.NetCost < current.NetCost; - // 3. Smaller plate area as tiebreak. - return candidate.ChosenSize.Area < current.ChosenSize.Area; + // 3. Higher utilization (tighter density) as tiebreak. + return candidate.Utilization > current.Utilization; } } }