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:
@@ -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
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|||||||
444
OpenNest/Forms/NestProgressForm.Designer.cs
generated
444
OpenNest/Forms/NestProgressForm.Designer.cs
generated
@@ -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;
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<root>
|
<root>
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 2.0
|
Version 2.0
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
The primary goals of this format is to allow a simple XML format
|
||||||
that is mostly human readable. The generation and parsing of the
|
that is mostly human readable. The generation and parsing of the
|
||||||
various data types are done through the TypeConverter classes
|
various data types are done through the TypeConverter classes
|
||||||
associated with the data types.
|
associated with the data types.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
... ado.net/XML headers & schema ...
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
<resheader name="version">2.0</resheader>
|
<resheader name="version">2.0</resheader>
|
||||||
@@ -26,36 +26,36 @@
|
|||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
<comment>This is a comment</comment>
|
<comment>This is a comment</comment>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
There are any number of "resheader" rows that contain simple
|
||||||
name/value pairs.
|
name/value pairs.
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
Each data row contains a name, and value. The row also contains a
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
text/value conversion through the TypeConverter architecture.
|
text/value conversion through the TypeConverter architecture.
|
||||||
Classes that don't support this are serialized and stored with the
|
Classes that don't support this are serialized and stored with the
|
||||||
mimetype set.
|
mimetype set.
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
The mimetype is used for serialized objects, and tells the
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
read any of the formats listed below.
|
read any of the formats listed below.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
value : The object must be serialized into a byte array
|
value : The object must be serialized into a byte array
|
||||||
: using a System.ComponentModel.TypeConverter
|
: using a System.ComponentModel.TypeConverter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|||||||
Reference in New Issue
Block a user