From 981188f65e9e41af0687b7ab409ea3929562d001 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Sun, 5 Apr 2026 00:38:59 -0400 Subject: [PATCH] feat: persist plate optimizer settings across autonest runs Add LoadPlateOptions() method to AutoNestForm that restores saved plate options and salvage rate from the Nest. Call this method in RunAutoNest_Click when opening the dialog if saved options exist, and save settings back to Nest after dialog completion. Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest/Forms/AutoNestForm.cs | 17 +++++++++++++++++ OpenNest/Forms/MainForm.cs | 9 +++++++++ 2 files changed, 26 insertions(+) diff --git a/OpenNest/Forms/AutoNestForm.cs b/OpenNest/Forms/AutoNestForm.cs index 38b2220..6a15581 100644 --- a/OpenNest/Forms/AutoNestForm.cs +++ b/OpenNest/Forms/AutoNestForm.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Linq; using System.Windows.Forms; namespace OpenNest.Forms @@ -76,6 +77,22 @@ namespace OpenNest.Forms plateOptionsGrid.DataSource = items; } + public void LoadPlateOptions(List options, double salvageRate) + { + if (options != null && options.Count > 0) + { + var items = options.Select(o => new PlateOptionItem + { + Width = o.Width, + Length = o.Length, + Cost = o.Cost, + }).ToList(); + plateOptionsGrid.DataSource = items; + optimizePlateSizeBox.Checked = true; + } + SalvageRate = salvageRate; + } + private void optimizePlateSizeBox_CheckedChanged(object sender, EventArgs e) { plateOptionsPanel.Visible = optimizePlateSizeBox.Checked; diff --git a/OpenNest/Forms/MainForm.cs b/OpenNest/Forms/MainForm.cs index 90793b4..9f1b71c 100644 --- a/OpenNest/Forms/MainForm.cs +++ b/OpenNest/Forms/MainForm.cs @@ -900,6 +900,9 @@ namespace OpenNest.Forms var form = new AutoNestForm(activeForm.Nest); form.AllowPlateCreation = true; + if (activeForm.Nest.PlateOptions.Count > 0) + form.LoadPlateOptions(activeForm.Nest.PlateOptions, activeForm.Nest.SalvageRate); + if (form.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; @@ -912,6 +915,12 @@ namespace OpenNest.Forms var plateOptions = optimizePlateSize ? form.GetPlateOptions() : null; var salvageRate = form.SalvageRate; + if (optimizePlateSize) + { + activeForm.Nest.PlateOptions = plateOptions; + activeForm.Nest.SalvageRate = salvageRate; + } + nestingCts = new CancellationTokenSource(); var progressForm = new NestProgressForm(nestingCts, showPlateRow: true); progressForm.PreviewPlate = CreatePreviewPlate(activeForm.PlateView.Plate);