refactor: move lead-in buttons from plates tab to menubar

Move Assign/Place/Remove Lead-ins from EditNestForm toolstrip to the
Plate menu in the main menubar. Add nest-wide Assign/Remove Lead-ins
to the Nest menu for applying to all plates at once.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-01 00:01:10 -04:00
parent 68c3a904e8
commit d6ffd8efc9
4 changed files with 146 additions and 44 deletions

View File

@@ -38,9 +38,6 @@
this.qtyColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.btnAssignLeadIns = new System.Windows.Forms.ToolStripButton();
this.btnPlaceLeadIn = new System.Windows.Forms.ToolStripButton();
this.btnRemoveLeadIns = new System.Windows.Forms.ToolStripButton();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.drawingListBox1 = new OpenNest.Controls.DrawingListBox();
this.toolStrip2 = new System.Windows.Forms.ToolStrip();
@@ -136,10 +133,7 @@
this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton1,
this.btnAssignLeadIns,
this.btnPlaceLeadIn,
this.btnRemoveLeadIns});
this.toolStripButton1});
this.toolStrip1.Location = new System.Drawing.Point(3, 3);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(227, 31);
@@ -158,33 +152,6 @@
this.toolStripButton1.Text = "Calculate Cut Time";
this.toolStripButton1.Click += new System.EventHandler(this.CalculateSelectedPlateCutTime_Click);
//
// btnAssignLeadIns
//
this.btnAssignLeadIns.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnAssignLeadIns.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnAssignLeadIns.Name = "btnAssignLeadIns";
this.btnAssignLeadIns.Size = new System.Drawing.Size(96, 28);
this.btnAssignLeadIns.Text = "Assign Lead-ins";
this.btnAssignLeadIns.Click += new System.EventHandler(this.AssignLeadIns_Click);
//
// btnPlaceLeadIn
//
this.btnPlaceLeadIn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnPlaceLeadIn.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnPlaceLeadIn.Name = "btnPlaceLeadIn";
this.btnPlaceLeadIn.Size = new System.Drawing.Size(90, 28);
this.btnPlaceLeadIn.Text = "Place Lead-in";
this.btnPlaceLeadIn.Click += new System.EventHandler(this.PlaceLeadIn_Click);
//
// btnRemoveLeadIns
//
this.btnRemoveLeadIns.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.btnRemoveLeadIns.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnRemoveLeadIns.Name = "btnRemoveLeadIns";
this.btnRemoveLeadIns.Size = new System.Drawing.Size(104, 28);
this.btnRemoveLeadIns.Text = "Remove Lead-ins";
this.btnRemoveLeadIns.Click += new System.EventHandler(this.RemoveLeadIns_Click);
//
// tabPage2
//
this.tabPage2.Controls.Add(this.drawingListBox1);
@@ -299,8 +266,5 @@
private System.Windows.Forms.ToolStripButton toolStripButton2;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton toolStripButton3;
private System.Windows.Forms.ToolStripButton btnAssignLeadIns;
private System.Windows.Forms.ToolStripButton btnPlaceLeadIn;
private System.Windows.Forms.ToolStripButton btnRemoveLeadIns;
}
}

View File

