feat(ui): wire Pattern Tile menu item and apply logic in MainForm

This commit is contained in:
2026-03-18 09:58:24 -04:00
parent d8373ab135
commit a1139efecb
2 changed files with 55 additions and 3 deletions

View File

@@ -61,6 +61,7 @@
mnuTools = new System.Windows.Forms.ToolStripMenuItem();
mnuToolsMeasureArea = new System.Windows.Forms.ToolStripMenuItem();
mnuToolsBestFitViewer = new System.Windows.Forms.ToolStripMenuItem();
mnuToolsPatternTile = new System.Windows.Forms.ToolStripMenuItem();
mnuToolsAlign = new System.Windows.Forms.ToolStripMenuItem();
mnuToolsAlignLeft = new System.Windows.Forms.ToolStripMenuItem();
mnuToolsAlignRight = new System.Windows.Forms.ToolStripMenuItem();
@@ -380,7 +381,7 @@
//
// mnuTools
//
mnuTools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuToolsMeasureArea, mnuToolsBestFitViewer, mnuToolsAlign, toolStripMenuItem14, mnuSetOffsetIncrement, mnuSetRotationIncrement, toolStripMenuItem15, mnuToolsOptions });
mnuTools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuToolsMeasureArea, mnuToolsBestFitViewer, mnuToolsPatternTile, mnuToolsAlign, toolStripMenuItem14, mnuSetOffsetIncrement, mnuSetRotationIncrement, toolStripMenuItem15, mnuToolsOptions });
mnuTools.Name = "mnuTools";
mnuTools.Size = new System.Drawing.Size(47, 20);
mnuTools.Text = "&Tools";
@@ -398,9 +399,16 @@
mnuToolsBestFitViewer.Size = new System.Drawing.Size(214, 22);
mnuToolsBestFitViewer.Text = "Best-Fit Viewer";
mnuToolsBestFitViewer.Click += BestFitViewer_Click;
//
//
// mnuToolsPatternTile
//
this.mnuToolsPatternTile.Name = "mnuToolsPatternTile";
this.mnuToolsPatternTile.Size = new System.Drawing.Size(214, 22);
this.mnuToolsPatternTile.Text = "Pattern Tile";
this.mnuToolsPatternTile.Click += PatternTile_Click;
//
// mnuToolsAlign
//
//
mnuToolsAlign.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { mnuToolsAlignLeft, mnuToolsAlignRight, mnuToolsAlignTop, mnuToolsAlignBottom, toolStripMenuItem11, mnuToolsAlignHorizontal, mnuToolsAlignVertically, toolStripMenuItem8, mnuToolsEvenlySpaceHorizontal, mnuToolsEvenlySpaceVertical });
mnuToolsAlign.Name = "mnuToolsAlign";
mnuToolsAlign.Size = new System.Drawing.Size(214, 22);
@@ -1169,6 +1177,7 @@
private System.Windows.Forms.ToolStripMenuItem autoSequenceAllPlatesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem mnuToolsMeasureArea;
private System.Windows.Forms.ToolStripMenuItem mnuToolsBestFitViewer;
private System.Windows.Forms.ToolStripMenuItem mnuToolsPatternTile;
private System.Windows.Forms.ToolStripButton btnSaveAs;
private System.Windows.Forms.ToolStripMenuItem centerPartsToolStripMenuItem;
private System.Windows.Forms.ToolStripStatusLabel gpuStatusLabel;

View File

@@ -596,6 +596,49 @@ namespace OpenNest.Forms
}
}
private void PatternTile_Click(object sender, EventArgs e)
{
if (activeForm == null)
return;
if (activeForm.Nest.Drawings.Count == 0)
{
MessageBox.Show("No drawings available.", "Pattern Tile",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
using (var form = new PatternTileForm(activeForm.Nest))
{
if (form.ShowDialog(this) != DialogResult.OK || form.Result == null)
return;
var result = form.Result;
if (result.Target == PatternTileTarget.CurrentPlate)
{
activeForm.PlateView.Plate.Parts.Clear();
foreach (var part in result.Parts)
activeForm.PlateView.Plate.Parts.Add(part);
activeForm.PlateView.ZoomToFit();
}
else
{
var plate = activeForm.Nest.CreatePlate();
plate.Size = result.PlateSize;
foreach (var part in result.Parts)
plate.Parts.Add(part);
activeForm.LoadLastPlate();
}
activeForm.Nest.UpdateDrawingQuantities();
}
}
private void SetOffsetIncrement_Click(object sender, EventArgs e)
{
if (activeForm == null) return;