feat: add material library resolution, assist gas support, and UI fixes

- Add MaterialLibraryResolver for Cincinnati post processor to resolve
  G89 library files from material/thickness/gas configuration
- Add Nest.AssistGas property with serialization support in nest format
- Add etch library support with separate gas configuration
- Fix CutOff tests to match AwayFromOrigin default cut direction
- Fix plate info label not updating after ResizePlateToFitParts
- Add cutoff and remnants toolbar button icons

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-23 22:00:57 -04:00
parent 072915abf2
commit b970629a59
15 changed files with 327 additions and 29 deletions
+1
View File
@@ -458,6 +458,7 @@ namespace OpenNest.Forms
PlateView.ZoomToPlate();
PlateView.Refresh();
UpdatePlateList();
UpdatePlateHeader();
}
public void SelectAllParts()
+26 -3
View File
@@ -149,6 +149,8 @@
engineComboBox = new System.Windows.Forms.ToolStripComboBox();
btnAutoNest = new System.Windows.Forms.ToolStripButton();
btnShowRemnants = new System.Windows.Forms.ToolStripButton();
toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
btnCutOff = new System.Windows.Forms.ToolStripButton();
pEPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
openNestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
menuStrip1.SuspendLayout();
@@ -917,7 +919,7 @@
// toolStrip1
//
toolStrip1.AutoSize = false;
toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { btnNew, btnOpen, btnSave, btnSaveAs, toolStripSeparator1, btnZoomOut, btnZoomIn, btnZoomToFit, toolStripSeparator4, engineLabel, engineComboBox, btnAutoNest, btnShowRemnants });
toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { btnNew, btnOpen, btnSave, btnSaveAs, toolStripSeparator1, btnZoomOut, btnZoomIn, btnZoomToFit, toolStripSeparator4, engineLabel, engineComboBox, btnAutoNest, btnShowRemnants, toolStripSeparator5, btnCutOff });
toolStrip1.Location = new System.Drawing.Point(0, 24);
toolStrip1.Name = "toolStrip1";
toolStrip1.Size = new System.Drawing.Size(1281, 40);
@@ -1044,12 +1046,31 @@
//
// btnShowRemnants
//
btnShowRemnants.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
btnShowRemnants.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
btnShowRemnants.Image = Properties.Resources.remnants;
btnShowRemnants.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
btnShowRemnants.Name = "btnShowRemnants";
btnShowRemnants.Size = new System.Drawing.Size(64, 37);
btnShowRemnants.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
btnShowRemnants.Size = new System.Drawing.Size(38, 37);
btnShowRemnants.Text = "Remnants";
btnShowRemnants.Click += ShowRemnants_Click;
//
// toolStripSeparator5
//
toolStripSeparator5.Name = "toolStripSeparator5";
toolStripSeparator5.Size = new System.Drawing.Size(6, 40);
//
// btnCutOff
//
btnCutOff.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
btnCutOff.Image = Properties.Resources.cutoff;
btnCutOff.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
btnCutOff.Name = "btnCutOff";
btnCutOff.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
btnCutOff.Size = new System.Drawing.Size(38, 37);
btnCutOff.Text = "Sheet Cut-Off";
btnCutOff.Click += CutOff_Click;
//
// pEPToolStripMenuItem
//
pEPToolStripMenuItem.Name = "pEPToolStripMenuItem";
@@ -1213,6 +1234,8 @@
private System.Windows.Forms.ToolStripComboBox engineComboBox;
private System.Windows.Forms.ToolStripButton btnAutoNest;
private System.Windows.Forms.ToolStripButton btnShowRemnants;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripButton btnCutOff;
private System.Windows.Forms.ToolStripMenuItem mnuPlateCutOff;
}
}
+20
View File
@@ -80,6 +80,16 @@ namespace OpenNest.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cutoff {
get {
object obj = ResourceManager.GetObject("cutoff", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -160,6 +170,16 @@ namespace OpenNest.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap remnants {
get {
object obj = ResourceManager.GetObject("remnants", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
+6
View File
@@ -175,4 +175,10 @@
<data name="zoom_out" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zoom_out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cutoff" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cutoff.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="remnants" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\remnants.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB