diff --git a/OpenNest.Core/Shapes/RectangleShape.cs b/OpenNest.Core/Shapes/RectangleShape.cs index c56ec56..dbe62ea 100644 --- a/OpenNest.Core/Shapes/RectangleShape.cs +++ b/OpenNest.Core/Shapes/RectangleShape.cs @@ -5,17 +5,17 @@ namespace OpenNest.Shapes { public class RectangleShape : ShapeDefinition { + public double Length { get; set; } public double Width { get; set; } - public double Height { get; set; } public override Drawing GetDrawing() { var entities = new List { - new Line(0, 0, Width, 0), - new Line(Width, 0, Width, Height), - new Line(Width, Height, 0, Height), - new Line(0, Height, 0, 0) + new Line(0, 0, Length, 0), + new Line(Length, 0, Length, Width), + new Line(Length, Width, 0, Width), + new Line(0, Width, 0, 0) }; return CreateDrawing(entities); diff --git a/OpenNest.Core/Shapes/RoundedRectangleShape.cs b/OpenNest.Core/Shapes/RoundedRectangleShape.cs index dcc5726..6bc7d30 100644 --- a/OpenNest.Core/Shapes/RoundedRectangleShape.cs +++ b/OpenNest.Core/Shapes/RoundedRectangleShape.cs @@ -6,8 +6,8 @@ namespace OpenNest.Shapes { public class RoundedRectangleShape : ShapeDefinition { + public double Length { get; set; } public double Width { get; set; } - public double Height { get; set; } public double Radius { get; set; } public override Drawing GetDrawing() @@ -17,36 +17,36 @@ namespace OpenNest.Shapes if (r <= 0) { - entities.Add(new Line(0, 0, Width, 0)); - entities.Add(new Line(Width, 0, Width, Height)); - entities.Add(new Line(Width, Height, 0, Height)); - entities.Add(new Line(0, Height, 0, 0)); + entities.Add(new Line(0, 0, Length, 0)); + entities.Add(new Line(Length, 0, Length, Width)); + entities.Add(new Line(Length, Width, 0, Width)); + entities.Add(new Line(0, Width, 0, 0)); } else { // Bottom edge (left to right, above bottom-left arc to bottom-right arc) - entities.Add(new Line(r, 0, Width - r, 0)); + entities.Add(new Line(r, 0, Length - r, 0)); - // Bottom-right corner arc: center at (Width-r, r), from 270deg to 360deg - entities.Add(new Arc(Width - r, r, r, + // Bottom-right corner arc: center at (Length-r, r), from 270deg to 360deg + entities.Add(new Arc(Length - r, r, r, Angle.ToRadians(270), Angle.ToRadians(360))); // Right edge - entities.Add(new Line(Width, r, Width, Height - r)); + entities.Add(new Line(Length, r, Length, Width - r)); - // Top-right corner arc: center at (Width-r, Height-r), from 0deg to 90deg - entities.Add(new Arc(Width - r, Height - r, r, + // Top-right corner arc: center at (Length-r, Width-r), from 0deg to 90deg + entities.Add(new Arc(Length - r, Width - r, r, Angle.ToRadians(0), Angle.ToRadians(90))); // Top edge (right to left) - entities.Add(new Line(Width - r, Height, r, Height)); + entities.Add(new Line(Length - r, Width, r, Width)); - // Top-left corner arc: center at (r, Height-r), from 90deg to 180deg - entities.Add(new Arc(r, Height - r, r, + // Top-left corner arc: center at (r, Width-r), from 90deg to 180deg + entities.Add(new Arc(r, Width - r, r, Angle.ToRadians(90), Angle.ToRadians(180))); // Left edge - entities.Add(new Line(0, Height - r, 0, r)); + entities.Add(new Line(0, Width - r, 0, r)); // Bottom-left corner arc: center at (r, r), from 180deg to 270deg entities.Add(new Arc(r, r, r, diff --git a/OpenNest.Mcp/Tools/InputTools.cs b/OpenNest.Mcp/Tools/InputTools.cs index f5877ea..4bf5000 100644 --- a/OpenNest.Mcp/Tools/InputTools.cs +++ b/OpenNest.Mcp/Tools/InputTools.cs @@ -122,7 +122,7 @@ namespace OpenNest.Mcp.Tools [Description("Name for the drawing")] string name, [Description("Shape type: rectangle, circle, l_shape, t_shape, gcode")] string shape, [Description("Width of the shape (not used for circle or gcode)")] double width = 10, - [Description("Height of the shape (not used for circle or gcode)")] double height = 10, + [Description("Length of the shape (not used for circle or gcode)")] double length = 10, [Description("Radius for circle shape")] double radius = 5, [Description("G-code string (only used when shape is 'gcode')")] string gcode = null) { @@ -131,7 +131,7 @@ namespace OpenNest.Mcp.Tools switch (shape.ToLower()) { case "rectangle": - shapeDef = new RectangleShape { Name = name, Width = width, Height = height }; + shapeDef = new RectangleShape { Name = name, Width = width, Length = length }; break; case "circle": @@ -139,11 +139,11 @@ namespace OpenNest.Mcp.Tools break; case "l_shape": - shapeDef = new LShape { Name = name, Width = width, Height = height }; + shapeDef = new LShape { Name = name, Width = width, Height = length }; break; case "t_shape": - shapeDef = new TShape { Name = name, Width = width, Height = height }; + shapeDef = new TShape { Name = name, Width = width, Height = length }; break; case "gcode": diff --git a/OpenNest.Mcp/Tools/NestingTools.cs b/OpenNest.Mcp/Tools/NestingTools.cs index 78c0c8f..639e5ae 100644 --- a/OpenNest.Mcp/Tools/NestingTools.cs +++ b/OpenNest.Mcp/Tools/NestingTools.cs @@ -59,7 +59,7 @@ namespace OpenNest.Mcp.Tools [Description("X origin of the area")] double x, [Description("Y origin of the area")] double y, [Description("Width of the area")] double width, - [Description("Height of the area")] double height, + [Description("Length of the area")] double length, [Description("Maximum quantity to place (0 = unlimited)")] int quantity = 0) { var plate = _session.GetPlate(plateIndex); @@ -73,14 +73,14 @@ namespace OpenNest.Mcp.Tools var countBefore = plate.Parts.Count; var engine = NestEngineRegistry.Create(plate); var item = new NestItem { Drawing = drawing, Quantity = quantity }; - var area = new Box(x, y, width, height); + var area = new Box(x, y, width, length); var success = engine.Fill(item, area); var countAfter = plate.Parts.Count; var added = countAfter - countBefore; var sb = new StringBuilder(); - sb.AppendLine($"Fill area ({x:F1},{y:F1} {width:F1}x{height:F1}) on plate {plateIndex} with '{drawingName}': {(success ? "success" : "failed")}"); + sb.AppendLine($"Fill area ({x:F1},{y:F1} {width:F1}x{length:F1}) on plate {plateIndex} with '{drawingName}': {(success ? "success" : "failed")}"); sb.AppendLine($" Parts added: {added}"); sb.AppendLine($" Total parts: {countAfter}"); sb.AppendLine($" Utilization: {plate.Utilization():P1}"); diff --git a/OpenNest.Mcp/Tools/SetupTools.cs b/OpenNest.Mcp/Tools/SetupTools.cs index fa0bf71..53c1173 100644 --- a/OpenNest.Mcp/Tools/SetupTools.cs +++ b/OpenNest.Mcp/Tools/SetupTools.cs @@ -19,13 +19,13 @@ namespace OpenNest.Mcp.Tools [Description("Create a new plate with the given dimensions and spacing. Returns plate index and work area.")] public string CreatePlate( [Description("Plate width")] double width, - [Description("Plate height")] double height, + [Description("Plate length")] double length, [Description("Spacing between parts (default 0)")] double partSpacing = 0, [Description("Edge spacing on all sides (default 0)")] double edgeSpacing = 0, [Description("Quadrant 1-4 (default 1). 1=TopRight, 2=TopLeft, 3=BottomLeft, 4=BottomRight")] int quadrant = 1, [Description("Material name (optional)")] string material = null) { - var plate = new Plate(width, height); + var plate = new Plate(width, length); plate.PartSpacing = partSpacing; plate.EdgeSpacing = new Spacing(edgeSpacing, edgeSpacing); plate.Quadrant = quadrant; diff --git a/OpenNest.Tests/Shapes/RectangleShapeTests.cs b/OpenNest.Tests/Shapes/RectangleShapeTests.cs index bdfa64c..1d9168a 100644 --- a/OpenNest.Tests/Shapes/RectangleShapeTests.cs +++ b/OpenNest.Tests/Shapes/RectangleShapeTests.cs @@ -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); diff --git a/OpenNest.Tests/Shapes/RoundedRectangleShapeTests.cs b/OpenNest.Tests/Shapes/RoundedRectangleShapeTests.cs index 3880b18..5b2b21b 100644 --- a/OpenNest.Tests/Shapes/RoundedRectangleShapeTests.cs +++ b/OpenNest.Tests/Shapes/RoundedRectangleShapeTests.cs @@ -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); diff --git a/OpenNest.Tests/Splitting/SplitIntegrationTest.cs b/OpenNest.Tests/Splitting/SplitIntegrationTest.cs index 55632af..44e2e90 100644 --- a/OpenNest.Tests/Splitting/SplitIntegrationTest.cs +++ b/OpenNest.Tests/Splitting/SplitIntegrationTest.cs @@ -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 - { - 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 - { - 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); diff --git a/OpenNest/Controls/EntityView.cs b/OpenNest/Controls/EntityView.cs index 2adf2a1..c717c3d 100644 --- a/OpenNest/Controls/EntityView.cs +++ b/OpenNest/Controls/EntityView.cs @@ -194,9 +194,9 @@ namespace OpenNest.Controls { DashPattern = new float[] { 8, 6 } }; - using var selectedPen = new Pen(Color.Cyan, 2.5f) + using var glowPen = new Pen(Color.OrangeRed, 2.0f) { - DashPattern = new float[] { 8, 6 } + DashPattern = new float[] { 6, 4 } }; for (var i = 0; i < Bends.Count; i++) @@ -204,7 +204,15 @@ namespace OpenNest.Controls var bend = Bends[i]; var pt1 = PointWorldToGraph(bend.StartPoint); var pt2 = PointWorldToGraph(bend.EndPoint); - g.DrawLine(i == SelectedBendIndex ? selectedPen : bendPen, pt1, pt2); + + if (i == SelectedBendIndex) + { + g.DrawLine(glowPen, pt1, pt2); + } + else + { + g.DrawLine(bendPen, pt1, pt2); + } } } diff --git a/OpenNest/Controls/PlateView.cs b/OpenNest/Controls/PlateView.cs index fcf585f..0971bd2 100644 --- a/OpenNest/Controls/PlateView.cs +++ b/OpenNest/Controls/PlateView.cs @@ -131,6 +131,8 @@ namespace OpenNest.Controls public bool DrawRapid { get; set; } + public bool DrawPiercePoints { get; set; } + public bool DrawBounds { get; set; } public bool DrawOffset { get; set; } @@ -617,6 +619,9 @@ namespace OpenNest.Controls if (DrawRapid) DrawRapids(g); + + if (DrawPiercePoints) + DrawAllPiercePoints(g); } private void DrawBendLines(Graphics g, Part part) @@ -813,6 +818,54 @@ namespace OpenNest.Controls } } + private void DrawAllPiercePoints(Graphics g) + { + using var brush = new SolidBrush(Color.Red); + using var pen = new Pen(Color.DarkRed, 1f); + + for (var i = 0; i < Plate.Parts.Count; ++i) + { + var part = Plate.Parts[i]; + var pgm = part.Program; + var pos = part.Location; + DrawProgramPiercePoints(g, pgm, ref pos, brush, pen); + } + } + + private void DrawProgramPiercePoints(Graphics g, Program pgm, ref Vector pos, Brush brush, Pen pen) + { + for (var i = 0; i < pgm.Length; ++i) + { + var code = pgm[i]; + + if (code.Type == CodeType.SubProgramCall) + { + var subpgm = (SubProgramCall)code; + if (subpgm.Program != null) + DrawProgramPiercePoints(g, subpgm.Program, ref pos, brush, pen); + } + else + { + var motion = code as Motion; + if (motion == null) continue; + + var endpt = pgm.Mode == Mode.Incremental + ? motion.EndPoint + pos + : motion.EndPoint; + + if (code.Type == CodeType.RapidMove) + { + var pt = PointWorldToGraph(endpt); + var radius = 2f; + g.FillEllipse(brush, pt.X - radius, pt.Y - radius, radius * 2, radius * 2); + g.DrawEllipse(pen, pt.X - radius, pt.Y - radius, radius * 2, radius * 2); + } + + pos = endpt; + } + } + } + private void DrawLine(Graphics g, Vector pt1, Vector pt2, Pen pen) { var point1 = PointWorldToGraph(pt1); diff --git a/OpenNest/Forms/EditNestForm.cs b/OpenNest/Forms/EditNestForm.cs index 26b5a99..df96031 100644 --- a/OpenNest/Forms/EditNestForm.cs +++ b/OpenNest/Forms/EditNestForm.cs @@ -473,6 +473,12 @@ namespace OpenNest.Forms PlateView.Invalidate(); } + public void TogglePiercePoints() + { + PlateView.DrawPiercePoints = !PlateView.DrawPiercePoints; + PlateView.Invalidate(); + } + public void ToggleDrawBounds() { PlateView.DrawBounds = !PlateView.DrawBounds; diff --git a/OpenNest/Forms/MainForm.Designer.cs b/OpenNest/Forms/MainForm.Designer.cs index 171b662..9a38ee0 100644 --- a/OpenNest/Forms/MainForm.Designer.cs +++ b/OpenNest/Forms/MainForm.Designer.cs @@ -48,6 +48,7 @@ mnuEditSelectAll = new System.Windows.Forms.ToolStripMenuItem(); mnuView = new System.Windows.Forms.ToolStripMenuItem(); mnuViewDrawRapids = new System.Windows.Forms.ToolStripMenuItem(); + mnuViewDrawPiercePoints = new System.Windows.Forms.ToolStripMenuItem(); mnuViewDrawBounds = new System.Windows.Forms.ToolStripMenuItem(); mnuViewDrawOffset = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator(); @@ -297,7 +298,7 @@ // // mnuView // - mnuView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuViewDrawRapids, mnuViewDrawBounds, mnuViewDrawOffset, toolStripMenuItem5, mnuViewZoomTo, mnuViewZoomIn, mnuViewZoomOut }); + mnuView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuViewDrawRapids, mnuViewDrawPiercePoints, mnuViewDrawBounds, mnuViewDrawOffset, toolStripMenuItem5, mnuViewZoomTo, mnuViewZoomIn, mnuViewZoomOut }); mnuView.Name = "mnuView"; mnuView.Size = new System.Drawing.Size(44, 20); mnuView.Text = "&View"; @@ -308,7 +309,15 @@ mnuViewDrawRapids.Size = new System.Drawing.Size(222, 22); mnuViewDrawRapids.Text = "Draw Rapids"; mnuViewDrawRapids.Click += ToggleDrawRapids_Click; - // + // + // mnuViewDrawPiercePoints + // + mnuViewDrawPiercePoints.CheckOnClick = true; + mnuViewDrawPiercePoints.Name = "mnuViewDrawPiercePoints"; + mnuViewDrawPiercePoints.Size = new System.Drawing.Size(222, 22); + mnuViewDrawPiercePoints.Text = "Draw Pierce Points"; + mnuViewDrawPiercePoints.Click += ToggleDrawPiercePoints_Click; + // // mnuViewDrawBounds // mnuViewDrawBounds.CheckOnClick = true; @@ -1131,6 +1140,7 @@ private System.Windows.Forms.ToolStripMenuItem mnuEditSelectAll; private System.Windows.Forms.ToolStripMenuItem mnuView; private System.Windows.Forms.ToolStripMenuItem mnuViewDrawRapids; + private System.Windows.Forms.ToolStripMenuItem mnuViewDrawPiercePoints; private System.Windows.Forms.ToolStripMenuItem mnuViewDrawBounds; private System.Windows.Forms.ToolStripMenuItem mnuViewDrawOffset; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem5; diff --git a/OpenNest/Forms/MainForm.cs b/OpenNest/Forms/MainForm.cs index 61babbc..61706dd 100644 --- a/OpenNest/Forms/MainForm.cs +++ b/OpenNest/Forms/MainForm.cs @@ -391,6 +391,7 @@ namespace OpenNest.Forms activeForm.PlateView.PartAdded += PlateView_PartAdded; activeForm.PlateView.PartRemoved += PlateView_PartRemoved; mnuViewDrawRapids.Checked = activeForm.PlateView.DrawRapid; + mnuViewDrawPiercePoints.Checked = activeForm.PlateView.DrawPiercePoints; mnuViewDrawBounds.Checked = activeForm.PlateView.DrawBounds; statusLabel1.Text = activeForm.PlateView.Status; } @@ -553,6 +554,13 @@ namespace OpenNest.Forms mnuViewDrawRapids.Checked = activeForm.PlateView.DrawRapid; } + private void ToggleDrawPiercePoints_Click(object sender, EventArgs e) + { + if (activeForm == null) return; + activeForm.TogglePiercePoints(); + mnuViewDrawPiercePoints.Checked = activeForm.PlateView.DrawPiercePoints; + } + private void ToggleDrawBounds_Click(object sender, EventArgs e) { if (activeForm == null) return; diff --git a/OpenNest/Forms/SplitDrawingForm.Designer.cs b/OpenNest/Forms/SplitDrawingForm.Designer.cs index 5e9110c..92ca736 100644 --- a/OpenNest/Forms/SplitDrawingForm.Designer.cs +++ b/OpenNest/Forms/SplitDrawingForm.Designer.cs @@ -29,9 +29,6 @@ namespace OpenNest.Forms private void InitializeComponent() { pnlSettings = new System.Windows.Forms.Panel(); - pnlButtons = new System.Windows.Forms.Panel(); - btnCancel = new System.Windows.Forms.Button(); - btnOK = new System.Windows.Forms.Button(); grpSpikeParams = new System.Windows.Forms.GroupBox(); nudSpikePairCount = new System.Windows.Forms.NumericUpDown(); lblSpikePairCount = new System.Windows.Forms.Label(); @@ -70,6 +67,9 @@ namespace OpenNest.Forms radByCount = new System.Windows.Forms.RadioButton(); radFitToPlate = new System.Windows.Forms.RadioButton(); radManual = new System.Windows.Forms.RadioButton(); + pnlButtons = new System.Windows.Forms.Panel(); + btnOK = new System.Windows.Forms.Button(); + btnCancel = new System.Windows.Forms.Button(); pnlPreview = new SplitPreview(); toolStrip = new System.Windows.Forms.ToolStrip(); btnAddLine = new System.Windows.Forms.ToolStripButton(); @@ -96,6 +96,7 @@ namespace OpenNest.Forms ((System.ComponentModel.ISupportInitialize)nudPlateHeight).BeginInit(); ((System.ComponentModel.ISupportInitialize)nudPlateWidth).BeginInit(); grpMethod.SuspendLayout(); + pnlButtons.SuspendLayout(); toolStrip.SuspendLayout(); statusStrip.SuspendLayout(); SuspendLayout(); @@ -116,38 +117,6 @@ namespace OpenNest.Forms pnlSettings.Padding = new System.Windows.Forms.Padding(6); pnlSettings.Size = new System.Drawing.Size(220, 611); pnlSettings.TabIndex = 2; - // - // pnlButtons - // - pnlButtons.Controls.Add(btnOK); - pnlButtons.Controls.Add(btnCancel); - pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom; - pnlButtons.Name = "pnlButtons"; - pnlButtons.Size = new System.Drawing.Size(208, 40); - pnlButtons.TabIndex = 8; - // - // btnCancel - // - btnCancel.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; - btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - btnCancel.Location = new System.Drawing.Point(110, 6); - btnCancel.Name = "btnCancel"; - btnCancel.Size = new System.Drawing.Size(80, 28); - btnCancel.TabIndex = 7; - btnCancel.Text = "Cancel"; - btnCancel.UseVisualStyleBackColor = true; - btnCancel.Click += OnCancel; - // - // btnOK - // - btnOK.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; - btnOK.Location = new System.Drawing.Point(20, 6); - btnOK.Name = "btnOK"; - btnOK.Size = new System.Drawing.Size(80, 28); - btnOK.TabIndex = 6; - btnOK.Text = "OK"; - btnOK.UseVisualStyleBackColor = true; - btnOK.Click += OnOK; // // grpSpikeParams // @@ -216,7 +185,7 @@ namespace OpenNest.Forms nudGrooveDepth.Name = "nudGrooveDepth"; nudGrooveDepth.Size = new System.Drawing.Size(88, 23); nudGrooveDepth.TabIndex = 1; - nudGrooveDepth.Value = new decimal(new int[] { 625, 0, 0, 196608 }); + nudGrooveDepth.Value = new decimal(new int[] { 125, 0, 0, 196608 }); nudGrooveDepth.ValueChanged += OnSpikeParamChanged; // // lblGrooveDepth @@ -568,6 +537,39 @@ namespace OpenNest.Forms radManual.Text = "Manual"; radManual.CheckedChanged += OnMethodChanged; // + // pnlButtons + // + pnlButtons.Controls.Add(btnOK); + pnlButtons.Controls.Add(btnCancel); + pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom; + pnlButtons.Location = new System.Drawing.Point(6, 637); + pnlButtons.Name = "pnlButtons"; + pnlButtons.Size = new System.Drawing.Size(191, 40); + pnlButtons.TabIndex = 8; + // + // btnOK + // + btnOK.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + btnOK.Location = new System.Drawing.Point(11, 6); + btnOK.Name = "btnOK"; + btnOK.Size = new System.Drawing.Size(80, 28); + btnOK.TabIndex = 6; + btnOK.Text = "OK"; + btnOK.UseVisualStyleBackColor = true; + btnOK.Click += OnOK; + // + // btnCancel + // + btnCancel.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + btnCancel.Location = new System.Drawing.Point(101, 6); + btnCancel.Name = "btnCancel"; + btnCancel.Size = new System.Drawing.Size(80, 28); + btnCancel.TabIndex = 7; + btnCancel.Text = "Cancel"; + btnCancel.UseVisualStyleBackColor = true; + btnCancel.Click += OnCancel; + // // pnlPreview // pnlPreview.BackColor = System.Drawing.Color.FromArgb(33, 40, 48); @@ -667,6 +669,7 @@ namespace OpenNest.Forms ((System.ComponentModel.ISupportInitialize)nudPlateWidth).EndInit(); grpMethod.ResumeLayout(false); grpMethod.PerformLayout(); + pnlButtons.ResumeLayout(false); toolStrip.ResumeLayout(false); toolStrip.PerformLayout(); statusStrip.ResumeLayout(false);