style: apply CSharpier formatting to all C# sources
Repo-wide sweep with the pinned CSharpier 1.3.0 tool. Whitespace and line-wrapping only; OpenNest.Engine.Tests (109) and OpenNest.IO.Tests pass after reformat, full solution builds 0 errors. Added .csharpierignore so csproj/config XML keeps its existing layout (CSharpier's XML wrapping churns attributes with zero benefit). Formatting is now enforceable: dotnet csharpier check . passes.
This commit is contained in:
@@ -51,15 +51,17 @@ public class ApplySingleTests
|
||||
{
|
||||
Parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
}
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
},
|
||||
};
|
||||
|
||||
var clickPoint = new Vector(5, 0);
|
||||
var entity = new Line(new Vector(10, 0), new Vector(0, 0));
|
||||
var result = strategy.ApplySingle(pgm, clickPoint, entity, ContourType.External);
|
||||
|
||||
var hasLeadin = result.Program.Codes.OfType<LinearMove>().Any(m => m.Layer == LayerType.Leadin);
|
||||
var hasLeadin = result
|
||||
.Program.Codes.OfType<LinearMove>()
|
||||
.Any(m => m.Layer == LayerType.Leadin);
|
||||
Assert.True(hasLeadin);
|
||||
}
|
||||
|
||||
@@ -71,8 +73,8 @@ public class ApplySingleTests
|
||||
{
|
||||
Parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
}
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
},
|
||||
};
|
||||
|
||||
var clickPoint = new Vector(5, 0);
|
||||
@@ -82,7 +84,8 @@ public class ApplySingleTests
|
||||
// Convert back to absolute to check positions
|
||||
result.Program.Mode = Mode.Absolute;
|
||||
|
||||
var firstLinear = result.Program.Codes.OfType<LinearMove>()
|
||||
var firstLinear = result
|
||||
.Program.Codes.OfType<LinearMove>()
|
||||
.First(m => m.Layer == LayerType.Leadin);
|
||||
Assert.Equal(clickPoint.X, firstLinear.EndPoint.X, 4);
|
||||
Assert.Equal(clickPoint.Y, firstLinear.EndPoint.Y, 4);
|
||||
@@ -96,8 +99,8 @@ public class ApplySingleTests
|
||||
{
|
||||
Parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
}
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
},
|
||||
};
|
||||
|
||||
var clickPoint = new Vector(5, 0);
|
||||
@@ -116,8 +119,8 @@ public class ApplySingleTests
|
||||
Parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
InternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 }
|
||||
}
|
||||
InternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 },
|
||||
},
|
||||
};
|
||||
|
||||
var clickPoint = new Vector(10, 0);
|
||||
|
||||
@@ -12,7 +12,7 @@ public class CuttingParametersSerializerTests
|
||||
{
|
||||
AutoTabMinSize = 0.5,
|
||||
AutoTabMaxSize = 3.0,
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var json = CuttingParametersSerializer.Serialize(original);
|
||||
@@ -25,7 +25,8 @@ public class CuttingParametersSerializerTests
|
||||
[Fact]
|
||||
public void Deserialize_MissingAutoTabFields_DefaultsToZero()
|
||||
{
|
||||
var json = "{\"externalLeadIn\":{\"type\":\"None\"},\"externalLeadOut\":{\"type\":\"None\"},\"internalLeadIn\":{\"type\":\"None\"},\"internalLeadOut\":{\"type\":\"None\"},\"arcCircleLeadIn\":{\"type\":\"None\"},\"arcCircleLeadOut\":{\"type\":\"None\"},\"tabsEnabled\":false,\"tabWidth\":0.25,\"pierceClearance\":0.0625}";
|
||||
var json =
|
||||
"{\"externalLeadIn\":{\"type\":\"None\"},\"externalLeadOut\":{\"type\":\"None\"},\"internalLeadIn\":{\"type\":\"None\"},\"internalLeadOut\":{\"type\":\"None\"},\"arcCircleLeadIn\":{\"type\":\"None\"},\"arcCircleLeadOut\":{\"type\":\"None\"},\"tabsEnabled\":false,\"tabWidth\":0.25,\"pierceClearance\":0.0625}";
|
||||
|
||||
var restored = CuttingParametersSerializer.Deserialize(json);
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using System.Linq;
|
||||
using OpenNest.CNC;
|
||||
using OpenNest.CNC.CuttingStrategy;
|
||||
using OpenNest.Converters;
|
||||
using OpenNest.Geometry;
|
||||
using System.Linq;
|
||||
|
||||
namespace OpenNest.Tests.CuttingStrategy;
|
||||
|
||||
@@ -47,7 +47,12 @@ public class HoleSubProgramTests
|
||||
[Fact]
|
||||
public void SubProgramCall_ToString_IncludesOffsetAndRotation()
|
||||
{
|
||||
var call = new SubProgramCall { Id = 1000, Offset = new Vector(1.5, 2.5), Rotation = 30 };
|
||||
var call = new SubProgramCall
|
||||
{
|
||||
Id = 1000,
|
||||
Offset = new Vector(1.5, 2.5),
|
||||
Rotation = 30,
|
||||
};
|
||||
var str = call.ToString();
|
||||
Assert.Contains("P1000", str);
|
||||
Assert.Contains("X1.5", str);
|
||||
@@ -119,8 +124,8 @@ public class HoleSubProgramTests
|
||||
Parameters = new CuttingParameters
|
||||
{
|
||||
ArcCircleLeadIn = new LineLeadIn { Length = 0.125, ApproachAngle = 90 },
|
||||
ArcCircleLeadOut = new NoLeadOut()
|
||||
}
|
||||
ArcCircleLeadOut = new NoLeadOut(),
|
||||
},
|
||||
};
|
||||
|
||||
var result = strategy.Apply(pgm, new Vector(10, 10));
|
||||
@@ -163,8 +168,8 @@ public class HoleSubProgramTests
|
||||
RoundLeadInAngles = true,
|
||||
LeadInAngleIncrement = 5.0,
|
||||
ArcCircleLeadIn = new LineLeadIn { Length = 0.125, ApproachAngle = 90 },
|
||||
ArcCircleLeadOut = new NoLeadOut()
|
||||
}
|
||||
ArcCircleLeadOut = new NoLeadOut(),
|
||||
},
|
||||
};
|
||||
|
||||
var result = strategy.Apply(pgm, new Vector(10, 10));
|
||||
@@ -196,22 +201,30 @@ public class HoleSubProgramTests
|
||||
pgm.Codes.Add(new LinearMove(0, 0));
|
||||
// Hole 1 at (3, 3)
|
||||
pgm.Codes.Add(new RapidMove(holeCenter1.X + holeRadius, holeCenter1.Y));
|
||||
pgm.Codes.Add(new ArcMove(
|
||||
new Vector(holeCenter1.X + holeRadius, holeCenter1.Y),
|
||||
holeCenter1, RotationType.CW));
|
||||
pgm.Codes.Add(
|
||||
new ArcMove(
|
||||
new Vector(holeCenter1.X + holeRadius, holeCenter1.Y),
|
||||
holeCenter1,
|
||||
RotationType.CW
|
||||
)
|
||||
);
|
||||
// Hole 2 at (7, 5)
|
||||
pgm.Codes.Add(new RapidMove(holeCenter2.X + holeRadius, holeCenter2.Y));
|
||||
pgm.Codes.Add(new ArcMove(
|
||||
new Vector(holeCenter2.X + holeRadius, holeCenter2.Y),
|
||||
holeCenter2, RotationType.CW));
|
||||
pgm.Codes.Add(
|
||||
new ArcMove(
|
||||
new Vector(holeCenter2.X + holeRadius, holeCenter2.Y),
|
||||
holeCenter2,
|
||||
RotationType.CW
|
||||
)
|
||||
);
|
||||
|
||||
var strategy = new ContourCuttingStrategy
|
||||
{
|
||||
Parameters = new CuttingParameters
|
||||
{
|
||||
ArcCircleLeadIn = new LineLeadIn { Length = 0.125, ApproachAngle = 90 },
|
||||
ArcCircleLeadOut = new NoLeadOut()
|
||||
}
|
||||
ArcCircleLeadOut = new NoLeadOut(),
|
||||
},
|
||||
};
|
||||
|
||||
var result = strategy.Apply(pgm, new Vector(10, 10));
|
||||
@@ -247,13 +260,21 @@ public class HoleSubProgramTests
|
||||
pgm.Codes.Add(new LinearMove(0, 10));
|
||||
pgm.Codes.Add(new LinearMove(0, 0));
|
||||
pgm.Codes.Add(new RapidMove(holeCenter1.X + holeRadius, holeCenter1.Y));
|
||||
pgm.Codes.Add(new ArcMove(
|
||||
new Vector(holeCenter1.X + holeRadius, holeCenter1.Y),
|
||||
holeCenter1, RotationType.CW));
|
||||
pgm.Codes.Add(
|
||||
new ArcMove(
|
||||
new Vector(holeCenter1.X + holeRadius, holeCenter1.Y),
|
||||
holeCenter1,
|
||||
RotationType.CW
|
||||
)
|
||||
);
|
||||
pgm.Codes.Add(new RapidMove(holeCenter2.X + holeRadius, holeCenter2.Y));
|
||||
pgm.Codes.Add(new ArcMove(
|
||||
new Vector(holeCenter2.X + holeRadius, holeCenter2.Y),
|
||||
holeCenter2, RotationType.CW));
|
||||
pgm.Codes.Add(
|
||||
new ArcMove(
|
||||
new Vector(holeCenter2.X + holeRadius, holeCenter2.Y),
|
||||
holeCenter2,
|
||||
RotationType.CW
|
||||
)
|
||||
);
|
||||
|
||||
var drawing = new Drawing("TestPart") { Program = pgm };
|
||||
var part = new Part(drawing);
|
||||
@@ -265,7 +286,7 @@ public class HoleSubProgramTests
|
||||
ArcCircleLeadIn = new LineLeadIn { Length = 0.125, ApproachAngle = 90 },
|
||||
ArcCircleLeadOut = new NoLeadOut(),
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 },
|
||||
ExternalLeadOut = new NoLeadOut()
|
||||
ExternalLeadOut = new NoLeadOut(),
|
||||
};
|
||||
|
||||
part.ApplyLeadIns(parameters, new Vector(10, 10));
|
||||
@@ -289,14 +310,22 @@ public class HoleSubProgramTests
|
||||
// by the last hole's position.
|
||||
foreach (var line in lines)
|
||||
{
|
||||
Assert.True(line.StartPoint.X >= -1 && line.StartPoint.X <= 11,
|
||||
$"Perimeter line start X={line.StartPoint.X} is outside the 10x10 part bounds");
|
||||
Assert.True(line.StartPoint.Y >= -1 && line.StartPoint.Y <= 11,
|
||||
$"Perimeter line start Y={line.StartPoint.Y} is outside the 10x10 part bounds");
|
||||
Assert.True(line.EndPoint.X >= -1 && line.EndPoint.X <= 11,
|
||||
$"Perimeter line end X={line.EndPoint.X} is outside the 10x10 part bounds");
|
||||
Assert.True(line.EndPoint.Y >= -1 && line.EndPoint.Y <= 11,
|
||||
$"Perimeter line end Y={line.EndPoint.Y} is outside the 10x10 part bounds");
|
||||
Assert.True(
|
||||
line.StartPoint.X >= -1 && line.StartPoint.X <= 11,
|
||||
$"Perimeter line start X={line.StartPoint.X} is outside the 10x10 part bounds"
|
||||
);
|
||||
Assert.True(
|
||||
line.StartPoint.Y >= -1 && line.StartPoint.Y <= 11,
|
||||
$"Perimeter line start Y={line.StartPoint.Y} is outside the 10x10 part bounds"
|
||||
);
|
||||
Assert.True(
|
||||
line.EndPoint.X >= -1 && line.EndPoint.X <= 11,
|
||||
$"Perimeter line end X={line.EndPoint.X} is outside the 10x10 part bounds"
|
||||
);
|
||||
Assert.True(
|
||||
line.EndPoint.Y >= -1 && line.EndPoint.Y <= 11,
|
||||
$"Perimeter line end Y={line.EndPoint.Y} is outside the 10x10 part bounds"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,7 +337,14 @@ public class HoleSubProgramTests
|
||||
|
||||
var main = new Program(Mode.Absolute);
|
||||
main.SubPrograms[1] = sub;
|
||||
main.Codes.Add(new SubProgramCall { Id = 1, Program = sub, Offset = new Vector(10, 20) });
|
||||
main.Codes.Add(
|
||||
new SubProgramCall
|
||||
{
|
||||
Id = 1,
|
||||
Program = sub,
|
||||
Offset = new Vector(10, 20),
|
||||
}
|
||||
);
|
||||
|
||||
var box = main.BoundingBox();
|
||||
|
||||
@@ -325,7 +361,14 @@ public class HoleSubProgramTests
|
||||
|
||||
var main = new Program(Mode.Absolute);
|
||||
main.SubPrograms[1] = sub;
|
||||
main.Codes.Add(new SubProgramCall { Id = 1, Program = sub, Offset = new Vector(10, 0) });
|
||||
main.Codes.Add(
|
||||
new SubProgramCall
|
||||
{
|
||||
Id = 1,
|
||||
Program = sub,
|
||||
Offset = new Vector(10, 0),
|
||||
}
|
||||
);
|
||||
|
||||
// Rotate 90 degrees CCW around origin
|
||||
main.Rotate(System.Math.PI / 2);
|
||||
|
||||
@@ -28,7 +28,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(MakeSquarePartAt(30, 30));
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -50,7 +50,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(MakeSquarePartAt(30, 30));
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -66,7 +66,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(MakeSquarePartAt(10, 10));
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -86,13 +86,16 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(MakeSquarePartAt(10, 10));
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
assigner.Assign(plate);
|
||||
|
||||
var hasLeadin = plate.Parts[0].Program.Codes.OfType<LinearMove>().Any(m => m.Layer == LayerType.Leadin);
|
||||
var hasLeadin = plate
|
||||
.Parts[0]
|
||||
.Program.Codes.OfType<LinearMove>()
|
||||
.Any(m => m.Layer == LayerType.Leadin);
|
||||
Assert.True(hasLeadin);
|
||||
}
|
||||
|
||||
@@ -108,7 +111,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(part);
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -129,7 +132,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(part);
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -152,7 +155,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(part);
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -175,7 +178,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(part);
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -204,7 +207,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(part);
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -213,10 +216,13 @@ public class LeadInAssignerTests
|
||||
// The lead-in program should produce geometry that contains the
|
||||
// original rotated shape (plus lead-in/out extensions)
|
||||
var leadInGeometry = OpenNest.Converters.ConvertProgram.ToGeometry(part.Program);
|
||||
var leadInNonRapid = leadInGeometry.Where(e =>
|
||||
e.Layer != SpecialLayers.Rapid &&
|
||||
e.Layer != SpecialLayers.Leadin &&
|
||||
e.Layer != SpecialLayers.Leadout).ToList();
|
||||
var leadInNonRapid = leadInGeometry
|
||||
.Where(e =>
|
||||
e.Layer != SpecialLayers.Rapid
|
||||
&& e.Layer != SpecialLayers.Leadin
|
||||
&& e.Layer != SpecialLayers.Leadout
|
||||
)
|
||||
.ToList();
|
||||
|
||||
// The bounding box of the cut geometry should be close to original
|
||||
var origBbox = GetEntityBounds(originalNonRapid);
|
||||
@@ -242,7 +248,7 @@ public class LeadInAssignerTests
|
||||
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -264,7 +270,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(part);
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -291,7 +297,7 @@ public class LeadInAssignerTests
|
||||
plate.Parts.Add(part);
|
||||
plate.CuttingParameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var assigner = new LeadInAssigner { Sequencer = new LeftSideSequencer() };
|
||||
@@ -329,8 +335,10 @@ public class LeadInAssignerTests
|
||||
|
||||
private static Box GetEntityBounds(List<OpenNest.Geometry.Entity> entities)
|
||||
{
|
||||
double minX = double.MaxValue, minY = double.MaxValue;
|
||||
double maxX = double.MinValue, maxY = double.MinValue;
|
||||
double minX = double.MaxValue,
|
||||
minY = double.MaxValue;
|
||||
double maxX = double.MinValue,
|
||||
maxY = double.MinValue;
|
||||
|
||||
foreach (var entity in entities)
|
||||
{
|
||||
@@ -344,11 +352,21 @@ public class LeadInAssignerTests
|
||||
return new Box(minX, minY, maxX - minX, maxY - minY);
|
||||
}
|
||||
|
||||
private static void UpdateBounds(Vector pt, ref double minX, ref double minY, ref double maxX, ref double maxY)
|
||||
private static void UpdateBounds(
|
||||
Vector pt,
|
||||
ref double minX,
|
||||
ref double minY,
|
||||
ref double maxX,
|
||||
ref double maxY
|
||||
)
|
||||
{
|
||||
if (pt.X < minX) minX = pt.X;
|
||||
if (pt.Y < minY) minY = pt.Y;
|
||||
if (pt.X > maxX) maxX = pt.X;
|
||||
if (pt.Y > maxY) maxY = pt.Y;
|
||||
if (pt.X < minX)
|
||||
minX = pt.X;
|
||||
if (pt.Y < minY)
|
||||
minY = pt.Y;
|
||||
if (pt.X > maxX)
|
||||
maxX = pt.X;
|
||||
if (pt.Y > maxY)
|
||||
maxY = pt.Y;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,12 @@ public class LeadInLayerTagTests
|
||||
[Fact]
|
||||
public void LineArcLeadIn_SetsLeadinLayerOnAllMoves()
|
||||
{
|
||||
var leadIn = new LineArcLeadIn { LineLength = 0.5, ArcRadius = 0.25, ApproachAngle = 135 };
|
||||
var leadIn = new LineArcLeadIn
|
||||
{
|
||||
LineLength = 0.5,
|
||||
ArcRadius = 0.25,
|
||||
ApproachAngle = 135,
|
||||
};
|
||||
var codes = leadIn.Generate(Point, Normal);
|
||||
Assert.All(codes.OfType<LinearMove>(), m => Assert.Equal(LayerType.Leadin, m.Layer));
|
||||
Assert.All(codes.OfType<ArcMove>(), m => Assert.Equal(LayerType.Leadin, m.Layer));
|
||||
@@ -39,7 +44,12 @@ public class LeadInLayerTagTests
|
||||
[Fact]
|
||||
public void CleanHoleLeadIn_SetsLeadinLayerOnAllMoves()
|
||||
{
|
||||
var leadIn = new CleanHoleLeadIn { LineLength = 0.5, ArcRadius = 0.25, Kerf = 0.05 };
|
||||
var leadIn = new CleanHoleLeadIn
|
||||
{
|
||||
LineLength = 0.5,
|
||||
ArcRadius = 0.25,
|
||||
Kerf = 0.05,
|
||||
};
|
||||
var codes = leadIn.Generate(Point, Normal);
|
||||
Assert.All(codes.OfType<LinearMove>(), m => Assert.Equal(LayerType.Leadin, m.Layer));
|
||||
Assert.All(codes.OfType<ArcMove>(), m => Assert.Equal(LayerType.Leadin, m.Layer));
|
||||
@@ -48,7 +58,13 @@ public class LeadInLayerTagTests
|
||||
[Fact]
|
||||
public void LineLineLeadIn_SetsLeadinLayerOnAllMoves()
|
||||
{
|
||||
var leadIn = new LineLineLeadIn { Length1 = 0.5, Length2 = 0.3, ApproachAngle1 = 90, ApproachAngle2 = 90 };
|
||||
var leadIn = new LineLineLeadIn
|
||||
{
|
||||
Length1 = 0.5,
|
||||
Length2 = 0.3,
|
||||
ApproachAngle1 = 90,
|
||||
ApproachAngle2 = 90,
|
||||
};
|
||||
var codes = leadIn.Generate(Point, Normal);
|
||||
Assert.All(codes.OfType<LinearMove>(), m => Assert.Equal(LayerType.Leadin, m.Layer));
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public class PartLeadInTests
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
InternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 }
|
||||
InternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
part.ApplyLeadIns(parameters, new Vector(-5, -5));
|
||||
@@ -40,7 +40,7 @@ public class PartLeadInTests
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
InternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 }
|
||||
InternalLeadIn = new LineLeadIn { Length = 0.25, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
part.ApplyLeadIns(parameters, new Vector(-5, -5));
|
||||
@@ -54,12 +54,14 @@ public class PartLeadInTests
|
||||
var part = MakeSquarePart();
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
part.ApplyLeadIns(parameters, new Vector(-5, -5));
|
||||
|
||||
var hasLeadin = part.Program.Codes.OfType<LinearMove>().Any(m => m.Layer == LayerType.Leadin);
|
||||
var hasLeadin = part
|
||||
.Program.Codes.OfType<LinearMove>()
|
||||
.Any(m => m.Layer == LayerType.Leadin);
|
||||
Assert.True(hasLeadin);
|
||||
}
|
||||
|
||||
@@ -70,7 +72,7 @@ public class PartLeadInTests
|
||||
var originalCodeCount = part.Program.Codes.Count;
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
part.ApplyLeadIns(parameters, new Vector(-5, -5));
|
||||
@@ -90,7 +92,7 @@ public class PartLeadInTests
|
||||
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
part.ApplyLeadIns(parameters, new Vector(-5, -5));
|
||||
@@ -108,7 +110,7 @@ public class PartLeadInTests
|
||||
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
part.ApplyLeadIns(parameters, new Vector(-5, -5));
|
||||
@@ -131,7 +133,7 @@ public class PartLeadInTests
|
||||
var part = MakeSquarePart();
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var entity = new Line(new Vector(10, 0), new Vector(0, 0));
|
||||
@@ -146,13 +148,15 @@ public class PartLeadInTests
|
||||
var part = MakeSquarePart();
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var entity = new Line(new Vector(10, 0), new Vector(0, 0));
|
||||
part.ApplySingleLeadIn(parameters, new Vector(5, 0), entity, ContourType.External);
|
||||
|
||||
var hasLeadin = part.Program.Codes.OfType<LinearMove>().Any(m => m.Layer == LayerType.Leadin);
|
||||
var hasLeadin = part
|
||||
.Program.Codes.OfType<LinearMove>()
|
||||
.Any(m => m.Layer == LayerType.Leadin);
|
||||
Assert.True(hasLeadin);
|
||||
}
|
||||
|
||||
@@ -163,7 +167,7 @@ public class PartLeadInTests
|
||||
var originalCodeCount = part.Program.Codes.Count;
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
var entity = new Line(new Vector(10, 0), new Vector(0, 0));
|
||||
@@ -183,7 +187,7 @@ public class PartLeadInTests
|
||||
|
||||
var parameters = new CuttingParameters
|
||||
{
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 }
|
||||
ExternalLeadIn = new LineLeadIn { Length = 0.5, ApproachAngle = 90 },
|
||||
};
|
||||
|
||||
// After rotation, the edges change. Use a point on the rotated bottom edge.
|
||||
|
||||
Reference in New Issue
Block a user