public void AddFile(MemoryStream L, string filename) { L.Seek(0, SeekOrigin.Begin); var T = GerberLibrary.Gerber.FindFileTypeFromStream(new StreamReader(L), filename); switch (T) { case GerberLibrary.Core.BoardFileType.Drill: { GerberLibrary.ExcellonFile EF = new GerberLibrary.ExcellonFile(); L.Seek(0, SeekOrigin.Begin); EF.Load(new StreamReader(L)); DrillCount += EF.TotalDrillCount(); } break; case GerberLibrary.Core.BoardFileType.Gerber: { GerberLibrary.Core.BoardSide Side; GerberLibrary.Core.BoardLayer Layer; GerberLibrary.Gerber.DetermineBoardSideAndLayer(filename, out Side, out Layer); if (Layer == GerberLibrary.Core.BoardLayer.Outline || Layer == GerberLibrary.Core.BoardLayer.Mill) { L.Seek(0, SeekOrigin.Begin); var G = GerberLibrary.PolyLineSet.LoadGerberFileFromStream(new StreamReader(L), filename); Box.AddBox(G.BoundingBox); } } break; } }
public static Bounds GetBoundingBox(List <string> generatedFiles) { Bounds A = new Bounds(); foreach (var a in generatedFiles) { ParsedGerber PLS = PolyLineSet.LoadGerberFile(a, State: new GerberParserState() { PreCombinePolygons = false }); A.AddBox(PLS.BoundingBox); } return(A); }