From b6bd7eda6e92c22a075e4c8f7de914ae3950986e Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Thu, 19 Mar 2026 08:25:32 -0400 Subject: [PATCH] refactor: move CutParameters to OpenNest.Api namespace with new properties Relocates CutParameters from OpenNest namespace to OpenNest.Api, adds LeadInLength and PostProcessor properties, and provides a typed Default factory. Updates Timing.cs, the WinForms project reference, and the three consuming forms to resolve the type from the new namespace. Co-Authored-By: Claude Sonnet 4.6 --- OpenNest.Core/CutParameters.cs | 28 +++++++++++-------- OpenNest.Core/Timing.cs | 1 + OpenNest.Tests/Api/CutParametersTests.cs | 35 ++++++++++++++++++++++++ OpenNest/Forms/CutParametersForm.cs | 1 + OpenNest/Forms/EditNestForm.cs | 1 + OpenNest/Forms/TimingForm.cs | 1 + OpenNest/OpenNest.csproj | 1 + 7 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 OpenNest.Tests/Api/CutParametersTests.cs diff --git a/OpenNest.Core/CutParameters.cs b/OpenNest.Core/CutParameters.cs index 0f39b78..bf751f6 100644 --- a/OpenNest.Core/CutParameters.cs +++ b/OpenNest.Core/CutParameters.cs @@ -1,15 +1,21 @@ -using System; +using System; -namespace OpenNest +namespace OpenNest.Api; + +public class CutParameters { - public class CutParameters + public double Feedrate { get; set; } + public double RapidTravelRate { get; set; } + public TimeSpan PierceTime { get; set; } + public double LeadInLength { get; set; } + public string PostProcessor { get; set; } + public Units Units { get; set; } + + public static CutParameters Default => new() { - public double Feedrate { get; set; } - - public double RapidTravelRate { get; set; } - - public TimeSpan PierceTime { get; set; } - - public Units Units { get; set; } - } + Feedrate = 100, + RapidTravelRate = 300, + PierceTime = TimeSpan.FromSeconds(0.5), + Units = OpenNest.Units.Inches + }; } diff --git a/OpenNest.Core/Timing.cs b/OpenNest.Core/Timing.cs index 7e1b401..bd20d5d 100644 --- a/OpenNest.Core/Timing.cs +++ b/OpenNest.Core/Timing.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using OpenNest.Api; using OpenNest.CNC; using OpenNest.Converters; using OpenNest.Geometry; diff --git a/OpenNest.Tests/Api/CutParametersTests.cs b/OpenNest.Tests/Api/CutParametersTests.cs new file mode 100644 index 0000000..9cca3b5 --- /dev/null +++ b/OpenNest.Tests/Api/CutParametersTests.cs @@ -0,0 +1,35 @@ +using OpenNest.Api; + +namespace OpenNest.Tests.Api; + +public class CutParametersTests +{ + [Fact] + public void Default_HasExpectedValues() + { + var cp = CutParameters.Default; + + Assert.Equal(100, cp.Feedrate); + Assert.Equal(300, cp.RapidTravelRate); + Assert.Equal(TimeSpan.FromSeconds(0.5), cp.PierceTime); + Assert.Equal(Units.Inches, cp.Units); + } + + [Fact] + public void Properties_AreSettable() + { + var cp = new CutParameters + { + Feedrate = 200, + RapidTravelRate = 500, + PierceTime = TimeSpan.FromSeconds(1.0), + LeadInLength = 0.25, + PostProcessor = "CL-707", + Units = Units.Millimeters + }; + + Assert.Equal(200, cp.Feedrate); + Assert.Equal(0.25, cp.LeadInLength); + Assert.Equal("CL-707", cp.PostProcessor); + } +} diff --git a/OpenNest/Forms/CutParametersForm.cs b/OpenNest/Forms/CutParametersForm.cs index ae0561d..9d1b860 100644 --- a/OpenNest/Forms/CutParametersForm.cs +++ b/OpenNest/Forms/CutParametersForm.cs @@ -1,5 +1,6 @@ using System; using System.Windows.Forms; +using OpenNest.Api; namespace OpenNest.Forms { diff --git a/OpenNest/Forms/EditNestForm.cs b/OpenNest/Forms/EditNestForm.cs index e85f678..e964abf 100644 --- a/OpenNest/Forms/EditNestForm.cs +++ b/OpenNest/Forms/EditNestForm.cs @@ -5,6 +5,7 @@ using System.Drawing; using System.IO; using System.Linq; using System.Windows.Forms; +using OpenNest.Api; using OpenNest.Actions; using OpenNest.CNC.CuttingStrategy; using OpenNest.Collections; diff --git a/OpenNest/Forms/TimingForm.cs b/OpenNest/Forms/TimingForm.cs index 9109107..e8cf6c3 100644 --- a/OpenNest/Forms/TimingForm.cs +++ b/OpenNest/Forms/TimingForm.cs @@ -1,5 +1,6 @@ using System; using System.Windows.Forms; +using OpenNest.Api; namespace OpenNest.Forms { diff --git a/OpenNest/OpenNest.csproj b/OpenNest/OpenNest.csproj index b2c2b77..0b8378b 100644 --- a/OpenNest/OpenNest.csproj +++ b/OpenNest/OpenNest.csproj @@ -11,6 +11,7 @@ +