diff --git a/OpenNest.Engine/NestEngine.cs b/OpenNest.Engine/NestEngine.cs index 7344925..840b93c 100644 --- a/OpenNest.Engine/NestEngine.cs +++ b/OpenNest.Engine/NestEngine.cs @@ -723,12 +723,17 @@ namespace OpenNest totalPartArea += part.BaseDrawing.Area; } + var bounds = best.GetBoundingBox(); + progress.Report(new NestProgress { Phase = phase, PlateNumber = plateNumber, BestPartCount = score.Count, BestDensity = score.Density, + NestedWidth = bounds.Width, + NestedLength = bounds.Length, + NestedArea = totalPartArea, UsableRemnantArea = workArea.Area() - totalPartArea, BestParts = clonedParts, Description = description diff --git a/OpenNest.Engine/NestProgress.cs b/OpenNest.Engine/NestProgress.cs index ba4172e..0f87f7d 100644 --- a/OpenNest.Engine/NestProgress.cs +++ b/OpenNest.Engine/NestProgress.cs @@ -37,6 +37,9 @@ namespace OpenNest public int PlateNumber { get; set; } public int BestPartCount { 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 List BestParts { get; set; } public string Description { get; set; } diff --git a/OpenNest/Forms/NestProgressForm.Designer.cs b/OpenNest/Forms/NestProgressForm.Designer.cs index c11090d..9bed575 100644 --- a/OpenNest/Forms/NestProgressForm.Designer.cs +++ b/OpenNest/Forms/NestProgressForm.Designer.cs @@ -28,209 +28,281 @@ namespace OpenNest.Forms /// private void InitializeComponent() { - this.table = new System.Windows.Forms.TableLayoutPanel(); - this.phaseLabel = new System.Windows.Forms.Label(); - this.phaseValue = new System.Windows.Forms.Label(); - this.plateLabel = new System.Windows.Forms.Label(); - this.plateValue = new System.Windows.Forms.Label(); - this.partsLabel = new System.Windows.Forms.Label(); - this.partsValue = new System.Windows.Forms.Label(); - this.densityLabel = new System.Windows.Forms.Label(); - this.densityValue = new System.Windows.Forms.Label(); - this.remnantLabel = new System.Windows.Forms.Label(); - this.remnantValue = new System.Windows.Forms.Label(); - this.elapsedLabel = new System.Windows.Forms.Label(); - this.elapsedValue = new System.Windows.Forms.Label(); - this.descriptionLabel = new System.Windows.Forms.Label(); - this.descriptionValue = new System.Windows.Forms.Label(); - this.stopButton = new System.Windows.Forms.Button(); - this.buttonPanel = new System.Windows.Forms.FlowLayoutPanel(); - this.table.SuspendLayout(); - this.buttonPanel.SuspendLayout(); - this.SuspendLayout(); - // + table = new System.Windows.Forms.TableLayoutPanel(); + phaseLabel = new System.Windows.Forms.Label(); + phaseValue = new System.Windows.Forms.Label(); + plateLabel = new System.Windows.Forms.Label(); + plateValue = new System.Windows.Forms.Label(); + partsLabel = new System.Windows.Forms.Label(); + partsValue = new System.Windows.Forms.Label(); + densityLabel = new System.Windows.Forms.Label(); + densityValue = new System.Windows.Forms.Label(); + nestedAreaLabel = new System.Windows.Forms.Label(); + nestedAreaValue = new System.Windows.Forms.Label(); + remnantLabel = new System.Windows.Forms.Label(); + remnantValue = new System.Windows.Forms.Label(); + elapsedLabel = new System.Windows.Forms.Label(); + elapsedValue = new System.Windows.Forms.Label(); + descriptionLabel = new System.Windows.Forms.Label(); + descriptionValue = new System.Windows.Forms.Label(); + stopButton = new System.Windows.Forms.Button(); + buttonPanel = new System.Windows.Forms.FlowLayoutPanel(); + table.SuspendLayout(); + buttonPanel.SuspendLayout(); + SuspendLayout(); + // // table - // - this.table.ColumnCount = 2; - this.table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F)); - this.table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.Controls.Add(this.phaseLabel, 0, 0); - this.table.Controls.Add(this.phaseValue, 1, 0); - this.table.Controls.Add(this.plateLabel, 0, 1); - this.table.Controls.Add(this.plateValue, 1, 1); - this.table.Controls.Add(this.partsLabel, 0, 2); - this.table.Controls.Add(this.partsValue, 1, 2); - this.table.Controls.Add(this.densityLabel, 0, 3); - this.table.Controls.Add(this.densityValue, 1, 3); - this.table.Controls.Add(this.remnantLabel, 0, 4); - this.table.Controls.Add(this.remnantValue, 1, 4); - this.table.Controls.Add(this.elapsedLabel, 0, 5); - this.table.Controls.Add(this.elapsedValue, 1, 5); - this.table.Controls.Add(this.descriptionLabel, 0, 6); - this.table.Controls.Add(this.descriptionValue, 1, 6); - this.table.Dock = System.Windows.Forms.DockStyle.Top; - this.table.Location = new System.Drawing.Point(0, 0); - this.table.Name = "table"; - this.table.Padding = new System.Windows.Forms.Padding(8); - this.table.RowCount = 7; - this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); - this.table.AutoSize = true; - this.table.Size = new System.Drawing.Size(264, 156); - this.table.TabIndex = 0; - // + // + table.AutoSize = true; + table.ColumnCount = 2; + table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 93F)); + table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + table.Controls.Add(phaseLabel, 0, 0); + table.Controls.Add(phaseValue, 1, 0); + table.Controls.Add(plateLabel, 0, 1); + table.Controls.Add(plateValue, 1, 1); + table.Controls.Add(partsLabel, 0, 2); + table.Controls.Add(partsValue, 1, 2); + table.Controls.Add(densityLabel, 0, 3); + table.Controls.Add(densityValue, 1, 3); + table.Controls.Add(nestedAreaLabel, 0, 4); + table.Controls.Add(nestedAreaValue, 1, 4); + table.Controls.Add(remnantLabel, 0, 5); + table.Controls.Add(remnantValue, 1, 5); + table.Controls.Add(elapsedLabel, 0, 6); + table.Controls.Add(elapsedValue, 1, 6); + table.Controls.Add(descriptionLabel, 0, 7); + table.Controls.Add(descriptionValue, 1, 7); + table.Dock = System.Windows.Forms.DockStyle.Top; + table.Location = new System.Drawing.Point(0, 45); + table.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + table.Name = "table"; + table.Padding = new System.Windows.Forms.Padding(9, 9, 9, 9); + table.RowCount = 8; + 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.RowStyles.Add(new System.Windows.Forms.RowStyle()); + 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.RowStyles.Add(new System.Windows.Forms.RowStyle()); + table.Size = new System.Drawing.Size(425, 218); + table.TabIndex = 0; + // // phaseLabel - // - this.phaseLabel.AutoSize = true; - this.phaseLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); - this.phaseLabel.Margin = new System.Windows.Forms.Padding(4); - this.phaseLabel.Name = "phaseLabel"; - this.phaseLabel.Text = "Phase:"; - // + // + phaseLabel.AutoSize = true; + phaseLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + phaseLabel.Location = new System.Drawing.Point(14, 14); + phaseLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + phaseLabel.Name = "phaseLabel"; + phaseLabel.Size = new System.Drawing.Size(46, 13); + phaseLabel.TabIndex = 0; + phaseLabel.Text = "Phase:"; + // // phaseValue - // - this.phaseValue.AutoSize = true; - this.phaseValue.Margin = new System.Windows.Forms.Padding(4); - this.phaseValue.Name = "phaseValue"; - this.phaseValue.Text = "\u2014"; - // + // + phaseValue.AutoSize = true; + phaseValue.Location = new System.Drawing.Point(107, 14); + phaseValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + phaseValue.Name = "phaseValue"; + phaseValue.Size = new System.Drawing.Size(19, 15); + phaseValue.TabIndex = 1; + phaseValue.Text = "—"; + // // plateLabel - // - this.plateLabel.AutoSize = true; - this.plateLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); - this.plateLabel.Margin = new System.Windows.Forms.Padding(4); - this.plateLabel.Name = "plateLabel"; - this.plateLabel.Text = "Plate:"; - // + // + plateLabel.AutoSize = true; + plateLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + plateLabel.Location = new System.Drawing.Point(14, 39); + plateLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + plateLabel.Name = "plateLabel"; + plateLabel.Size = new System.Drawing.Size(40, 13); + plateLabel.TabIndex = 2; + plateLabel.Text = "Plate:"; + // // plateValue - // - this.plateValue.AutoSize = true; - this.plateValue.Margin = new System.Windows.Forms.Padding(4); - this.plateValue.Name = "plateValue"; - this.plateValue.Text = "\u2014"; - // + // + plateValue.AutoSize = true; + plateValue.Location = new System.Drawing.Point(107, 39); + plateValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + plateValue.Name = "plateValue"; + plateValue.Size = new System.Drawing.Size(19, 15); + plateValue.TabIndex = 3; + plateValue.Text = "—"; + // // partsLabel - // - this.partsLabel.AutoSize = true; - this.partsLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); - this.partsLabel.Margin = new System.Windows.Forms.Padding(4); - this.partsLabel.Name = "partsLabel"; - this.partsLabel.Text = "Parts:"; - // + // + partsLabel.AutoSize = true; + partsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + partsLabel.Location = new System.Drawing.Point(14, 64); + partsLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + partsLabel.Name = "partsLabel"; + partsLabel.Size = new System.Drawing.Size(40, 13); + partsLabel.TabIndex = 4; + partsLabel.Text = "Parts:"; + // // partsValue - // - this.partsValue.AutoSize = true; - this.partsValue.Margin = new System.Windows.Forms.Padding(4); - this.partsValue.Name = "partsValue"; - this.partsValue.Text = "\u2014"; - // + // + partsValue.AutoSize = true; + partsValue.Location = new System.Drawing.Point(107, 64); + partsValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + partsValue.Name = "partsValue"; + partsValue.Size = new System.Drawing.Size(19, 15); + partsValue.TabIndex = 5; + partsValue.Text = "—"; + // // densityLabel - // - this.densityLabel.AutoSize = true; - this.densityLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); - this.densityLabel.Margin = new System.Windows.Forms.Padding(4); - this.densityLabel.Name = "densityLabel"; - this.densityLabel.Text = "Density:"; - // + // + densityLabel.AutoSize = true; + densityLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + densityLabel.Location = new System.Drawing.Point(14, 89); + densityLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + densityLabel.Name = "densityLabel"; + densityLabel.Size = new System.Drawing.Size(53, 13); + densityLabel.TabIndex = 6; + densityLabel.Text = "Density:"; + // // densityValue - // - this.densityValue.AutoSize = true; - this.densityValue.Margin = new System.Windows.Forms.Padding(4); - this.densityValue.Name = "densityValue"; - this.densityValue.Text = "\u2014"; - // + // + densityValue.AutoSize = true; + densityValue.Location = new System.Drawing.Point(107, 89); + densityValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + 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 - // - this.remnantLabel.AutoSize = true; - this.remnantLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); - this.remnantLabel.Margin = new System.Windows.Forms.Padding(4); - this.remnantLabel.Name = "remnantLabel"; - this.remnantLabel.Text = "Unused:"; - // + // + remnantLabel.AutoSize = true; + remnantLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + remnantLabel.Location = new System.Drawing.Point(14, 139); + remnantLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + remnantLabel.Name = "remnantLabel"; + remnantLabel.Size = new System.Drawing.Size(54, 13); + remnantLabel.TabIndex = 10; + remnantLabel.Text = "Unused:"; + // // remnantValue - // - this.remnantValue.AutoSize = true; - this.remnantValue.Margin = new System.Windows.Forms.Padding(4); - this.remnantValue.Name = "remnantValue"; - this.remnantValue.Text = "\u2014"; - // + // + remnantValue.AutoSize = true; + remnantValue.Location = new System.Drawing.Point(107, 139); + remnantValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + remnantValue.Name = "remnantValue"; + remnantValue.Size = new System.Drawing.Size(19, 15); + remnantValue.TabIndex = 11; + remnantValue.Text = "—"; + // // elapsedLabel - // - this.elapsedLabel.AutoSize = true; - this.elapsedLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); - this.elapsedLabel.Margin = new System.Windows.Forms.Padding(4); - this.elapsedLabel.Name = "elapsedLabel"; - this.elapsedLabel.Text = "Elapsed:"; - // + // + elapsedLabel.AutoSize = true; + elapsedLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + elapsedLabel.Location = new System.Drawing.Point(14, 164); + elapsedLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + elapsedLabel.Name = "elapsedLabel"; + elapsedLabel.Size = new System.Drawing.Size(56, 13); + elapsedLabel.TabIndex = 12; + elapsedLabel.Text = "Elapsed:"; + // // elapsedValue - // - this.elapsedValue.AutoSize = true; - this.elapsedValue.Margin = new System.Windows.Forms.Padding(4); - this.elapsedValue.Name = "elapsedValue"; - this.elapsedValue.Text = "0:00"; - // + // + elapsedValue.AutoSize = true; + elapsedValue.Location = new System.Drawing.Point(107, 164); + elapsedValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + elapsedValue.Name = "elapsedValue"; + elapsedValue.Size = new System.Drawing.Size(28, 15); + elapsedValue.TabIndex = 13; + elapsedValue.Text = "0:00"; + // // descriptionLabel - // - this.descriptionLabel.AutoSize = true; - this.descriptionLabel.Font = new System.Drawing.Font(System.Drawing.SystemFonts.DefaultFont, System.Drawing.FontStyle.Bold); - this.descriptionLabel.Margin = new System.Windows.Forms.Padding(4); - this.descriptionLabel.Name = "descriptionLabel"; - this.descriptionLabel.Text = "Detail:"; - // + // + descriptionLabel.AutoSize = true; + descriptionLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + descriptionLabel.Location = new System.Drawing.Point(14, 189); + descriptionLabel.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + descriptionLabel.Name = "descriptionLabel"; + descriptionLabel.Size = new System.Drawing.Size(44, 13); + descriptionLabel.TabIndex = 14; + descriptionLabel.Text = "Detail:"; + // // descriptionValue - // - this.descriptionValue.AutoSize = true; - this.descriptionValue.Margin = new System.Windows.Forms.Padding(4); - this.descriptionValue.Name = "descriptionValue"; - this.descriptionValue.Text = "\u2014"; - // + // + descriptionValue.AutoSize = true; + descriptionValue.Location = new System.Drawing.Point(107, 189); + descriptionValue.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); + descriptionValue.Name = "descriptionValue"; + descriptionValue.Size = new System.Drawing.Size(19, 15); + descriptionValue.TabIndex = 15; + descriptionValue.Text = "—"; + // // stopButton - // - this.stopButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.stopButton.Margin = new System.Windows.Forms.Padding(0, 8, 0, 8); - this.stopButton.Name = "stopButton"; - this.stopButton.Size = new System.Drawing.Size(80, 23); - this.stopButton.TabIndex = 0; - this.stopButton.Text = "Stop"; - this.stopButton.UseVisualStyleBackColor = true; - this.stopButton.Click += new System.EventHandler(this.StopButton_Click); - // + // + stopButton.Anchor = System.Windows.Forms.AnchorStyles.None; + stopButton.Location = new System.Drawing.Point(314, 9); + stopButton.Margin = new System.Windows.Forms.Padding(0, 9, 0, 9); + stopButton.Name = "stopButton"; + stopButton.Size = new System.Drawing.Size(93, 27); + stopButton.TabIndex = 0; + stopButton.Text = "Stop"; + stopButton.UseVisualStyleBackColor = true; + stopButton.Click += StopButton_Click; + // // buttonPanel - // - this.buttonPanel.AutoSize = true; - this.buttonPanel.Controls.Add(this.stopButton); - this.buttonPanel.Dock = System.Windows.Forms.DockStyle.Top; - this.buttonPanel.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft; - this.buttonPanel.Name = "buttonPanel"; - this.buttonPanel.Padding = new System.Windows.Forms.Padding(8, 0, 8, 0); - this.buttonPanel.TabIndex = 1; - // + // + buttonPanel.AutoSize = true; + buttonPanel.Controls.Add(stopButton); + buttonPanel.Dock = System.Windows.Forms.DockStyle.Top; + buttonPanel.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft; + buttonPanel.Location = new System.Drawing.Point(0, 0); + buttonPanel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + 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 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(264, 230); - this.Controls.Add(this.buttonPanel); - this.Controls.Add(this.table); - this.Controls.SetChildIndex(this.table, 0); - this.Controls.SetChildIndex(this.buttonPanel, 1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "NestProgressForm"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Nesting Progress"; - this.table.ResumeLayout(false); - this.table.PerformLayout(); - this.buttonPanel.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); + // + AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + ClientSize = new System.Drawing.Size(425, 266); + Controls.Add(table); + Controls.Add(buttonPanel); + FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + MaximizeBox = false; + MinimizeBox = false; + Name = "NestProgressForm"; + ShowInTaskbar = false; + StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + Text = "Nesting Progress"; + table.ResumeLayout(false); + table.PerformLayout(); + buttonPanel.ResumeLayout(false); + ResumeLayout(false); + PerformLayout(); } #endregion @@ -244,6 +316,8 @@ namespace OpenNest.Forms private System.Windows.Forms.Label partsValue; private System.Windows.Forms.Label densityLabel; 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 remnantValue; private System.Windows.Forms.Label elapsedLabel; diff --git a/OpenNest/Forms/NestProgressForm.cs b/OpenNest/Forms/NestProgressForm.cs index a9512c3..023e8fc 100644 --- a/OpenNest/Forms/NestProgressForm.cs +++ b/OpenNest/Forms/NestProgressForm.cs @@ -36,6 +36,7 @@ namespace OpenNest.Forms plateValue.Text = progress.PlateNumber.ToString(); partsValue.Text = progress.BestPartCount.ToString(); 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"; if (!string.IsNullOrEmpty(progress.Description)) diff --git a/OpenNest/Forms/NestProgressForm.resx b/OpenNest/Forms/NestProgressForm.resx index 1af7de1..8b2ff64 100644 --- a/OpenNest/Forms/NestProgressForm.resx +++ b/OpenNest/Forms/NestProgressForm.resx @@ -1,17 +1,17 @@  -