diff --git a/Form1.Designer.cs b/Form1.Designer.cs new file mode 100644 index 0000000..661642a --- /dev/null +++ b/Form1.Designer.cs @@ -0,0 +1,549 @@ +namespace JLC_SMT_Helper +{ + partial class Form1 + { + /// + /// Variable nécessaire au concepteur. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Nettoyage des ressources utilisées. + /// + /// true si les ressources managées doivent être supprimées ; sinon, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Code généré par le Concepteur Windows Form + + /// + /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas + /// le contenu de cette méthode avec l'éditeur de code. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.button2 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.dataGridView2 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.bOMcsvToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.cPLcsvToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.importToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.lSCSPartsListFromBOMcsvToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.button1 = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.button3 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.AllowUserToResizeRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column1, + this.Column2, + this.Column3, + this.Column4, + this.Column5}); + this.dataGridView1.Location = new System.Drawing.Point(5, 84); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowHeadersVisible = false; + this.dataGridView1.Size = new System.Drawing.Size(680, 368); + this.dataGridView1.TabIndex = 7; + this.dataGridView1.CellValidated += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellValidated); + this.dataGridView1.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellValueChanged); + this.dataGridView1.Click += new System.EventHandler(this.dataGridView1_Click); + this.dataGridView1.Validated += new System.EventHandler(this.dataGridView1_Validated); + // + // Column1 + // + this.Column1.HeaderText = "Qty"; + this.Column1.Name = "Column1"; + this.Column1.Width = 30; + // + // Column2 + // + this.Column2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.Column2.HeaderText = "Designator"; + this.Column2.Name = "Column2"; + // + // Column3 + // + this.Column3.HeaderText = "Footprint"; + this.Column3.Name = "Column3"; + this.Column3.Width = 200; + // + // Column4 + // + this.Column4.HeaderText = "Comment"; + this.Column4.Name = "Column4"; + this.Column4.Width = 195; + // + // Column5 + // + this.Column5.HeaderText = "LSCS"; + this.Column5.Name = "Column5"; + // + // saveFileDialog1 + // + this.saveFileDialog1.DefaultExt = "csv"; + this.saveFileDialog1.Filter = "JLC CSV|*.csv"; + this.saveFileDialog1.Title = "Save JLC CSV"; + // + // openFileDialog1 + // + this.openFileDialog1.DefaultExt = "csv"; + this.openFileDialog1.Filter = "Eagle CSV|*.csv"; + this.openFileDialog1.Title = "Open Eagle CSV File"; + // + // button2 + // + this.button2.ForeColor = System.Drawing.Color.Red; + this.button2.Location = new System.Drawing.Point(245, 30); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(115, 23); + this.button2.TabIndex = 8; + this.button2.Text = "Remove Item"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button4 + // + this.button4.Location = new System.Drawing.Point(126, 30); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(115, 23); + this.button4.TabIndex = 9; + this.button4.Text = "Create Empty Line"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Visible = false; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.ForeColor = System.Drawing.SystemColors.ControlText; + this.button5.Location = new System.Drawing.Point(5, 30); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(57, 23); + this.button5.TabIndex = 10; + this.button5.Text = "Unpack"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // dataGridView2 + // + this.dataGridView2.AllowUserToAddRows = false; + this.dataGridView2.AllowUserToDeleteRows = false; + this.dataGridView2.AllowUserToResizeRows = false; + this.dataGridView2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn2, + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn1}); + this.dataGridView2.Location = new System.Drawing.Point(691, 84); + this.dataGridView2.Name = "dataGridView2"; + this.dataGridView2.RowHeadersVisible = false; + this.dataGridView2.Size = new System.Drawing.Size(348, 368); + this.dataGridView2.TabIndex = 12; + this.dataGridView2.Click += new System.EventHandler(this.dataGridView2_Click); + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dataGridViewTextBoxColumn2.HeaderText = "Designator"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.HeaderText = "Mid X"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.Width = 65; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.HeaderText = "Mid Y"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.Width = 65; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.HeaderText = "Layer"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.Width = 65; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.HeaderText = "Rotation"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.Width = 65; + // + // toolStrip1 + // + this.toolStrip1.BackColor = System.Drawing.SystemColors.ControlLight; + this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripDropDownButton1}); + this.toolStrip1.Location = new System.Drawing.Point(0, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(1046, 25); + this.toolStrip1.TabIndex = 15; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripDropDownButton1 + // + this.toolStripDropDownButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.toolStripDropDownButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem1, + this.saveAsToolStripMenuItem, + this.toolStripSeparator1, + this.importToolStripMenuItem}); + this.toolStripDropDownButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripDropDownButton1.Image"))); + this.toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripDropDownButton1.Name = "toolStripDropDownButton1"; + this.toolStripDropDownButton1.Size = new System.Drawing.Size(38, 22); + this.toolStripDropDownButton1.Text = "File"; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bOMcsvToolStripMenuItem, + this.cPLcsvToolStripMenuItem}); + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.toolStripMenuItem1.Text = "Open"; + // + // bOMcsvToolStripMenuItem + // + this.bOMcsvToolStripMenuItem.Name = "bOMcsvToolStripMenuItem"; + this.bOMcsvToolStripMenuItem.Size = new System.Drawing.Size(208, 22); + this.bOMcsvToolStripMenuItem.Text = "Parts List BOM (.csv)"; + this.bOMcsvToolStripMenuItem.Click += new System.EventHandler(this.bOMcsvToolStripMenuItem_Click); + // + // cPLcsvToolStripMenuItem + // + this.cPLcsvToolStripMenuItem.Name = "cPLcsvToolStripMenuItem"; + this.cPLcsvToolStripMenuItem.Size = new System.Drawing.Size(208, 22); + this.cPLcsvToolStripMenuItem.Text = "SMD Locations CPL (.csv)"; + this.cPLcsvToolStripMenuItem.Click += new System.EventHandler(this.cPLcsvToolStripMenuItem_Click); + // + // saveAsToolStripMenuItem + // + this.saveAsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem2, + this.toolStripMenuItem3}); + this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveAsToolStripMenuItem.Text = "Save As"; + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Enabled = false; + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(208, 22); + this.toolStripMenuItem2.Text = "Parts List BOM (.csv)"; + this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click); + // + // toolStripMenuItem3 + // + this.toolStripMenuItem3.Enabled = false; + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new System.Drawing.Size(208, 22); + this.toolStripMenuItem3.Text = "SMD Locations CPL (.csv)"; + this.toolStripMenuItem3.Click += new System.EventHandler(this.toolStripMenuItem3_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6); + // + // importToolStripMenuItem + // + this.importToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.lSCSPartsListFromBOMcsvToolStripMenuItem}); + this.importToolStripMenuItem.Name = "importToolStripMenuItem"; + this.importToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.importToolStripMenuItem.Text = "Import"; + // + // lSCSPartsListFromBOMcsvToolStripMenuItem + // + this.lSCSPartsListFromBOMcsvToolStripMenuItem.Enabled = false; + this.lSCSPartsListFromBOMcsvToolStripMenuItem.Name = "lSCSPartsListFromBOMcsvToolStripMenuItem"; + this.lSCSPartsListFromBOMcsvToolStripMenuItem.Size = new System.Drawing.Size(240, 22); + this.lSCSPartsListFromBOMcsvToolStripMenuItem.Text = "LSCS Parts List from BOM (.csv)"; + this.lSCSPartsListFromBOMcsvToolStripMenuItem.Click += new System.EventHandler(this.lSCSPartsListFromBOMcsvToolStripMenuItem_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 60); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(61, 13); + this.label1.TabIndex = 16; + this.label1.Text = "Designator:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(76, 60); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(21, 13); + this.label2.TabIndex = 17; + this.label2.Text = "Q1"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(705, 60); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(36, 13); + this.label3.TabIndex = 18; + this.label3.Text = "Layer:"; + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "TOP", + "BOTTOM"}); + this.comboBox1.Location = new System.Drawing.Point(747, 57); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(79, 21); + this.comboBox1.TabIndex = 19; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(691, 35); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(50, 13); + this.label4.TabIndex = 20; + this.label4.Text = "Rotation:"; + // + // comboBox2 + // + this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Items.AddRange(new object[] { + "0", + "90", + "180", + "270"}); + this.comboBox2.Location = new System.Drawing.Point(747, 32); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(79, 21); + this.comboBox2.TabIndex = 21; + this.comboBox2.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged); + // + // button1 + // + this.button1.ForeColor = System.Drawing.SystemColors.ControlText; + this.button1.Location = new System.Drawing.Point(65, 30); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(57, 23); + this.button1.TabIndex = 22; + this.button1.Text = "Repack"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.label5.AutoSize = true; + this.label5.BackColor = System.Drawing.SystemColors.AppWorkspace; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(252, 220); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(169, 48); + this.label5.TabIndex = 23; + this.label5.Text = "CLIC TO\r\nOPEN BOM FILE"; + this.label5.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.label5.Click += new System.EventHandler(this.label5_Click); + // + // label6 + // + this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label6.AutoSize = true; + this.label6.BackColor = System.Drawing.SystemColors.AppWorkspace; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.Location = new System.Drawing.Point(788, 220); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(161, 48); + this.label6.TabIndex = 24; + this.label6.Text = "CLIC TO\r\nOPEN CPL FILE"; + this.label6.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.label6.Click += new System.EventHandler(this.label6_Click); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(832, 30); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(115, 23); + this.button3.TabIndex = 25; + this.button3.Text = "Rotate Selected +90"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // button6 + // + this.button6.Location = new System.Drawing.Point(832, 56); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(115, 23); + this.button6.TabIndex = 26; + this.button6.Text = "Rotate Selected -90"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button7 + // + this.button7.Location = new System.Drawing.Point(953, 30); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(61, 23); + this.button7.TabIndex = 27; + this.button7.Text = "Move X"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button8 + // + this.button8.Location = new System.Drawing.Point(953, 55); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(61, 23); + this.button8.TabIndex = 28; + this.button8.Text = "Move Y"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1046, 460); + this.Controls.Add(this.button8); + this.Controls.Add(this.button7); + this.Controls.Add(this.button6); + this.Controls.Add(this.button3); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.button1); + this.Controls.Add(this.comboBox2); + this.Controls.Add(this.label4); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.toolStrip1); + this.Controls.Add(this.dataGridView2); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.button2); + this.Controls.Add(this.dataGridView1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Form1"; + this.Text = "JLC PCB - SMT Assembly Files Helper"; + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.SaveFileDialog saveFileDialog1; + private System.Windows.Forms.OpenFileDialog openFileDialog1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.DataGridView dataGridView2; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButton1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem bOMcsvToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem cPLcsvToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem importToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem lSCSPartsListFromBOMcsvToolStripMenuItem; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn Column3; + private System.Windows.Forms.DataGridViewTextBoxColumn Column4; + private System.Windows.Forms.DataGridViewTextBoxColumn Column5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + } +} + diff --git a/Form1.cs b/Form1.cs new file mode 100644 index 0000000..c449db8 --- /dev/null +++ b/Form1.cs @@ -0,0 +1,1016 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace JLC_SMT_Helper +{ + public partial class Form1 : Form + { + List EndLinesBOM = new List(); + List EndLinesCPL = new List(); + + bool Opened_BOM = false; + bool Opened_CPL = false; + + bool DoingPartsList = false; + bool AlreadyConverted = false; + string Filepath = ""; + string Filename = ""; + + + bool Loading = false; + + public Form1() + { + InitializeComponent(); + + label2.Text = ""; + } + + private void button1_Click(object sender, EventArgs e) + { + + } + + private void SpawnGridBOM() + { + if (EndLinesBOM.Count > 0) + { + Loading = true; + dataGridView1.Rows.Clear(); + + for (int i = 1; i < EndLinesBOM.Count; i++) + { + string[] SplittedCmds = EndLinesBOM[i].Split(';'); + dataGridView1.Rows.Add(SplittedCmds); + } + Loading = false; + } + } + + private void SpawnGridCPL() + { + if (EndLinesCPL.Count > 0) + { + dataGridView2.Rows.Clear(); + + for (int i = 1; i < EndLinesCPL.Count; i++) + { + string[] SplittedCmds = EndLinesCPL[i].Split(';'); + dataGridView2.Rows.Add(SplittedCmds); + } + } + } + + private void button2_Click(object sender, EventArgs e) + { + if (dataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + EndLinesBOM.RemoveAt(dataGridView1.SelectedCells[0].RowIndex + 1); + } + + SpawnGridBOM(); + } + + private void button4_Click(object sender, EventArgs e) + { + EndLinesBOM.Add(";;;;;"); + + int AddingAt = -1; + if (dataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + AddingAt = dataGridView1.SelectedCells[0].RowIndex + 1; + } + + if (AddingAt != -1) + { + MoveLine(true, AddingAt + 1); + /*List EndLinesBuf = new List(); + EndLinesBuf = EndLines; + + for (int i = AddingAt; i < EndLines.Count; i++) + { + if (i == AddingAt) EndLines[i] = EndLinesBuf[EndLinesBuf.Count - 1]; + else EndLines[i] = EndLinesBuf[i - 1]; + }*/ + } + + SpawnGridBOM(); + } + + private void button3_Click(object sender, EventArgs e) + { + //SaveFile(); + } + + private void MoveLine(bool BOM_File, int ToLine) + { + if (BOM_File) + { + string ThisLine = EndLinesBOM[EndLinesBOM.Count - 1]; + EndLinesBOM.RemoveAt(EndLinesBOM.Count - 1); + EndLinesBOM.Insert(ToLine, ThisLine); + } + else + { + string ThisLine = EndLinesCPL[EndLinesCPL.Count - 1]; + EndLinesCPL.RemoveAt(EndLinesCPL.Count - 1); + EndLinesCPL.Insert(ToLine, ThisLine); + } + } + + private void SaveFile(bool BOM_File) + { + List EndLinesBuffer = new List(); + + if (BOM_File) EndLinesBuffer = EndLinesBOM; + else EndLinesBuffer = EndLinesCPL; + + if (EndLinesBuffer.Count > 0) + { + string SaveString = ""; + + for (int i = 0; i < EndLinesBuffer.Count; i++) + { + string[] SplittedCmds = EndLinesBuffer[i].Split(';'); + + for (int i2 = 0; i2 < SplittedCmds.Length; i2++) + { + string RemadeWithComma = SplittedCmds[i2]; + if (RemadeWithComma.Contains(",")) RemadeWithComma = "\"" + RemadeWithComma + "\""; + + SaveString += RemadeWithComma; + if (i2 < SplittedCmds.Length - 1) SaveString += ","; + } + + if (i < EndLinesBuffer.Count - 1) SaveString += Environment.NewLine; + } + + if (BOM_File) + { + string SName = Filename; + SName = SName.Replace("_locations", ""); + SName = SName.Replace("_location", ""); + SName = SName.Replace("_Locations", ""); + SName = SName.Replace("_Location", ""); + SName = SName.Replace("_JLC_BOM", ""); + saveFileDialog1.FileName = SName + "_JLC_BOM.csv"; + } + else + { + string SName = Filename; + SName = SName.Replace("_parts", ""); + SName = SName.Replace("_part", ""); + SName = SName.Replace("_Parts", ""); + SName = SName.Replace("_part", ""); + SName = SName.Replace("_JLC_CPL", ""); + saveFileDialog1.FileName = SName + "_JLC_CPL.csv"; + } + + DialogResult result = saveFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + File.Create(saveFileDialog1.FileName).Dispose(); + File.WriteAllText(saveFileDialog1.FileName, SaveString); + } + } + } + + void LoadFile(bool BOM_File) + { + if (BOM_File) + { + openFileDialog1.Filter = "Eagle BOM File CSV|*.csv"; + openFileDialog1.DefaultExt = "csv"; + } + else + { + openFileDialog1.Filter = "Eagle Mount SMD File MNT or CSV|*.csv;*.mnt"; + openFileDialog1.DefaultExt = "csv"; + } + DialogResult result = openFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + Filepath = Path.GetDirectoryName(openFileDialog1.FileName); + Filename = Path.GetFileNameWithoutExtension(openFileDialog1.FileName); + string[] AllLines = File.ReadAllLines(openFileDialog1.FileName); + + this.Text = "JLC PCB - SMT Assembly Files Helper - " + Filename + ".csv"; + + if (AllLines.Length > 0) + { + Loading = true; + DoingPartsList = false; + AlreadyConverted = false; + bool WarningDone = false; + //EndLines.Clear(); + int QuantityAt = 0; + int DesignatorAt = 0; + int FootprintAt = 0; + int CommentAt = 0; + int ValueAt = 0; + + bool CanGo = true; + + for (int i = 0; i < AllLines.Length; i++) + { + //EndLines.Add(AllLines[i]); + + //";" + if (i == 0) + { + if (AllLines[i].Contains(";") || AllLines[i].Contains("Footprint")) DoingPartsList = true; + if (AllLines[i].Contains("Designator")) AlreadyConverted = true; + } + + if (!WarningDone) + { + if ((!DoingPartsList && BOM_File) || (DoingPartsList && !BOM_File)) + { + CanGo = false; + DialogResult result2 = MessageBox.Show("The file opened aren't of the correct type\nDo you still want to open the file using the other type method?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning); + if (result2 == DialogResult.Yes) CanGo = true; + + WarningDone = true; + } + } + + if (CanGo) + { + if (i == 0) + { + if (DoingPartsList) EndLinesBOM.Clear(); + else EndLinesCPL.Clear(); + } + + if (!AlreadyConverted) + { + if (DoingPartsList) + { + //"Qty";"Value";"Device";"Package";"Parts";"Description";"MF";"MPN";"OC_FARNELL";"OC_NEWARK";"PROD_ID";"SF_ID";"SPICEPREFIX";"VALUE"; + //Qty,Designator,Footprint,Comment + + //EndLines[i] = EndLines[i].Replace("\"", ""); + AllLines[i] = AllLines[i].Replace("\"", ""); + string ThisRemadeLine = ""; + string[] SplittedCmds = AllLines[i].Split(';'); + + if (i == 0) + { + for (int i2 = 0; i2 < SplittedCmds.Length; i2++) + { + if (SplittedCmds[i2].Contains("Qty")) QuantityAt = i2; + if (SplittedCmds[i2].Contains("Parts")) DesignatorAt = i2; + if (SplittedCmds[i2].Contains("Package")) FootprintAt = i2; + if (SplittedCmds[i2].Contains("Description")) CommentAt = i2; + if (SplittedCmds[i2].Contains("Value")) ValueAt = i2; + } + ThisRemadeLine = "Qty;Designator;Footprint;Comment;LCSC"; + } + else + { + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("C0402", "Capacitor 0402"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("C0603", "Capacitor 0603"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("C0805", "Capacitor 0805"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("C1206", "Capacitor 1206"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("C1205", "Capacitor 1205"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("R0402", "Resistor 0402"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("R0603", "Resistor 0603"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("R0805", "Resistor 0805"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("R1206", "Resistor 1206"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("R1205", "Resistor 1205"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("CHIPLED", "LED"); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("CHIP-LED", "LED "); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("$", " "); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("-", " "); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("_", " "); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("/", " "); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("\\", " "); + SplittedCmds[FootprintAt] = SplittedCmds[FootprintAt].Replace("@1", ""); + + + SplittedCmds[ValueAt] = SplittedCmds[ValueAt].Replace("$", " "); + SplittedCmds[ValueAt] = SplittedCmds[ValueAt].Replace("-", " "); + SplittedCmds[ValueAt] = SplittedCmds[ValueAt].Replace("_", " "); + SplittedCmds[ValueAt] = SplittedCmds[ValueAt].Replace("/", " "); + SplittedCmds[ValueAt] = SplittedCmds[ValueAt].Replace("\\", " "); + SplittedCmds[ValueAt] = SplittedCmds[ValueAt].Replace("0.1uF", "100nF"); + SplittedCmds[ValueAt] = SplittedCmds[ValueAt].Replace("@1", ""); + + string CommentLine = SplittedCmds[FootprintAt] + " " + SplittedCmds[ValueAt]; + + if (CommentLine.Contains("MEGA") && !CommentLine.Contains("ATMEGA")) CommentLine = CommentLine.Replace("MEGA", "ATMEGA"); + CommentLine = CommentLine.Replace("CAP ", "Capacitor "); + CommentLine = CommentLine.Replace("TO 252 +12v", "78M05"); + CommentLine = CommentLine.Replace("DPACK 3 ", ""); + CommentLine = CommentLine.Replace("DO214AC ", ""); + + ThisRemadeLine = SplittedCmds[QuantityAt] + ";" + SplittedCmds[DesignatorAt] + ";" + CommentLine + ";" + CommentLine + ";"; + //ThisRemadeLine = SplittedCmds[QuantityAt] + ";" + SplittedCmds[DesignatorAt] + ";" + SplittedCmds[FootprintAt] + " " + SplittedCmds[ValueAt] + ";" + SplittedCmds[CommentAt] + ";"; + } + + EndLinesBOM.Add(ThisRemadeLine); + } + else + { + string ThisRemadeLine = ""; + string[] SplittedCmds = AllLines[i].Split(' '); + int AddingCount = 0; + + for (int i2 = 0; i2 < SplittedCmds.Length; i2++) + { + if (SplittedCmds[i2] != "") + { + ThisRemadeLine += SplittedCmds[i2] + ";"; + + if (AddingCount == 2) + { + ThisRemadeLine += "TOP;"; + AddingCount++; + } + AddingCount++; + } + } + + if (i == 0) EndLinesCPL.Add("Designator;Mid X;Mid Y;Layer;Rotation"); + EndLinesCPL.Add(ThisRemadeLine); + } + } + else + { + string ThisRemadeLine = ""; + + if (DoingPartsList) + { + //5,"D2, D3, D4, D5, D8",LED-0603, + string CuttingLine = AllLines[i]; + while (CuttingLine.Contains(",")) + { + //Console.WriteLine("here:" + CuttingLine); + bool HasComma = false; + if (CuttingLine[0] == '\"') HasComma = true; + + if (!HasComma) ThisRemadeLine += CuttingLine.Substring(0, CuttingLine.IndexOf(",")); + else ThisRemadeLine += CuttingLine.Substring(1, CuttingLine.IndexOf("\",") - 1); + ThisRemadeLine += ";"; + + //Console.WriteLine("here:" + ThisRemadeLine); + + + if (!HasComma) CuttingLine = CuttingLine.Substring(CuttingLine.IndexOf(",") + 1); + else CuttingLine = CuttingLine.Substring(CuttingLine.IndexOf("\",") + 2); + } + //Console.WriteLine("here:" + ThisRemadeLine); + + EndLinesBOM.Add(ThisRemadeLine); + } + else + { + ThisRemadeLine = AllLines[i].Replace(",", ";"); + EndLinesCPL.Add(ThisRemadeLine); + } + + } + } + } + + if (DoingPartsList) + { + SpawnGridBOM(); //Must Spawn the grid before checking for unavailable parts + Check4unavailablepart(); + SpawnGridBOM(); + toolStripMenuItem2.Enabled = true; + lSCSPartsListFromBOMcsvToolStripMenuItem.Enabled = true; + Opened_BOM = true; + label5.Visible = false; + } + else + { + SpawnGridCPL(); + toolStripMenuItem3.Enabled = true; + Opened_CPL = true; + label6.Visible = false; + } + + Loading = false; + } + } + } + + private void Check4LSCSPartNumber() + { + for (int i = 0; i < dataGridView1.Rows.Count; i++) + { + CheckPartNumber(dataGridView1.Rows[i].Cells[3].Value.ToString()); + } + } + + private void CheckPartNumber(string ThisPart) + { + //if (ThisPart == "") + //EndLinesBOM.RemoveAt(dataGridView1.SelectedCells[0].RowIndex + 1); + + } + + private void Check4unavailablepart() + { + int i = 0; + while (i < dataGridView1.Rows.Count) + { + if (IsUnavailablePart(dataGridView1.Rows[i].Cells[2].Value.ToString())) + { + EndLinesBOM.RemoveAt(i + 1); + SpawnGridBOM(); + } + else + { + i++; + } + } + } + + private bool IsUnavailablePart(string ThisPart) + { + if (ThisPart == "SMD1,27 2,54 1 MISO") return true; + if (ThisPart == "SMD1,27 2,54 3 SCK") return true; + if (ThisPart == "SMD1,27 2,54 5 RST") return true; + if (ThisPart == "SMD1,27 2,54 2") return true; + if (ThisPart == "SMD1,27 2,54 4") return true; + if (ThisPart == "SMD1,27 2,54 6") return true; + + if (ThisPart == "MKDSN1,5 2 5,08 MKDSN1,5 2 5,08") return true; + if (ThisPart == "MKDSN1,5 2 5,08 ") return true; + if (ThisPart == "MKDSN1,5 2 5,08") return true; + + if (ThisPart == "USB MINIB USB B") return true; + if (ThisPart == "USB B PTH USB B PTH") return true; + + if (ThisPart == "SMT JUMPER 3 1 NC TRACE SILK JMP") return true; + if (ThisPart == "SMT JUMPER 2 NO NO SILK JMP") return true; + if (ThisPart == "SMT JUMPER 2 NC PASTE NO SILK ") return true; + if (ThisPart == "651005136521 651005136521") return true; + + if (ThisPart == "HC49 HC49") return true; + if (ThisPart == "HC49 CRYSTAL") return true; + + if (ThisPart == "B25P 5K") return true; + if (ThisPart == "C025 050X050 10uF 35V") return true; + if (ThisPart == "B3F 10XX ") return true; + if (ThisPart == "1727036 1727036") return true; + if (ThisPart == "EG1213 EG1213") return true; + if (ThisPart == "EVUF POT") return true; + if (ThisPart == "POWER JACK PTH POWER JACK") return true; + if (ThisPart == "BATTCOM 20MM PTH ") return true; + if (ThisPart == "DIL28 ") return true; + if (ThisPart == "228 1277 00 0602J ") return true; + + if (ThisPart == "1X01 ") return true; + if (ThisPart == "1X02 ") return true; + if (ThisPart == "1X03 ") return true; + if (ThisPart == "1X04 ") return true; + if (ThisPart == "1X05 ") return true; + if (ThisPart == "1X06 ") return true; + if (ThisPart == "1X16 ") return true; + if (ThisPart == "1X01 90 ") return true; + if (ThisPart == "1X02 90 ") return true; + if (ThisPart == "1X03 90 ") return true; + if (ThisPart == "1X04 90 ") return true; + if (ThisPart == "1X05 90 ") return true; + if (ThisPart == "1X06 90 ") return true; + if (ThisPart == "1X03 SMALL DATA") return true; + if (ThisPart == "1X01 ROUND ") return true; + if (ThisPart == "1X01 90 ROUND ") return true; + if (ThisPart == "1X02 ROUND ") return true; + if (ThisPart == "1X02 90 ROUND ") return true; + if (ThisPart == "1X03 ROUND ") return true; + if (ThisPart == "1X03 90 ROUND ") return true; + + if (ThisPart.Contains("NOT REQUIRED")) return true; + if (ThisPart.Contains("not required")) return true; + + //if (ThisPart == "") return true; + + return false; + } + + private void bOMcsvToolStripMenuItem_Click(object sender, EventArgs e) + { + LoadFile(true); + } + + private void cPLcsvToolStripMenuItem_Click(object sender, EventArgs e) + { + LoadFile(false); + } + + private void toolStripMenuItem2_Click(object sender, EventArgs e) + { + SaveFile(true); + } + + private void toolStripMenuItem3_Click(object sender, EventArgs e) + { + SaveFile(false); + } + + private void button5_Click(object sender, EventArgs e) + { + int AddingAt = -1; + if (dataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + AddingAt = dataGridView1.SelectedCells[0].RowIndex + 1; + } + + if (AddingAt != -1) + { + string CurrentItem = EndLinesBOM[AddingAt]; + string[] SplittedCmds = CurrentItem.Split(';'); + + if (SplittedCmds.Length >= 1) + { + if (SplittedCmds[1].Contains(",")) + { + string[] SplittedDesignator = SplittedCmds[1].Split(','); + + EndLinesBOM[AddingAt] = "1;" + SplittedDesignator[0] + ";"; + for (int i = 2; i < SplittedCmds.Length; i++) EndLinesBOM[AddingAt] += SplittedCmds[i] + ";"; + + for (int i = 1; i < SplittedDesignator.Length; i++) + { + EndLinesBOM.Add("1;" + SplittedDesignator[i].Substring(1) + ";"); + for (int i2 = 2; i2 < SplittedCmds.Length; i2++) EndLinesBOM[EndLinesBOM.Count - 1] += SplittedCmds[i2] + ";"; + + MoveLine(true, AddingAt + i); + } + + SpawnGridBOM(); + } + } + } + } + + private void dataGridView1_Click(object sender, EventArgs e) + { + if (!Opened_BOM) + { + LoadFile(true); + } + else + { + int AddingAt = -1; + if (dataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + AddingAt = dataGridView1.SelectedCells[0].RowIndex; + } + + if (AddingAt != -1) + { + if (dataGridView1.Rows[AddingAt].Cells.Count >= 2) + { + label2.Text = dataGridView1.Rows[AddingAt].Cells[1].Value.ToString(); + } + } + } + } + + private void dataGridView2_Click(object sender, EventArgs e) + { + if (!Opened_CPL) + { + LoadFile(false); + } + else + { + int AddingAt = -1; + if (dataGridView2.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + AddingAt = dataGridView2.SelectedCells[0].RowIndex; + } + + if (AddingAt != -1) + { + if (dataGridView2.Rows[AddingAt].Cells.Count >= 5) + { + Loading = true; + if (dataGridView2.Rows[AddingAt].Cells[3].Value.ToString() == "TOP") comboBox1.SelectedIndex = 0; + if (dataGridView2.Rows[AddingAt].Cells[3].Value.ToString() == "BOTTOM") comboBox1.SelectedIndex = 1; + + if (dataGridView2.Rows[AddingAt].Cells[4].Value.ToString() == "0") comboBox2.SelectedIndex = 0; + if (dataGridView2.Rows[AddingAt].Cells[4].Value.ToString() == "90") comboBox2.SelectedIndex = 1; + if (dataGridView2.Rows[AddingAt].Cells[4].Value.ToString() == "180") comboBox2.SelectedIndex = 2; + if (dataGridView2.Rows[AddingAt].Cells[4].Value.ToString() == "270") comboBox2.SelectedIndex = 3; + Loading = false; + } + } + } + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (!Loading) + { + int AddingAt = -1; + if (dataGridView2.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + AddingAt = dataGridView2.SelectedCells[0].RowIndex; + } + + if (AddingAt != -1) + { + AddingAt++; + string[] SplittedCmds = EndLinesCPL[AddingAt].Split(';'); + EndLinesCPL[AddingAt] = SplittedCmds[0] + ";" + SplittedCmds[1] + ";" + SplittedCmds[2] + ";" + comboBox1.Text + ";" + SplittedCmds[4] + ";"; + + SpawnGridCPL(); + } + } + } + + private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) + { + if (!Loading) + { + for (int i = 0; i < dataGridView2.Rows.Count; i++) + { + if (ItemSelectedInThisRow(dataGridView2, i)) + { + int AddingAt = i + 1; + string[] SplittedCmds = EndLinesCPL[AddingAt].Split(';'); + EndLinesCPL[AddingAt] = SplittedCmds[0] + ";" + SplittedCmds[1] + ";" + SplittedCmds[2] + ";" + SplittedCmds[3] + ";" + comboBox2.Text + ";"; + + //SpawnGridCPL(); + } + } + SpawnGridCPL(); + + //########################## + /*int AddingAt = -1; + if (dataGridView2.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + AddingAt = dataGridView2.SelectedCells[0].RowIndex; + } + + if (AddingAt != -1) + { + AddingAt++; + string[] SplittedCmds = EndLinesCPL[AddingAt].Split(';'); + EndLinesCPL[AddingAt] = SplittedCmds[0] + ";" + SplittedCmds[1] + ";" + SplittedCmds[2] + ";" + SplittedCmds[3] + ";" + comboBox2.Text + ";"; + + SpawnGridCPL(); + }*/ + } + } + + private void button1_Click_1(object sender, EventArgs e) + { + int AddingAt = -1; + if (dataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0) + { + AddingAt = dataGridView1.SelectedCells[0].RowIndex + 1; + } + + if (AddingAt != -1) + { + string[] SplittedCmds = EndLinesBOM[AddingAt].Split(';'); + + string Search1 = SplittedCmds[2]; + string Search2 = SplittedCmds[3]; + + bool FirstFound = true; + string AddedDesignator = ""; + int NewQuantity = 1; + + for (int i = 1; i < EndLinesBOM.Count; i++) + { + string[] SplittedCmdsInner = EndLinesBOM[i].Split(';'); + if (SplittedCmdsInner.Length >= 4) + { + if (SplittedCmdsInner[2] == Search1 && SplittedCmdsInner[3] == Search2) + { + if (FirstFound) + { + FirstFound = false; + } + else + { + AddedDesignator += ", " + SplittedCmdsInner[1]; + NewQuantity++; + EndLinesBOM.RemoveAt(i); + i--; + } + } + } + } + + for (int i = 1; i < EndLinesBOM.Count; i++) + { + string[] SplittedCmdsInner = EndLinesBOM[i].Split(';'); + if (SplittedCmdsInner.Length >= 4) + { + if (SplittedCmdsInner[2] == Search1 && SplittedCmdsInner[3] == Search2) + { + EndLinesBOM[i] = NewQuantity + ";" + SplittedCmdsInner[1] + AddedDesignator + ";"; + for (int i2 = 2; i2 < SplittedCmdsInner.Length; i2++) EndLinesBOM[i] += SplittedCmdsInner[i2] + ";"; + } + } + } + + SpawnGridBOM(); + } + } + + private void label5_Click(object sender, EventArgs e) + { + LoadFile(true); + } + + private void label6_Click(object sender, EventArgs e) + { + LoadFile(false); + } + + private void lSCSPartsListFromBOMcsvToolStripMenuItem_Click(object sender, EventArgs e) + { + DialogResult result = openFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + string[] AllLines = File.ReadAllLines(openFileDialog1.FileName); + + if (AllLines.Length > 0) + { + bool DoingPartsList2 = false; + bool AlreadyConverted2 = false; + bool CanGo = true; + + for (int i = 0; i < AllLines.Length; i++) + { + if (i == 0) + { + if (AllLines[i].Contains(";") || AllLines[i].Contains("Footprint")) DoingPartsList2 = true; + if (AllLines[i].Contains("Designator")) AlreadyConverted2 = true; + } + + if (CanGo) + { + if (AlreadyConverted2) + { + string ThisRemadeLine = ""; + + if (DoingPartsList2) + { + //5,"D2, D3, D4, D5, D8",LED-0603, + string CuttingLine = AllLines[i]; + while (CuttingLine.Contains(",")) + { + bool HasComma = false; + if (CuttingLine[0] == '\"') HasComma = true; + + if (!HasComma) ThisRemadeLine += CuttingLine.Substring(0, CuttingLine.IndexOf(",")); + else ThisRemadeLine += CuttingLine.Substring(1, CuttingLine.IndexOf("\",") - 1); + ThisRemadeLine += ";"; + + + if (!HasComma) CuttingLine = CuttingLine.Substring(CuttingLine.IndexOf(",") + 1); + else CuttingLine = CuttingLine.Substring(CuttingLine.IndexOf("\",") + 2); + } + + string[] SplittedCmdsInner = ThisRemadeLine.Split(';'); + if (SplittedCmdsInner.Length >= 5) + { + string Search1 = SplittedCmdsInner[2]; + string Search2 = SplittedCmdsInner[3]; + string LSCS_Part = SplittedCmdsInner[4]; + SearchAddLSCS(Search1, Search2, LSCS_Part); + } + } + } + } + } + + SpawnGridBOM(); + } + } + } + + private void SearchAddLSCS(string Search1, string Search2, string LSCS_Part) + { + for (int i = 1; i < EndLinesBOM.Count; i++) + { + string[] SplittedCmdsInner = EndLinesBOM[i].Split(';'); + if (SplittedCmdsInner.Length >= 4) + { + if (SplittedCmdsInner[2] == Search1 && SplittedCmdsInner[3] == Search2) + { + EndLinesBOM[i] = SplittedCmdsInner[0] + ";" + SplittedCmdsInner[1] + ";" + SplittedCmdsInner[2] + ";" + SplittedCmdsInner[3] + ";" + LSCS_Part + ";"; + } + } + } + } + + private void dataGridView1_Validated(object sender, EventArgs e) + { + //UpdateBOMLines(); + } + + private void UpdateBOMLines() + { + EndLinesBOM.Clear(); + EndLinesBOM.Add("Qty;Designator;Footprint;Comment;LCSC"); + + for (int i = 0; i < dataGridView1.Rows.Count; i++) + { + string RemadeLine = ""; + for (int i2 = 0; i2 < dataGridView1.Columns.Count; i2++) + { + if (i2 < dataGridView1.Rows[i].Cells.Count) + { + try + { + RemadeLine += dataGridView1.Rows[i].Cells[i2].Value.ToString() + ";"; + } + catch + { + //RemadeLine += ";"; + } + } + else + { + //RemadeLine += ";"; + } + } + EndLinesBOM.Add(RemadeLine); + } + } + + private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e) + { + //if (!Loading) UpdateBOMLines(); + } + + private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) + { + if (!Loading) UpdateBOMLines(); + } + + private void button3_Click_1(object sender, EventArgs e) + { + for (int i = 0; i < dataGridView2.Rows.Count; i++) + { + try + { + if (ItemSelectedInThisRow(dataGridView2, i)) + { + int OriginalAngleValue = int.Parse(dataGridView2.Rows[i].Cells[4].Value.ToString()); + + OriginalAngleValue = OriginalAngleValue + 90; + if (OriginalAngleValue > 270) OriginalAngleValue = 0; + + int AddingAt = i + 1; + string[] SplittedCmds = EndLinesCPL[AddingAt].Split(';'); + EndLinesCPL[AddingAt] = SplittedCmds[0] + ";" + SplittedCmds[1] + ";" + SplittedCmds[2] + ";" + SplittedCmds[3] + ";" + (OriginalAngleValue).ToString() + ";"; + + dataGridView2.Rows[i].Cells[4].Selected = true; + //SpawnGridCPL(); + } + } + catch { } + } + SpawnGridCPL(); + } + + bool ItemSelectedInThisRow(DataGridView ThidGrid, int RowIndex) + { + bool IsSelected = false; + for (int i = 0; i < ThidGrid.Columns.Count; i++) + { + if (ThidGrid.Rows[RowIndex].Cells[i].Selected) IsSelected = true; + } + return IsSelected; + } + + private void button6_Click(object sender, EventArgs e) + { + for (int i = 0; i < dataGridView2.Rows.Count; i++) + { + try + { + if (ItemSelectedInThisRow(dataGridView2, i)) + { + int OriginalAngleValue = int.Parse(dataGridView2.Rows[i].Cells[4].Value.ToString()); + + OriginalAngleValue = OriginalAngleValue - 90; + if (OriginalAngleValue < 0) OriginalAngleValue = 270; + + int AddingAt = i + 1; + string[] SplittedCmds = EndLinesCPL[AddingAt].Split(';'); + EndLinesCPL[AddingAt] = SplittedCmds[0] + ";" + SplittedCmds[1] + ";" + SplittedCmds[2] + ";" + SplittedCmds[3] + ";" + (OriginalAngleValue).ToString() + ";"; + + //SpawnGridCPL(); + } + } + catch { } + } + SpawnGridCPL(); + } + + private void button7_Click(object sender, EventArgs e) + { + Form2 Form2_0 = new Form2(); + DialogResult result = Form2_0.ShowDialog(); + if (result == DialogResult.OK) + { + for (int i = 0; i < dataGridView2.Rows.Count; i++) + { + if (ItemSelectedInThisRow(dataGridView2, i)) + { + double TestVal = -9999.9; + try + { + TestVal = double.Parse(dataGridView2.Rows[i].Cells[1].Value.ToString()); + } + catch + { + try + { + TestVal = double.Parse(dataGridView2.Rows[i].Cells[1].Value.ToString().Replace(".", ",")); + } + catch { } + } + if (TestVal != -9999.9) + { + int AddingAt = i + 1; + string[] SplittedCmds = EndLinesCPL[AddingAt].Split(';'); + EndLinesCPL[AddingAt] = SplittedCmds[0] + ";" + (TestVal + Form2_0.IncreaserVal).ToString().Replace(",", ".") + ";" + SplittedCmds[2] + ";" + SplittedCmds[3] + ";" + SplittedCmds[4] + ";"; + + //SpawnGridCPL(); + } + } + } + SpawnGridCPL(); + } + + if (Form2_0 != null) + { + try + { + Form2_0.Dispose(); + } + catch { } + Form2_0 = null; + } + } + + private void button8_Click(object sender, EventArgs e) + { + Form2 Form2_0 = new Form2(); + DialogResult result = Form2_0.ShowDialog(); + if (result == DialogResult.OK) + { + for (int i = 0; i < dataGridView2.Rows.Count; i++) + { + if (ItemSelectedInThisRow(dataGridView2, i)) + { + double TestVal = -9999.9; + try + { + TestVal = double.Parse(dataGridView2.Rows[i].Cells[2].Value.ToString()); + } + catch + { + try + { + TestVal = double.Parse(dataGridView2.Rows[i].Cells[2].Value.ToString().Replace(".", ",")); + } + catch { } + } + if (TestVal != -9999.9) + { + int AddingAt = i + 1; + string[] SplittedCmds = EndLinesCPL[AddingAt].Split(';'); + EndLinesCPL[AddingAt] = SplittedCmds[0] + ";" + SplittedCmds[1] + ";" + (TestVal + Form2_0.IncreaserVal).ToString().Replace(",", ".") + ";" + SplittedCmds[3] + ";" + SplittedCmds[4] + ";"; + + //SpawnGridCPL(); + } + } + } + SpawnGridCPL(); + } + + if (Form2_0 != null) + { + try + { + Form2_0.Dispose(); + } + catch { } + Form2_0 = null; + } + } + } +} diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..eb3c71d --- /dev/null +++ b/Form1.resx @@ -0,0 +1,544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + 17, 17 + + + 153, 17 + + + True + + + True + + + True + + + True + + + True + + + 293, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + AAABAAEAAAAAAAEAIABUVQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAVRtJ + REFUeNrtnXd0FdX2x7/7TLktvQGhJTRpoqKAigXL02fX9+xdf+qzN1BRURR7wYq996fP3rsURUCU3jsp + JCE9uW1mztm/P4IFSUhyE3KTMJ+1WKyVO3NmnzPn7DllF8DFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXF + xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXF + xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXF + xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxaXDQvEWwKWdc8JDACsYu+yjUSBN + Y9OnIbGLjzQ9ALAPDB+YvQC8AAwAGsBa3f8kAGYAEiAJwAbBAhABUxiEEJhqEQkFObjJ4VCF42xYJuHx + AS+dFu+a7xS4CsAFxn0bASssyJ/igdD97E1IJYiuIHSBpnUBU1eAM8DIBJABomQAPgCeLf/MLf90AGLL + Pw11/YsBqC3/HAA2AAtAFEAEQBjgGjBKARSDqBAsN0FxIRMVQjpFiFRWq0htWOvWV1ozXgVeOifeTdZp + cBXATkbgLYZVVO0hTaTA9GYCIgfgviCRC0JvMHqBKANAAoAA6gZ4W8MAwgBqAFQAvAGgNWC1koFlxGoN + WcHNdkVZDTSN1YSceDdrh8VVAJ0Yf4hhP7BBE+lZ6UwiG5oxAMCuIBoAor4AegBIRN30XcRb3iagAIQA + lAJYCVYLmPkXSGspK3ujfGJkjbbrSXD+d2e85ewwuAqgk+C5YRq4pgiUPdzk1B5dQFp/aNowgIaDaCCA + 3gBSUbdO70xYAEoAXg7mmXCsH1nQYlm6pkQfPVhazzwGvH1VvGVst7gKoANjfMnAgnwDCRmZJLRBIG04 + iEaBaBCAnqibxu9s77gWwBow/wxW37K056jqTZtINxznup7xlq3dsbN1jg6N/ngpmJg0RyTD8PeBbo4A + 0T4A7Ym6AZ8E953+lTDqlMEPrJzPOFj+ixOqLQdLYOIu8ZatXeB2lnaOZ9JKUKhKyOyBXcj07gqh7Q/Q + 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 + cXHZ2fl/9TpSgr45pmAAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Form2.Designer.cs b/Form2.Designer.cs new file mode 100644 index 0000000..84e6d6f --- /dev/null +++ b/Form2.Designer.cs @@ -0,0 +1,88 @@ +namespace JLC_SMT_Helper +{ + partial class Form2 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(33, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(195, 26); + this.label1.TabIndex = 0; + this.label1.Text = "Set Increase or Decrease amount value\r\n(can be negative)"; + this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(73, 43); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(100, 20); + this.textBox1.TabIndex = 1; + // + // button1 + // + this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; + this.button1.Location = new System.Drawing.Point(73, 71); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(100, 23); + this.button1.TabIndex = 2; + this.button1.Text = "Apply"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Form2 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(245, 98); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Form2"; + this.ShowIcon = false; + this.Text = "Set Inc/Decrease Value"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Form2.cs b/Form2.cs new file mode 100644 index 0000000..1e07641 --- /dev/null +++ b/Form2.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace JLC_SMT_Helper +{ + + public partial class Form2 : Form + { + public double IncreaserVal = 0.0; + + public Form2() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + try + { + IncreaserVal = double.Parse(textBox1.Text); + this.Close(); + } + catch + { + MessageBox.Show("Unable to parse text '" + textBox1.Text + "' to a number value!"); + //DialogResult = DialogResult.None; + button1.DialogResult = DialogResult.None; + } + } + } +} diff --git a/Form2.resx b/Form2.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/Form2.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/JLC SMT Helper.csproj b/JLC SMT Helper.csproj new file mode 100644 index 0000000..70014a2 --- /dev/null +++ b/JLC SMT Helper.csproj @@ -0,0 +1,93 @@ + + + + + Debug + AnyCPU + {F6BC17DD-FF51-45B3-9529-EC95DA686B36} + WinExe + JLC_SMT_Helper + JLC SMT Helper + v4.0 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + file.ico + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + Form + + + Form2.cs + + + + + Form1.cs + + + Form2.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/JLC SMT Helper.sln b/JLC SMT Helper.sln new file mode 100644 index 0000000..888c44f --- /dev/null +++ b/JLC SMT Helper.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29418.71 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JLC SMT Helper", "JLC SMT Helper.csproj", "{F6BC17DD-FF51-45B3-9529-EC95DA686B36}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F6BC17DD-FF51-45B3-9529-EC95DA686B36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6BC17DD-FF51-45B3-9529-EC95DA686B36}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6BC17DD-FF51-45B3-9529-EC95DA686B36}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6BC17DD-FF51-45B3-9529-EC95DA686B36}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D4865978-308B-4643-8616-F739F2458D38} + EndGlobalSection +EndGlobal diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..4004779 --- /dev/null +++ b/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace JLC_SMT_Helper +{ + static class Program + { + /// + /// Point d'entrée principal de l'application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5ba77e7 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Les informations générales relatives à un assembly dépendent de +// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations +// associées à un assembly. +[assembly: AssemblyTitle("JLC SMT Helper")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("JLC SMT Helper")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly +// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de +// COM, affectez la valeur true à l'attribut ComVisible sur ce type. +[assembly: ComVisible(false)] + +// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM +[assembly: Guid("f6bc17dd-ff51-45b3-9529-ec95da686b36")] + +// Les informations de version pour un assembly se composent des quatre valeurs suivantes : +// +// Version principale +// Version secondaire +// Numéro de build +// Révision +// +// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut +// en utilisant '*', comme indiqué ci-dessous : +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..6784ee7 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +namespace JLC_SMT_Helper.Properties +{ + + + /// + /// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées. + /// + // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder + // à l'aide d'un outil, tel que ResGen ou Visual Studio. + // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen + // avec l'option /str ou régénérez votre projet VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Retourne l'instance ResourceManager mise en cache utilisée par cette classe. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("JLC_SMT_Helper.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Remplace la propriété CurrentUICulture du thread actuel pour toutes + /// les recherches de ressources à l'aide de cette classe de ressource fortement typée. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..65eed21 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace JLC_SMT_Helper.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/bin/Debug/JLC SMT Helper.exe b/bin/Debug/JLC SMT Helper.exe new file mode 100644 index 0000000..c40e443 Binary files /dev/null and b/bin/Debug/JLC SMT Helper.exe differ diff --git a/bin/Debug/JLC SMT Helper.pdb b/bin/Debug/JLC SMT Helper.pdb new file mode 100644 index 0000000..a300cdc Binary files /dev/null and b/bin/Debug/JLC SMT Helper.pdb differ diff --git a/file.ico b/file.ico new file mode 100644 index 0000000..c4f203b Binary files /dev/null and b/file.ico differ diff --git a/file.png b/file.png new file mode 100644 index 0000000..fd7d2e8 Binary files /dev/null and b/file.png differ diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..31614d3 Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..49caecb Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/obj/Debug/JLC SMT Helper.csproj.FileListAbsolute.txt b/obj/Debug/JLC SMT Helper.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..0ccbf82 --- /dev/null +++ b/obj/Debug/JLC SMT Helper.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\bin\Debug\JLC SMT Helper.exe +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\bin\Debug\JLC SMT Helper.pdb +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\obj\Debug\JLC SMT Helper.csprojAssemblyReference.cache +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\obj\Debug\JLC_SMT_Helper.Form1.resources +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\obj\Debug\JLC_SMT_Helper.Properties.Resources.resources +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\obj\Debug\JLC SMT Helper.csproj.GenerateResource.cache +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\obj\Debug\JLC SMT Helper.exe +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\obj\Debug\JLC SMT Helper.pdb +C:\Users\boule\Documents\Visual Studio 2019\Projects\JLC SMT Helper\obj\Debug\JLC_SMT_Helper.Form2.resources diff --git a/obj/Debug/JLC SMT Helper.csproj.GenerateResource.cache b/obj/Debug/JLC SMT Helper.csproj.GenerateResource.cache new file mode 100644 index 0000000..76208bf Binary files /dev/null and b/obj/Debug/JLC SMT Helper.csproj.GenerateResource.cache differ diff --git a/obj/Debug/JLC SMT Helper.csprojAssemblyReference.cache b/obj/Debug/JLC SMT Helper.csprojAssemblyReference.cache new file mode 100644 index 0000000..0d61543 Binary files /dev/null and b/obj/Debug/JLC SMT Helper.csprojAssemblyReference.cache differ diff --git a/obj/Debug/JLC SMT Helper.exe b/obj/Debug/JLC SMT Helper.exe new file mode 100644 index 0000000..c40e443 Binary files /dev/null and b/obj/Debug/JLC SMT Helper.exe differ diff --git a/obj/Debug/JLC SMT Helper.pdb b/obj/Debug/JLC SMT Helper.pdb new file mode 100644 index 0000000..a300cdc Binary files /dev/null and b/obj/Debug/JLC SMT Helper.pdb differ diff --git a/obj/Debug/JLC_SMT_Helper.Form1.resources b/obj/Debug/JLC_SMT_Helper.Form1.resources new file mode 100644 index 0000000..1153b42 Binary files /dev/null and b/obj/Debug/JLC_SMT_Helper.Form1.resources differ diff --git a/obj/Debug/JLC_SMT_Helper.Form2.resources b/obj/Debug/JLC_SMT_Helper.Form2.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Debug/JLC_SMT_Helper.Form2.resources differ diff --git a/obj/Debug/JLC_SMT_Helper.Properties.Resources.resources b/obj/Debug/JLC_SMT_Helper.Properties.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Debug/JLC_SMT_Helper.Properties.Resources.resources differ