feat: add ActionLeadIn for manual lead-in placement on part contours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-30 13:47:22 -04:00
parent 21321740d6
commit 5307c5c85a
4 changed files with 366 additions and 4 deletions
+13 -1
View File
@@ -39,6 +39,7 @@
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.tabPage2 = new System.Windows.Forms.TabPage();
this.drawingListBox1 = new OpenNest.Controls.DrawingListBox();
this.toolStrip2 = new System.Windows.Forms.ToolStrip();
@@ -135,7 +136,8 @@
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton1,
this.btnAssignLeadIns});
this.btnAssignLeadIns,
this.btnPlaceLeadIn});
this.toolStrip1.Location = new System.Drawing.Point(3, 3);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(227, 31);
@@ -163,6 +165,15 @@
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);
//
// tabPage2
//
this.tabPage2.Controls.Add(this.drawingListBox1);
@@ -278,5 +289,6 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton toolStripButton3;
private System.Windows.Forms.ToolStripButton btnAssignLeadIns;
private System.Windows.Forms.ToolStripButton btnPlaceLeadIn;
}
}
+20
View File
@@ -738,6 +738,26 @@ namespace OpenNest.Forms
PlateView.Invalidate();
}
private void PlaceLeadIn_Click(object sender, EventArgs e)
{
if (PlateView?.Plate == null)
return;
var plate = PlateView.Plate;
// Ensure cutting parameters are configured
if (plate.CuttingParameters == null)
{
using var form = new CuttingParametersForm();
if (form.ShowDialog(this) != DialogResult.OK)
return;
plate.CuttingParameters = form.BuildParameters();
}
PlateView.SetAction(typeof(Actions.ActionLeadIn));
}
private void ImportDrawings_Click(object sender, EventArgs e)
{
Import();