JLC_SMT_Helper/Form1.cs

1017 lines
42 KiB
C#

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<string> EndLinesBOM = new List<string>();
List<string> EndLinesCPL = new List<string>();
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<string> EndLinesBuf = new List<string>();
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<string> EndLinesBuffer = new List<string>();
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;
}
}
}
}