public static List <CsvBomComponent> ReadBomComponents(IatRunConfiguration config) { string filename = config.AssemblyDataSettings.PickPlaceBomImportSettings.BomFile; var rd = new CsvReader(new StreamReader(filename)); List <CsvBomComponent> bomComponents = new List <CsvBomComponent>(); while (rd.Read()) { if (rd.IsRecordEmpty()) { continue; } CsvBomComponent cbc = new CsvBomComponent { LibRef = rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.BomPartReferenceColumnName], Description = rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.BomDescriptionColumnName], Designator = rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.BomDesignatorColumnName] }; bomComponents.Add(cbc); } return(bomComponents); }
public void LoadAssemblyData(Assembly ass, IatRunConfiguration config) { // Get the required files from the configuration data List <CsvPickPlaceComponent> ppComponents = CsvPickPlaceImporter.ReadPickPlaceComponents(config); List <CsvBomComponent> bomComponents = CsvBomImporter.ReadBomComponents(config); foreach (var ppc in ppComponents) { string designator = ppc.Designator; var bomComponent = bomComponents.SingleOrDefault(d => d.Designator == designator); if (bomComponent != null) { Component c = new Component { LibRef = bomComponent.LibRef, Description = bomComponent.Description, Designator = ppc.Designator, PositionX = ppc.RefX, PositionY = ppc.RefY, Rotation = ppc.Rotation }; if (ppc.ComponentLayer == ComponentLayer.Top) { if (!ass.ComponentsTop.ContainsKey(c.LibRef)) { ass.ComponentsTop.Add(c.LibRef, new List <Component>()); } ass.ComponentsTop[c.LibRef].Add(c); } if (ppc.ComponentLayer == ComponentLayer.Bottom) { if (!ass.ComponentsBottom.ContainsKey(c.LibRef)) { ass.ComponentsBottom.Add(c.LibRef, new List <Component>()); } ass.ComponentsBottom[c.LibRef].Add(c); } } else { // Probably not populated ass.DnpPositions.Add(new PointF { X = (float)ppc.RefX, Y = (float)ppc.RefY }); } } }
public static List <CsvPickPlaceComponent> ReadPickPlaceComponents(IatRunConfiguration config) { if (!File.Exists(config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpFile)) { Logger.Error("Couldn't read Pick'n'Place file"); return(null); } CsvReader rd; try { rd = new CsvReader(new StreamReader(config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpFile)); } catch (Exception ex) { Logger.Error(ex, "Couldn't read Pick'n'Place file"); return(null); } try { List <CsvPickPlaceComponent> ppComponent = new List <CsvPickPlaceComponent>(); // Load field headers, check to see if the values are in mm or mil HeaderValueUnits xPosHeaderUnit, yPosHeaderUnit; if (config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpCenterXColumnName.Contains("mm")) { xPosHeaderUnit = HeaderValueUnits.Mm; } else if (config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpCenterXColumnName.Contains("mil")) { xPosHeaderUnit = HeaderValueUnits.Mil; } else { xPosHeaderUnit = HeaderValueUnits.Unspecified; } if (config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpCenterYColumnName.Contains("mm")) { yPosHeaderUnit = HeaderValueUnits.Mm; } else if (config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpCenterYColumnName.Contains("mil")) { yPosHeaderUnit = HeaderValueUnits.Mil; } else { yPosHeaderUnit = HeaderValueUnits.Unspecified; } while (rd.Read()) { if (rd.IsRecordEmpty()) { continue; } CsvPickPlaceComponent cppc = new CsvPickPlaceComponent { Designator = rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpDesignatorColumnName], RefX = ConvertValueToMm(rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpCenterXColumnName], xPosHeaderUnit), RefY = ConvertValueToMm(rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpCenterYColumnName], yPosHeaderUnit), ComponentLayer = ConvertValueToComponentLayer(rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpLayerColumnName], config.AssemblyDataSettings.PickPlaceBomImportSettings), Rotation = ConvertValueToRotation(rd[config.AssemblyDataSettings.PickPlaceBomImportSettings.PnpRotationColumnName]) }; ppComponent.Add(cppc); } return(ppComponent); } catch (Exception ex) { Logger.Error(ex, "Error while reading Pick'n'Place file"); return(null); } }