@@ -718,7 +718,7 @@ namespace OpenNest.Forms
CalculateCurrentPlateCutTime();
}
private void AssignLeadIns_Click(object sender, EventArgs e)
public void AssignLeadIns_Click(object sender, EventArgs e)
{
if (PlateView?.Plate == null)
return;
@@ -747,7 +747,7 @@ namespace OpenNest.Forms
PlateView.Invalidate();
}
private void RemoveLeadIns_Click(object sender, EventArgs e)
public void RemoveLeadIns_Click(object sender, EventArgs e)
{
if (PlateView?.Plate == null)
return;
@@ -779,7 +779,56 @@ namespace OpenNest.Forms
PlateView.Invalidate();
}
private void PlaceLeadIn_Click(object sender, EventArgs e)
public void AssignLeadInsAllPlates()
{
if (Nest == null)
return;
using var form = new CuttingParametersForm();
if (form.ShowDialog(this) != DialogResult.OK)
return;
var parameters = form.BuildParameters();
var assigner = new LeadInAssigner
{
Sequencer = new LeftSideSequencer()
};
foreach (var plate in Nest.Plates)
{
plate.CuttingParameters = parameters;
assigner.Assign(plate);
}
PlateView.Invalidate();
}
public void RemoveLeadInsAllPlates()
{
if (Nest == null)
return;
foreach (var plate in Nest.Plates)
{
foreach (var part in plate.Parts)
{
if (part.HasManualLeadIns)
part.RemoveLeadIns();
}
plate.CuttingParameters = null;
}
foreach (var lp in PlateView.Parts)
{
lp.IsDirty = true;
lp.Update();
}
PlateView.Invalidate();
}
public void PlaceLeadIn_Click(object sender, EventArgs e)
{
if (PlateView?.Plate == null)
return;

View File

@@ -98,6 +98,9 @@
mnuNestPost = new System.Windows.Forms.ToolStripMenuItem();
toolStripMenuItem19 = new System.Windows.Forms.ToolStripSeparator();
calculateCutTimeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripMenuItem22 = new System.Windows.Forms.ToolStripSeparator();
mnuNestAssignLeadIns = new System.Windows.Forms.ToolStripMenuItem();
mnuNestRemoveLeadIns = new System.Windows.Forms.ToolStripMenuItem();
mnuPlate = new System.Windows.Forms.ToolStripMenuItem();
mnuPlateEdit = new System.Windows.Forms.ToolStripMenuItem();
mnuPlateSetAsDefault = new System.Windows.Forms.ToolStripMenuItem();
@@ -120,6 +123,10 @@
calculateCutTimeToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
centerPartsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
mnuPlateCutOff = new System.Windows.Forms.ToolStripMenuItem();
toolStripMenuItem21 = new System.Windows.Forms.ToolStripSeparator();
mnuPlateAssignLeadIns = new System.Windows.Forms.ToolStripMenuItem();
mnuPlatePlaceLeadIn = new System.Windows.Forms.ToolStripMenuItem();
mnuPlateRemoveLeadIns = new System.Windows.Forms.ToolStripMenuItem();
mnuWindow = new System.Windows.Forms.ToolStripMenuItem();
mnuWindowCascade = new System.Windows.Forms.ToolStripMenuItem();
mnuWindowTileVertical = new System.Windows.Forms.ToolStripMenuItem();
@@ -552,7 +559,7 @@
//
// mnuNest
//
mnuNest.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuNestEdit, mnuNestImportDrawing, toolStripMenuItem7, mnuNestFirstPlate, mnuNestLastPlate, toolStripMenuItem6, mnuNestNextPlate, mnuNestPreviousPlate, toolStripMenuItem12, runAutoNestToolStripMenuItem, autoSequenceAllPlatesToolStripMenuItem, mnuNestRemoveEmptyPlates, mnuNestPost, toolStripMenuItem19, calculateCutTimeToolStripMenuItem });
mnuNest.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuNestEdit, mnuNestImportDrawing, toolStripMenuItem7, mnuNestFirstPlate, mnuNestLastPlate, toolStripMenuItem6, mnuNestNextPlate, mnuNestPreviousPlate, toolStripMenuItem12, runAutoNestToolStripMenuItem, autoSequenceAllPlatesToolStripMenuItem, mnuNestRemoveEmptyPlates, mnuNestPost, toolStripMenuItem19, calculateCutTimeToolStripMenuItem, toolStripMenuItem22, mnuNestAssignLeadIns, mnuNestRemoveLeadIns });
mnuNest.Name = "mnuNest";
mnuNest.Size = new System.Drawing.Size(43, 20);
mnuNest.Text = "&Nest";
@@ -659,10 +666,29 @@
calculateCutTimeToolStripMenuItem.Size = new System.Drawing.Size(205, 22);
calculateCutTimeToolStripMenuItem.Text = "Calculate Cut Time";
calculateCutTimeToolStripMenuItem.Click += CalculateNestCutTime_Click;
//
//
// toolStripMenuItem22
//
toolStripMenuItem22.Name = "toolStripMenuItem22";
toolStripMenuItem22.Size = new System.Drawing.Size(202, 6);
//
// mnuNestAssignLeadIns
//
mnuNestAssignLeadIns.Name = "mnuNestAssignLeadIns";
mnuNestAssignLeadIns.Size = new System.Drawing.Size(205, 22);
mnuNestAssignLeadIns.Text = "Assign Lead-ins (All Plates)";
mnuNestAssignLeadIns.Click += NestAssignLeadIns_Click;
//
// mnuNestRemoveLeadIns
//
mnuNestRemoveLeadIns.Name = "mnuNestRemoveLeadIns";
mnuNestRemoveLeadIns.Size = new System.Drawing.Size(205, 22);
mnuNestRemoveLeadIns.Text = "Remove Lead-ins (All Plates)";
mnuNestRemoveLeadIns.Click += NestRemoveLeadIns_Click;
//
// mnuPlate
//
mnuPlate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuPlateEdit, mnuPlateSetAsDefault, toolStripMenuItem18, mnuPlateAdd, mnuPlateRemove, toolStripMenuItem16, mnuPlateCutOff, mnuPlateRotate, mnuResizeToFitParts, toolStripMenuItem13, mnuPlateViewInCad, toolStripMenuItem20, mnuSequenceParts, calculateCutTimeToolStripMenuItem1, centerPartsToolStripMenuItem });
mnuPlate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuPlateEdit, mnuPlateSetAsDefault, toolStripMenuItem18, mnuPlateAdd, mnuPlateRemove, toolStripMenuItem16, mnuPlateCutOff, mnuPlateRotate, mnuResizeToFitParts, toolStripMenuItem13, mnuPlateViewInCad, toolStripMenuItem20, mnuSequenceParts, calculateCutTimeToolStripMenuItem1, centerPartsToolStripMenuItem, toolStripMenuItem21, mnuPlateAssignLeadIns, mnuPlatePlaceLeadIn, mnuPlateRemoveLeadIns });
mnuPlate.Name = "mnuPlate";
mnuPlate.Size = new System.Drawing.Size(45, 20);
mnuPlate.Text = "&Plate";
@@ -808,7 +834,33 @@
centerPartsToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
centerPartsToolStripMenuItem.Text = "Center Parts";
centerPartsToolStripMenuItem.Click += centerPartsToolStripMenuItem_Click;
//
//
// toolStripMenuItem21
//
toolStripMenuItem21.Name = "toolStripMenuItem21";
toolStripMenuItem21.Size = new System.Drawing.Size(174, 6);
//
// mnuPlateAssignLeadIns
//
mnuPlateAssignLeadIns.Name = "mnuPlateAssignLeadIns";
mnuPlateAssignLeadIns.Size = new System.Drawing.Size(177, 22);
mnuPlateAssignLeadIns.Text = "Assign Lead-ins";
mnuPlateAssignLeadIns.Click += PlateAssignLeadIns_Click;
//
// mnuPlatePlaceLeadIn
//
mnuPlatePlaceLeadIn.Name = "mnuPlatePlaceLeadIn";
mnuPlatePlaceLeadIn.Size = new System.Drawing.Size(177, 22);
mnuPlatePlaceLeadIn.Text = "Place Lead-in";
mnuPlatePlaceLeadIn.Click += PlatePlaceLeadIn_Click;
//
// mnuPlateRemoveLeadIns
//
mnuPlateRemoveLeadIns.Name = "mnuPlateRemoveLeadIns";
mnuPlateRemoveLeadIns.Size = new System.Drawing.Size(177, 22);
mnuPlateRemoveLeadIns.Text = "Remove Lead-ins";
mnuPlateRemoveLeadIns.Click += PlateRemoveLeadIns_Click;
//
// mnuWindow
//
mnuWindow.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuWindowCascade, mnuWindowTileVertical, mnuWindowTileHorizontal, toolStripMenuItem10, closeToolStripMenuItem, mnuCloseAll });
@@ -1257,5 +1309,12 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripButton btnCutOff;
private System.Windows.Forms.ToolStripMenuItem mnuPlateCutOff;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem21;
private System.Windows.Forms.ToolStripMenuItem mnuPlateAssignLeadIns;
private System.Windows.Forms.ToolStripMenuItem mnuPlatePlaceLeadIn;
private System.Windows.Forms.ToolStripMenuItem mnuPlateRemoveLeadIns;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem22;
private System.Windows.Forms.ToolStripMenuItem mnuNestAssignLeadIns;
private System.Windows.Forms.ToolStripMenuItem mnuNestRemoveLeadIns;
}
}

View File

@@ -1066,6 +1066,18 @@ namespace OpenNest.Forms
activeForm.CalculateNestCutTime();
}
private void NestAssignLeadIns_Click(object sender, EventArgs e)
{
if (activeForm == null) return;
activeForm.AssignLeadInsAllPlates();
}
private void NestRemoveLeadIns_Click(object sender, EventArgs e)
{
if (activeForm == null) return;
activeForm.RemoveLeadInsAllPlates();
}
#endregion Nest Menu Events
#region Plate Menu Events
@@ -1158,6 +1170,24 @@ namespace OpenNest.Forms
activeForm.PlateView.SetAction(typeof(ActionCutOff));
}
private void PlateAssignLeadIns_Click(object sender, EventArgs e)
{
if (activeForm == null) return;
activeForm.AssignLeadIns_Click(sender, e);
}
private void PlatePlaceLeadIn_Click(object sender, EventArgs e)
{
if (activeForm == null) return;
activeForm.PlaceLeadIn_Click(sender, e);
}
private void PlateRemoveLeadIns_Click(object sender, EventArgs e)
{
if (activeForm == null) return;
activeForm.RemoveLeadIns_Click(sender, e);
}
#endregion Plate Menu Events
#region Window Menu Events