feat(ui): wire Plate→Sequence menu to PartSequencerFactory

Replace old SequenceByNearest with PartSequencerFactory using default
SequenceParameters (Advanced method with serpentine row grouping).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-16 00:50:03 -04:00
parent 545d031ee7
commit a1f32eda79

View File

@@ -6,8 +6,12 @@ using System.IO;
using System.Linq;
using System.Windows.Forms;
using OpenNest.Actions;
using OpenNest.CNC.CuttingStrategy;
using OpenNest.Collections;
using OpenNest.Controls;
using OpenNest.Engine;
using OpenNest.Engine.RapidPlanning;
using OpenNest.Engine.Sequencing;
using OpenNest.IO;
using OpenNest.Math;
using OpenNest.Properties;
@@ -438,27 +442,28 @@ namespace OpenNest.Forms
public void AutoSequenceCurrentPlate()
{
var seq = new SequenceByNearest();
var parts = seq.SequenceParts(PlateView.Plate.Parts);
PlateView.Plate.Parts.Clear();
PlateView.Plate.Parts.AddRange(parts);
SequencePlate(PlateView.Plate);
PlateView.Invalidate();
}
public void AutoSequenceAllPlates()
{
var seq = new SequenceByNearest();
foreach (var plate in Nest.Plates)
{
var parts = seq.SequenceParts(plate.Parts);
plate.Parts.Clear();
plate.Parts.AddRange(parts);
}
SequencePlate(plate);
PlateView.Invalidate();
}
private static void SequencePlate(Plate plate)
{
var parameters = new SequenceParameters();
var sequencer = PartSequencerFactory.Create(parameters);
var ordered = sequencer.Sequence(plate.Parts.ToList(), plate);
plate.Parts.Clear();
plate.Parts.AddRange(ordered.Select(s => s.Part));
}
public void CalculateCurrentPlateCutTime()
{
var cutParamsForm = new CutParametersForm();