diff --git a/OpenNest.Core/CNC/ArcMove.cs b/OpenNest.Core/CNC/ArcMove.cs index 06773f1..2b6c9eb 100644 --- a/OpenNest.Core/CNC/ArcMove.cs +++ b/OpenNest.Core/CNC/ArcMove.cs @@ -65,7 +65,8 @@ namespace OpenNest.CNC { return new ArcMove(EndPoint, CenterPoint, Rotation) { - Layer = Layer + Layer = Layer, + Suppressed = Suppressed }; } diff --git a/OpenNest.Core/CNC/LinearMove.cs b/OpenNest.Core/CNC/LinearMove.cs index beebca5..a50e179 100644 --- a/OpenNest.Core/CNC/LinearMove.cs +++ b/OpenNest.Core/CNC/LinearMove.cs @@ -31,7 +31,8 @@ namespace OpenNest.CNC { return new LinearMove(EndPoint) { - Layer = Layer + Layer = Layer, + Suppressed = Suppressed }; } diff --git a/OpenNest.Core/CNC/Motion.cs b/OpenNest.Core/CNC/Motion.cs index 6dcfbd5..b9b9618 100644 --- a/OpenNest.Core/CNC/Motion.cs +++ b/OpenNest.Core/CNC/Motion.cs @@ -12,6 +12,8 @@ namespace OpenNest.CNC public int Feedrate { get; set; } + public bool Suppressed { get; set; } + protected Motion() { Feedrate = CNC.Feedrate.UseDefault; diff --git a/OpenNest.Core/CNC/RapidMove.cs b/OpenNest.Core/CNC/RapidMove.cs index 4999254..3f8e718 100644 --- a/OpenNest.Core/CNC/RapidMove.cs +++ b/OpenNest.Core/CNC/RapidMove.cs @@ -26,7 +26,10 @@ namespace OpenNest.CNC public override ICode Clone() { - return new RapidMove(EndPoint); + return new RapidMove(EndPoint) + { + Suppressed = Suppressed + }; } public override string ToString() diff --git a/OpenNest.Tests/MotionSuppressedTests.cs b/OpenNest.Tests/MotionSuppressedTests.cs new file mode 100644 index 0000000..72715e4 --- /dev/null +++ b/OpenNest.Tests/MotionSuppressedTests.cs @@ -0,0 +1,45 @@ +using OpenNest.CNC; +using OpenNest.Geometry; + +namespace OpenNest.Tests; + +public class MotionSuppressedTests +{ + [Fact] + public void LinearMove_Suppressed_DefaultsFalse() + { + var move = new LinearMove(new Vector(1, 2)); + Assert.False(move.Suppressed); + } + + [Fact] + public void ArcMove_Suppressed_DefaultsFalse() + { + var move = new ArcMove(new Vector(1, 2), new Vector(0, 0)); + Assert.False(move.Suppressed); + } + + [Fact] + public void RapidMove_Suppressed_DefaultsFalse() + { + var move = new RapidMove(new Vector(1, 2)); + Assert.False(move.Suppressed); + } + + [Fact] + public void Suppressed_CanBeSet() + { + var move = new LinearMove(new Vector(1, 2)); + move.Suppressed = true; + Assert.True(move.Suppressed); + } + + [Fact] + public void Clone_PreservesSuppressed() + { + var move = new LinearMove(new Vector(1, 2)); + move.Suppressed = true; + var clone = (LinearMove)move.Clone(); + Assert.True(clone.Suppressed); + } +}