feat: set Layer = Leadin on all LeadIn subclass generated codes

Adds LayerType.Leadin to all LinearMove and ArcMove instances produced
by LineLeadIn, ArcLeadIn, LineArcLeadIn, CleanHoleLeadIn, and
LineLineLeadIn Generate() methods, plus tests covering all subclasses.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-30 13:16:06 -04:00
parent f903cbe18a
commit 82de512f44
6 changed files with 98 additions and 8 deletions

View File

@@ -19,7 +19,7 @@ namespace OpenNest.CNC.CuttingStrategy
return new List<ICode>
{
new RapidMove(piercePoint),
new ArcMove(contourStartPoint, arcCenter, winding)
new ArcMove(contourStartPoint, arcCenter, winding) { Layer = LayerType.Leadin }
};
}

View File

@@ -27,8 +27,8 @@ namespace OpenNest.CNC.CuttingStrategy
return new List<ICode>
{
new RapidMove(piercePoint),
new LinearMove(arcStart),
new ArcMove(contourStartPoint, arcCenter, winding)
new LinearMove(arcStart) { Layer = LayerType.Leadin },
new ArcMove(contourStartPoint, arcCenter, winding) { Layer = LayerType.Leadin }
};
}

View File

@@ -27,8 +27,8 @@ namespace OpenNest.CNC.CuttingStrategy
return new List<ICode>
{
new RapidMove(piercePoint),
new LinearMove(arcStart),
new ArcMove(contourStartPoint, arcCenter, winding)
new LinearMove(arcStart) { Layer = LayerType.Leadin },
new ArcMove(contourStartPoint, arcCenter, winding) { Layer = LayerType.Leadin }
};
}

View File

@@ -17,7 +17,7 @@ namespace OpenNest.CNC.CuttingStrategy
return new List<ICode>
{
new RapidMove(piercePoint),
new LinearMove(contourStartPoint)
new LinearMove(contourStartPoint) { Layer = LayerType.Leadin }
};
}

View File

@@ -24,8 +24,8 @@ namespace OpenNest.CNC.CuttingStrategy
return new List<ICode>
{
new RapidMove(piercePoint),
new LinearMove(midPoint),
new LinearMove(contourStartPoint)
new LinearMove(midPoint) { Layer = LayerType.Leadin },
new LinearMove(contourStartPoint) { Layer = LayerType.Leadin }
};
}