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 @@
+