feat: add sentinel plate and plate list enhancements
Always keep a trailing empty plate so users can immediately place parts without manually adding a plate. Auto-appends a new sentinel when parts land on the last plate; trims excess trailing empties on removal. Plate list now shows Parts count and Utilization % columns. Empty plates are filtered from save and export. Sentinel updates are deferred via BeginInvoke to avoid collection-modified exceptions and debounced to prevent per-part overhead on bulk operations. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -175,9 +175,15 @@ namespace OpenNest.IO
|
||||
private List<PlateDto> BuildPlateDtos()
|
||||
{
|
||||
var list = new List<PlateDto>();
|
||||
var id = 0;
|
||||
for (var i = 0; i < nest.Plates.Count; i++)
|
||||
{
|
||||
var plate = nest.Plates[i];
|
||||
|
||||
if (plate.Parts.Count(p => !p.BaseDrawing.IsCutOff) == 0 && plate.CutOffs.Count == 0)
|
||||
continue;
|
||||
|
||||
id++;
|
||||
var parts = new List<PartDto>();
|
||||
foreach (var part in plate.Parts.Where(p => !p.BaseDrawing.IsCutOff))
|
||||
{
|
||||
@@ -208,7 +214,7 @@ namespace OpenNest.IO
|
||||
|
||||
list.Add(new PlateDto
|
||||
{
|
||||
Id = i + 1,
|
||||
Id = id,
|
||||
Size = new SizeDto { Width = plate.Size.Width, Length = plate.Size.Length },
|
||||
Quadrant = plate.Quadrant,
|
||||
Quantity = plate.Quantity,
|
||||
|
||||
Reference in New Issue
Block a user