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:
@@ -6,8 +6,12 @@ using System.IO;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using OpenNest.Actions;
|
using OpenNest.Actions;
|
||||||
|
using OpenNest.CNC.CuttingStrategy;
|
||||||
using OpenNest.Collections;
|
using OpenNest.Collections;
|
||||||
using OpenNest.Controls;
|
using OpenNest.Controls;
|
||||||
|
using OpenNest.Engine;
|
||||||
|
using OpenNest.Engine.RapidPlanning;
|
||||||
|
using OpenNest.Engine.Sequencing;
|
||||||
using OpenNest.IO;
|
using OpenNest.IO;
|
||||||
using OpenNest.Math;
|
using OpenNest.Math;
|
||||||
using OpenNest.Properties;
|
using OpenNest.Properties;
|
||||||
@@ -438,27 +442,28 @@ namespace OpenNest.Forms
|
|||||||
|
|
||||||
public void AutoSequenceCurrentPlate()
|
public void AutoSequenceCurrentPlate()
|
||||||
{
|
{
|
||||||
var seq = new SequenceByNearest();
|
SequencePlate(PlateView.Plate);
|
||||||
var parts = seq.SequenceParts(PlateView.Plate.Parts);
|
PlateView.Invalidate();
|
||||||
|
|
||||||
PlateView.Plate.Parts.Clear();
|
|
||||||
PlateView.Plate.Parts.AddRange(parts);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AutoSequenceAllPlates()
|
public void AutoSequenceAllPlates()
|
||||||
{
|
{
|
||||||
var seq = new SequenceByNearest();
|
|
||||||
|
|
||||||
foreach (var plate in Nest.Plates)
|
foreach (var plate in Nest.Plates)
|
||||||
{
|
SequencePlate(plate);
|
||||||
var parts = seq.SequenceParts(plate.Parts);
|
|
||||||
plate.Parts.Clear();
|
|
||||||
plate.Parts.AddRange(parts);
|
|
||||||
}
|
|
||||||
|
|
||||||
PlateView.Invalidate();
|
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()
|
public void CalculateCurrentPlateCutTime()
|
||||||
{
|
{
|
||||||
var cutParamsForm = new CutParametersForm();
|
var cutParamsForm = new CutParametersForm();
|
||||||
|
|||||||
Reference in New Issue
Block a user