feat(ui): add nested dimensions and area to progress window

Show width x length and total part area on the "Nested:" row
in the nesting progress dialog, using the existing GetBoundingBox
extension to compute the extents.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 01:42:34 -04:00
parent 8e0c082876
commit 45509cfd3f
5 changed files with 295 additions and 212 deletions
+5
View File
@@ -723,12 +723,17 @@ namespace OpenNest
totalPartArea += part.BaseDrawing.Area; totalPartArea += part.BaseDrawing.Area;
} }
var bounds = best.GetBoundingBox();
progress.Report(new NestProgress progress.Report(new NestProgress
{ {
Phase = phase, Phase = phase,
PlateNumber = plateNumber, PlateNumber = plateNumber,
BestPartCount = score.Count, BestPartCount = score.Count,
BestDensity = score.Density, BestDensity = score.Density,
NestedWidth = bounds.Width,
NestedLength = bounds.Length,
NestedArea = totalPartArea,
UsableRemnantArea = workArea.Area() - totalPartArea, UsableRemnantArea = workArea.Area() - totalPartArea,
BestParts = clonedParts, BestParts = clonedParts,
Description = description Description = description
+3
View File
@@ -37,6 +37,9 @@ namespace OpenNest
public int PlateNumber { get; set; } public int PlateNumber { get; set; }
public int BestPartCount { get; set; } public int BestPartCount { get; set; }
public double BestDensity { get; set; } public double BestDensity { get; set; }
public double NestedWidth { get; set; }
public double NestedLength { get; set; }
public double NestedArea { get; set; }
public double UsableRemnantArea { get; set; } public double UsableRemnantArea { get; set; }
public List<Part> BestParts { get; set; } public List<Part> BestParts { get; set; }
public string Description { get; set; } public string Description { get; set; }
+223 -149
View File
@@ -28,209 +28,281 @@ namespace OpenNest.Forms
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.table = new System.Windows.Forms.TableLayoutPanel(); table = new System.Windows.Forms.TableLayoutPanel();
this.phaseLabel = new System.Windows.Forms.Label(); phaseLabel = new System.Windows.Forms.Label();
this.phaseValue = new System.Windows.Forms.Label(); phaseValue = new System.Windows.Forms.Label();
this.plateLabel = new System.Windows.Forms.Label(); plateLabel = new System.Windows.Forms.Label();
this.plateValue = new System.Windows.Forms.Label(); plateValue = new System.Windows.Forms.Label();
this.partsLabel = new System.Windows.Forms.Label(); partsLabel = new System.Windows.Forms.Label();
this.partsValue = new System.Windows.Forms.Label(); partsValue = new System.Windows.Forms.Label();
this.densityLabel = new System.Windows.Forms.Label(); densityLabel = new System.Windows.Forms.Label();
this.densityValue = new System.Windows.Forms.Label(); densityValue = new System.Windows.Forms.Label();
this.remnantLabel = new System.Windows.Forms.Label(); nestedAreaLabel = new System.Windows.Forms.Label();
this.remnantValue = new System.Windows.Forms.Label(); nestedAreaValue = new System.Windows.Forms.Label();
this.elapsedLabel = new System.Windows.Forms.Label(); remnantLabel = new System.Windows.Forms.Label();
this.elapsedValue = new System.Windows.Forms.Label(); remnantValue = new System.Windows.Forms.Label();
this.descriptionLabel = new System.Windows.Forms.Label(); elapsedLabel = new System.Windows.Forms.Label();
this.descriptionValue = new System.Windows.Forms.Label(); elapsedValue = new System.Windows.Forms.Label();
this.stopButton = new System.Windows.Forms.Button(); descriptionLabel = new System.Windows.Forms.Label();
this.buttonPanel = new System.Windows.Forms.FlowLayoutPanel(); descriptionValue = new System.Windows.Forms.Label();
this.table.SuspendLayout(); stopButton = new System.Windows.Forms.Button();
this.buttonPanel.SuspendLayout(); buttonPanel = new System.Windows.Forms.FlowLayoutPanel();
this.SuspendLayout(); table.SuspendLayout();
buttonPanel.SuspendLayout();
SuspendLayout();
// //
// table // table
// //
this.table.ColumnCount = 2; table.AutoSize = true;
this.table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F)); table.ColumnCount = 2;
this.table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.AutoSize)); table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 93F));
this.table.Controls.Add(this.phaseLabel, 0, 0); table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.table.Controls.Add(this.phaseValue, 1, 0); table.Controls.Add(phaseLabel, 0, 0);
this.table.Controls.Add(this.plateLabel, 0, 1); table.Controls.Add(phaseValue, 1, 0);
this.table.Controls.Add(this.plateValue, 1, 1); table.Controls.Add(plateLabel, 0, 1);
this.table.Controls.Add(this.partsLabel, 0, 2); table.Controls.Add(plateValue, 1, 1);
this.table.Controls.Add(this.partsValue, 1, 2); table.Controls.Add(partsLabel, 0, 2);
this.table.Controls.Add(this.densityLabel, 0, 3); table.Controls.Add(partsValue, 1, 2);
this.table.Controls.Add(this.densityValue, 1, 3); table.Controls.Add(densityLabel, 0, 3);
this.table.Controls.Add(this.remnantLabel, 0, 4); table.Controls.Add(densityValue, 1, 3);
this.table.Controls.Add(this.remnantValue, 1, 4); table.Controls.Add(nestedAreaLabel, 0, 4);
this.table.Controls.Add(this.elapsedLabel, 0, 5); table.Controls.Add(nestedAreaValue, 1, 4);
this.table.Controls.Add(this.elapsedValue, 1, 5); table.Controls.Add(remnantLabel, 0, 5);
this.table.Controls.Add(this.descriptionLabel, 0, 6); table.Controls.Add(remnantValue, 1, 5);
this.table.Controls.Add(this.descriptionValue, 1, 6); table.Controls.Add(elapsedLabel, 0, 6);
this.table.Dock = System.Windows.Forms.DockStyle.Top; table.Controls.Add(elapsedValue, 1, 6);
this.table.Location = new System.Drawing.Point(0, 0); table.Controls.Add(descriptionLabel, 0, 7);
this.table.Name = "table"; table.Controls.Add(descriptionValue, 1, 7);
this.table.Padding = new System.Windows.Forms.Padding(8); table.Dock = System.Windows.Forms.DockStyle.Top;
this.table.RowCount = 7; table.Location = new System.Drawing.Point(0, 45);
this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); table.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); table.Name = "table";
this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); table.Padding = new System.Windows.Forms.Padding(9, 9, 9, 9);
this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); table.RowCount = 8;
this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); table.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); table.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); table.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.table.AutoSize = true; table.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.table.Size = new System.Drawing.Size(264, 156); table.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.table.TabIndex = 0; table.RowStyles.Add(new System.Windows.Forms.RowStyle());
table.RowStyles.Add(new System.Windows.Forms.RowStyle());
table.RowStyles.Add(new System.Windows.Forms.RowStyle());
table.Size = new System.Drawing.Size(425, 218);
table.TabIndex = 0;
// //
// phaseLabel // phaseLabel
// //
this.phaseLabel.AutoSize = true; phaseLabel.AutoSize = true;
this.phaseLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); phaseLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
this.phaseLabel.Margin = new System.Windows.Forms.Padding(4); phaseLabel.Location = new System.Drawing.Point(14, 14);
this.phaseLabel.Name = "phaseLabel"; phaseLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.phaseLabel.Text = "Phase:"; phaseLabel.Name = "phaseLabel";
phaseLabel.Size = new System.Drawing.Size(46, 13);
phaseLabel.TabIndex = 0;
phaseLabel.Text = "Phase:";
// //
// phaseValue // phaseValue
// //
this.phaseValue.AutoSize = true; phaseValue.AutoSize = true;
this.phaseValue.Margin = new System.Windows.Forms.Padding(4); phaseValue.Location = new System.Drawing.Point(107, 14);
this.phaseValue.Name = "phaseValue"; phaseValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.phaseValue.Text = "\u2014"; phaseValue.Name = "phaseValue";
phaseValue.Size = new System.Drawing.Size(19, 15);
phaseValue.TabIndex = 1;
phaseValue.Text = "—";
// //
// plateLabel // plateLabel
// //
this.plateLabel.AutoSize = true; plateLabel.AutoSize = true;
this.plateLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); plateLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
this.plateLabel.Margin = new System.Windows.Forms.Padding(4); plateLabel.Location = new System.Drawing.Point(14, 39);
this.plateLabel.Name = "plateLabel"; plateLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.plateLabel.Text = "Plate:"; plateLabel.Name = "plateLabel";
plateLabel.Size = new System.Drawing.Size(40, 13);
plateLabel.TabIndex = 2;
plateLabel.Text = "Plate:";
// //
// plateValue // plateValue
// //
this.plateValue.AutoSize = true; plateValue.AutoSize = true;
this.plateValue.Margin = new System.Windows.Forms.Padding(4); plateValue.Location = new System.Drawing.Point(107, 39);
this.plateValue.Name = "plateValue"; plateValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.plateValue.Text = "\u2014"; plateValue.Name = "plateValue";
plateValue.Size = new System.Drawing.Size(19, 15);
plateValue.TabIndex = 3;
plateValue.Text = "—";
// //
// partsLabel // partsLabel
// //
this.partsLabel.AutoSize = true; partsLabel.AutoSize = true;
this.partsLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); partsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
this.partsLabel.Margin = new System.Windows.Forms.Padding(4); partsLabel.Location = new System.Drawing.Point(14, 64);
this.partsLabel.Name = "partsLabel"; partsLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.partsLabel.Text = "Parts:"; partsLabel.Name = "partsLabel";
partsLabel.Size = new System.Drawing.Size(40, 13);
partsLabel.TabIndex = 4;
partsLabel.Text = "Parts:";
// //
// partsValue // partsValue
// //
this.partsValue.AutoSize = true; partsValue.AutoSize = true;
this.partsValue.Margin = new System.Windows.Forms.Padding(4); partsValue.Location = new System.Drawing.Point(107, 64);
this.partsValue.Name = "partsValue"; partsValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.partsValue.Text = "\u2014"; partsValue.Name = "partsValue";
partsValue.Size = new System.Drawing.Size(19, 15);
partsValue.TabIndex = 5;
partsValue.Text = "—";
// //
// densityLabel // densityLabel
// //
this.densityLabel.AutoSize = true; densityLabel.AutoSize = true;
this.densityLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); densityLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
this.densityLabel.Margin = new System.Windows.Forms.Padding(4); densityLabel.Location = new System.Drawing.Point(14, 89);
this.densityLabel.Name = "densityLabel"; densityLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.densityLabel.Text = "Density:"; densityLabel.Name = "densityLabel";
densityLabel.Size = new System.Drawing.Size(53, 13);
densityLabel.TabIndex = 6;
densityLabel.Text = "Density:";
// //
// densityValue // densityValue
// //
this.densityValue.AutoSize = true; densityValue.AutoSize = true;
this.densityValue.Margin = new System.Windows.Forms.Padding(4); densityValue.Location = new System.Drawing.Point(107, 89);
this.densityValue.Name = "densityValue"; densityValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.densityValue.Text = "\u2014"; densityValue.Name = "densityValue";
densityValue.Size = new System.Drawing.Size(19, 15);
densityValue.TabIndex = 7;
densityValue.Text = "—";
//
// nestedAreaLabel
//
nestedAreaLabel.AutoSize = true;
nestedAreaLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
nestedAreaLabel.Location = new System.Drawing.Point(14, 114);
nestedAreaLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
nestedAreaLabel.Name = "nestedAreaLabel";
nestedAreaLabel.Size = new System.Drawing.Size(51, 13);
nestedAreaLabel.TabIndex = 8;
nestedAreaLabel.Text = "Nested:";
//
// nestedAreaValue
//
nestedAreaValue.AutoSize = true;
nestedAreaValue.Location = new System.Drawing.Point(107, 114);
nestedAreaValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
nestedAreaValue.Name = "nestedAreaValue";
nestedAreaValue.Size = new System.Drawing.Size(19, 15);
nestedAreaValue.TabIndex = 9;
nestedAreaValue.Text = "—";
// //
// remnantLabel // remnantLabel
// //
this.remnantLabel.AutoSize = true; remnantLabel.AutoSize = true;
this.remnantLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); remnantLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
this.remnantLabel.Margin = new System.Windows.Forms.Padding(4); remnantLabel.Location = new System.Drawing.Point(14, 139);
this.remnantLabel.Name = "remnantLabel"; remnantLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.remnantLabel.Text = "Unused:"; remnantLabel.Name = "remnantLabel";
remnantLabel.Size = new System.Drawing.Size(54, 13);
remnantLabel.TabIndex = 10;
remnantLabel.Text = "Unused:";
// //
// remnantValue // remnantValue
// //
this.remnantValue.AutoSize = true; remnantValue.AutoSize = true;
this.remnantValue.Margin = new System.Windows.Forms.Padding(4); remnantValue.Location = new System.Drawing.Point(107, 139);
this.remnantValue.Name = "remnantValue"; remnantValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.remnantValue.Text = "\u2014"; remnantValue.Name = "remnantValue";
remnantValue.Size = new System.Drawing.Size(19, 15);
remnantValue.TabIndex = 11;
remnantValue.Text = "—";
// //
// elapsedLabel // elapsedLabel
// //
this.elapsedLabel.AutoSize = true; elapsedLabel.AutoSize = true;
this.elapsedLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); elapsedLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
this.elapsedLabel.Margin = new System.Windows.Forms.Padding(4); elapsedLabel.Location = new System.Drawing.Point(14, 164);
this.elapsedLabel.Name = "elapsedLabel"; elapsedLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.elapsedLabel.Text = "Elapsed:"; elapsedLabel.Name = "elapsedLabel";
elapsedLabel.Size = new System.Drawing.Size(56, 13);
elapsedLabel.TabIndex = 12;
elapsedLabel.Text = "Elapsed:";
// //
// elapsedValue // elapsedValue
// //
this.elapsedValue.AutoSize = true; elapsedValue.AutoSize = true;
this.elapsedValue.Margin = new System.Windows.Forms.Padding(4); elapsedValue.Location = new System.Drawing.Point(107, 164);
this.elapsedValue.Name = "elapsedValue"; elapsedValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.elapsedValue.Text = "0:00"; elapsedValue.Name = "elapsedValue";
elapsedValue.Size = new System.Drawing.Size(28, 15);
elapsedValue.TabIndex = 13;
elapsedValue.Text = "0:00";
// //
// descriptionLabel // descriptionLabel
// //
this.descriptionLabel.AutoSize = true; descriptionLabel.AutoSize = true;
this.descriptionLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); descriptionLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
this.descriptionLabel.Margin = new System.Windows.Forms.Padding(4); descriptionLabel.Location = new System.Drawing.Point(14, 189);
this.descriptionLabel.Name = "descriptionLabel"; descriptionLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.descriptionLabel.Text = "Detail:"; descriptionLabel.Name = "descriptionLabel";
descriptionLabel.Size = new System.Drawing.Size(44, 13);
descriptionLabel.TabIndex = 14;
descriptionLabel.Text = "Detail:";
// //
// descriptionValue // descriptionValue
// //
this.descriptionValue.AutoSize = true; descriptionValue.AutoSize = true;
this.descriptionValue.Margin = new System.Windows.Forms.Padding(4); descriptionValue.Location = new System.Drawing.Point(107, 189);
this.descriptionValue.Name = "descriptionValue"; descriptionValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.descriptionValue.Text = "\u2014"; descriptionValue.Name = "descriptionValue";
descriptionValue.Size = new System.Drawing.Size(19, 15);
descriptionValue.TabIndex = 15;
descriptionValue.Text = "—";
// //
// stopButton // stopButton
// //
this.stopButton.Anchor = System.Windows.Forms.AnchorStyles.None; stopButton.Anchor = System.Windows.Forms.AnchorStyles.None;
this.stopButton.Margin = new System.Windows.Forms.Padding(0, 8, 0, 8); stopButton.Location = new System.Drawing.Point(314, 9);
this.stopButton.Name = "stopButton"; stopButton.Margin = new System.Windows.Forms.Padding(0, 9, 0, 9);
this.stopButton.Size = new System.Drawing.Size(80, 23); stopButton.Name = "stopButton";
this.stopButton.TabIndex = 0; stopButton.Size = new System.Drawing.Size(93, 27);
this.stopButton.Text = "Stop"; stopButton.TabIndex = 0;
this.stopButton.UseVisualStyleBackColor = true; stopButton.Text = "Stop";
this.stopButton.Click += new System.EventHandler(this.StopButton_Click); stopButton.UseVisualStyleBackColor = true;
stopButton.Click += StopButton_Click;
// //
// buttonPanel // buttonPanel
// //
this.buttonPanel.AutoSize = true; buttonPanel.AutoSize = true;
this.buttonPanel.Controls.Add(this.stopButton); buttonPanel.Controls.Add(stopButton);
this.buttonPanel.Dock = System.Windows.Forms.DockStyle.Top; buttonPanel.Dock = System.Windows.Forms.DockStyle.Top;
this.buttonPanel.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft; buttonPanel.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
this.buttonPanel.Name = "buttonPanel"; buttonPanel.Location = new System.Drawing.Point(0, 0);
this.buttonPanel.Padding = new System.Windows.Forms.Padding(8, 0, 8, 0); buttonPanel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.buttonPanel.TabIndex = 1; buttonPanel.Name = "buttonPanel";
buttonPanel.Padding = new System.Windows.Forms.Padding(9, 0, 9, 0);
buttonPanel.Size = new System.Drawing.Size(425, 45);
buttonPanel.TabIndex = 1;
// //
// NestProgressForm // NestProgressForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(264, 230); ClientSize = new System.Drawing.Size(425, 266);
this.Controls.Add(this.buttonPanel); Controls.Add(table);
this.Controls.Add(this.table); Controls.Add(buttonPanel);
this.Controls.SetChildIndex(this.table, 0); FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Controls.SetChildIndex(this.buttonPanel, 1); Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; MaximizeBox = false;
this.MaximizeBox = false; MinimizeBox = false;
this.MinimizeBox = false; Name = "NestProgressForm";
this.Name = "NestProgressForm"; ShowInTaskbar = false;
this.ShowInTaskbar = false; StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; Text = "Nesting Progress";
this.Text = "Nesting Progress"; table.ResumeLayout(false);
this.table.ResumeLayout(false); table.PerformLayout();
this.table.PerformLayout(); buttonPanel.ResumeLayout(false);
this.buttonPanel.ResumeLayout(false); ResumeLayout(false);
this.ResumeLayout(false); PerformLayout();
this.PerformLayout();
} }
#endregion #endregion
@@ -244,6 +316,8 @@ namespace OpenNest.Forms
private System.Windows.Forms.Label partsValue; private System.Windows.Forms.Label partsValue;
private System.Windows.Forms.Label densityLabel; private System.Windows.Forms.Label densityLabel;
private System.Windows.Forms.Label densityValue; private System.Windows.Forms.Label densityValue;
private System.Windows.Forms.Label nestedAreaLabel;
private System.Windows.Forms.Label nestedAreaValue;
private System.Windows.Forms.Label remnantLabel; private System.Windows.Forms.Label remnantLabel;
private System.Windows.Forms.Label remnantValue; private System.Windows.Forms.Label remnantValue;
private System.Windows.Forms.Label elapsedLabel; private System.Windows.Forms.Label elapsedLabel;
+1
View File
@@ -36,6 +36,7 @@ namespace OpenNest.Forms
plateValue.Text = progress.PlateNumber.ToString(); plateValue.Text = progress.PlateNumber.ToString();
partsValue.Text = progress.BestPartCount.ToString(); partsValue.Text = progress.BestPartCount.ToString();
densityValue.Text = progress.BestDensity.ToString("P1"); densityValue.Text = progress.BestDensity.ToString("P1");
nestedAreaValue.Text = $"{progress.NestedWidth:F1} x {progress.NestedLength:F1} ({progress.NestedArea:F1} sq in)";
remnantValue.Text = $"{progress.UsableRemnantArea:F1} sq in"; remnantValue.Text = $"{progress.UsableRemnantArea:F1} sq in";
if (!string.IsNullOrEmpty(progress.Description)) if (!string.IsNullOrEmpty(progress.Description))