feat: add pierce point visualization and rename shape dimensions to Length/Width
Add toggleable pierce point drawing to PlateView that shows small red filled circles at each rapid move endpoint (where cutting begins). Wire through View menu, EditNestForm toggle, and MainForm handler. Also rename RectangleShape/RoundedRectangleShape Width/Height to Length/Width for consistency with CNC conventions, update MCP tools and tests accordingly. Fix SplitDrawingForm designer layout ordering and EntityView bend line selection styling. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@ public class RectangleShapeTests
|
||||
[Fact]
|
||||
public void GetDrawing_ReturnsDrawingWithCorrectBoundingBox()
|
||||
{
|
||||
var shape = new RectangleShape { Width = 10, Height = 5 };
|
||||
var shape = new RectangleShape { Length = 10, Width = 5 };
|
||||
var drawing = shape.GetDrawing();
|
||||
|
||||
var bbox = drawing.Program.BoundingBox();
|
||||
@@ -18,7 +18,7 @@ public class RectangleShapeTests
|
||||
[Fact]
|
||||
public void GetDrawing_DefaultName_IsRectangle()
|
||||
{
|
||||
var shape = new RectangleShape { Width = 10, Height = 5 };
|
||||
var shape = new RectangleShape { Length = 10, Width = 5 };
|
||||
var drawing = shape.GetDrawing();
|
||||
|
||||
Assert.Equal("Rectangle", drawing.Name);
|
||||
@@ -27,7 +27,7 @@ public class RectangleShapeTests
|
||||
[Fact]
|
||||
public void GetDrawing_CustomName_IsUsed()
|
||||
{
|
||||
var shape = new RectangleShape { Name = "Plate1", Width = 10, Height = 5 };
|
||||
var shape = new RectangleShape { Name = "Plate1", Length = 10, Width = 5 };
|
||||
var drawing = shape.GetDrawing();
|
||||
|
||||
Assert.Equal("Plate1", drawing.Name);
|
||||
|
||||
@@ -7,7 +7,7 @@ public class RoundedRectangleShapeTests
|
||||
[Fact]
|
||||
public void GetDrawing_BoundingBoxMatchesDimensions()
|
||||
{
|
||||
var shape = new RoundedRectangleShape { Width = 20, Height = 10, Radius = 2 };
|
||||
var shape = new RoundedRectangleShape { Length = 20, Width = 10, Radius = 2 };
|
||||
var drawing = shape.GetDrawing();
|
||||
|
||||
var bbox = drawing.Program.BoundingBox();
|
||||
@@ -18,7 +18,7 @@ public class RoundedRectangleShapeTests
|
||||
[Fact]
|
||||
public void GetDrawing_AreaIsLessThanFullRectangle()
|
||||
{
|
||||
var shape = new RoundedRectangleShape { Width = 20, Height = 10, Radius = 2 };
|
||||
var shape = new RoundedRectangleShape { Length = 20, Width = 10, Radius = 2 };
|
||||
var drawing = shape.GetDrawing();
|
||||
|
||||
// Area should be less than 20*10=200 because corners are rounded
|
||||
@@ -30,7 +30,7 @@ public class RoundedRectangleShapeTests
|
||||
[Fact]
|
||||
public void GetDrawing_ZeroRadius_MatchesRectangleArea()
|
||||
{
|
||||
var shape = new RoundedRectangleShape { Width = 20, Height = 10, Radius = 0 };
|
||||
var shape = new RoundedRectangleShape { Length = 20, Width = 10, Radius = 0 };
|
||||
var drawing = shape.GetDrawing();
|
||||
|
||||
Assert.Equal(200, drawing.Area, 0.5);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using OpenNest.Converters;
|
||||
using OpenNest.Geometry;
|
||||
using OpenNest.Shapes;
|
||||
|
||||
namespace OpenNest.Tests.Splitting;
|
||||
|
||||
@@ -8,16 +9,7 @@ public class SplitIntegrationTest
|
||||
[Fact]
|
||||
public void Split_SpikeGroove_NoContinuityGaps()
|
||||
{
|
||||
// Create a rectangle
|
||||
var entities = new List<Entity>
|
||||
{
|
||||
new Line(new Vector(0, 0), new Vector(100, 0)),
|
||||
new Line(new Vector(100, 0), new Vector(100, 50)),
|
||||
new Line(new Vector(100, 50), new Vector(0, 50)),
|
||||
new Line(new Vector(0, 50), new Vector(0, 0))
|
||||
};
|
||||
var pgm = ConvertGeometry.ToProgram(entities);
|
||||
var drawing = new Drawing("TEST", pgm);
|
||||
var drawing = new RectangleShape { Name = "TEST", Length = 100, Width = 50 }.GetDrawing();
|
||||
|
||||
var sl = new SplitLine(50.0, CutOffAxis.Vertical);
|
||||
sl.FeaturePositions.Add(12.5);
|
||||
@@ -60,15 +52,7 @@ public class SplitIntegrationTest
|
||||
[Fact]
|
||||
public void Split_SpikeGroove_Horizontal_NoContinuityGaps()
|
||||
{
|
||||
var entities = new List<Entity>
|
||||
{
|
||||
new Line(new Vector(0, 0), new Vector(100, 0)),
|
||||
new Line(new Vector(100, 0), new Vector(100, 50)),
|
||||
new Line(new Vector(100, 50), new Vector(0, 50)),
|
||||
new Line(new Vector(0, 50), new Vector(0, 0))
|
||||
};
|
||||
var pgm = ConvertGeometry.ToProgram(entities);
|
||||
var drawing = new Drawing("TEST", pgm);
|
||||
var drawing = new RectangleShape { Name = "TEST", Length = 100, Width = 50 }.GetDrawing();
|
||||
|
||||
var sl = new SplitLine(25.0, CutOffAxis.Horizontal);
|
||||
sl.FeaturePositions.Add(25.0);
|
||||
|
||||
Reference in New Issue
Block a user