fix: correct Size width/length axis mapping throughout codebase

The Size fix (d4222db) changed Size.Width to Y axis and Size.Length to
X axis but only updated DrawPlate/LayoutViewGL. BoundingBox, WorkArea,
rotations, DXF export, and engine code still used the old Width=X
convention, causing the fill engine to get a swapped work area (60x120
instead of 120x60) and parts to fill in the wrong direction.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-17 16:20:24 -04:00
parent a487d33f52
commit 42f2475f3c
10 changed files with 68 additions and 63 deletions
@@ -28,7 +28,7 @@ namespace OpenNest.Engine.Sequencing
rows.Sort((a, b) => a.RowY.CompareTo(b.RowY));
// Determine initial direction based on exit point
var leftToRight = exit.X > plate.Size.Width * 0.5;
var leftToRight = exit.X > plate.Size.Length * 0.5;
var result = new List<SequencedPart>(parts.Count);
foreach (var row in rows)
+6 -6
View File
@@ -6,16 +6,16 @@ namespace OpenNest.Engine.Sequencing
{
public static Vector GetExitPoint(Plate plate)
{
var w = plate.Size.Width;
var l = plate.Size.Length;
var xExtent = plate.Size.Length;
var yExtent = plate.Size.Width;
return plate.Quadrant switch
{
1 => new Vector(w, l),
2 => new Vector(0, l),
1 => new Vector(xExtent, yExtent),
2 => new Vector(0, yExtent),
3 => new Vector(0, 0),
4 => new Vector(w, 0),
_ => new Vector(w, l)
4 => new Vector(xExtent, 0),
_ => new Vector(xExtent, yExtent)
};
}
}