private static void CreateImageForSingleFile11(double dpi, List <string> RestList) { string pcbcolor = "green"; string silkcolor = "white"; string tracecolor = "auto"; string coppercolor = "gold"; GerberImageCreator GIC = new GerberImageCreator(); string TargetFileBaseName = ""; if (RestList.Count() >= 1) { TargetFileBaseName = RestList[0]; } List <String> FileList = new List <string>(); foreach (var a in RestList) { if (Directory.Exists(a)) { FileList.AddRange(Directory.GetFiles(a, "*.*")); } else { if (File.Exists(a)) { FileList.Add(a); } } } for (int i = 0; i < FileList.Count; i++) { if (FileList[i][FileList[i].Count() - 1] == '\\') { FileList[i] = Path.GetDirectoryName(FileList[i]); } } GIC.AddBoardsToSet(FileList, new StandardConsoleLog(), true, false, 0.8); BoardRenderColorSet colors = new BoardRenderColorSet(); if (pcbcolor == "") { pcbcolor = "black"; } colors.SetupColors(pcbcolor, silkcolor, tracecolor, coppercolor); GIC.SetColors(colors); //GIC.WriteImageFiles(TargetFileBaseName, 96, false, xray, normal, new StandardConsoleLog()); GIC.DrawAllFilesForPrintPcb(TargetFileBaseName, dpi); Console.WriteLine("Done writing {0}", TargetFileBaseName); GIC.Dispose(); GC.Collect(); }
private static void RunImageGeneration() { try { var InputFiles = Directory.GetFiles(TheSettings.InputFolder); GerberImageCreator GIC = new GerberLibrary.GerberImageCreator(); GerberImageCreator.AA = true; BoardRenderColorSet Colors = new BoardRenderColorSet(); Colors.BoardRenderColor = TheSettings.SolderMaskColor; Colors.BoardRenderTraceColor = TheSettings.SolderMaskColor; if (TheSettings.HasTraceColor) { Colors.BoardRenderTraceColor = TheSettings.TraceColor; } Colors.BoardRenderSilkColor = TheSettings.SilkScreenColor; Colors.BoardRenderPadColor = TheSettings.CopperColor; GIC.AddBoardsToSet(InputFiles.ToList()); GIC.SetColors(Colors); if (GIC.Errors.Count > 0) { foreach (var a in GIC.Errors) { Console.WriteLine("Error: {0}", a); } // return; } // Console.WriteLine("Progress: Estimated board bounding box:{0:N2},{1:N2} - {2:N2},{3:N2} -> {4:N2},{5:N2}", GIC.BoundingBox.TopLeft.X, GIC.BoundingBox.TopLeft.Y, GIC.BoundingBox.BottomRight.X, GIC.BoundingBox.BottomRight.Y, GIC.BoundingBox.Width(), GIC.BoundingBox.Height()); // Gerber.SaveIntermediateImages = true; Console.WriteLine("Progress: Rendering Top"); GIC.DrawToFile(TheSettings.OutputFolder + "/FullRender", BoardSide.Top, 200, false); Console.WriteLine("Progress: Rendering Bottom"); GIC.DrawToFile(TheSettings.OutputFolder + "/FullRender", BoardSide.Bottom, 200, false); GIC.DrawAllFiles(TheSettings.OutputFolder + "/Layer", 200, new DirtyPCB_BoardRender()); Console.WriteLine("Progress: Done!"); } catch (Exception E) { if (TheSettings.TimeOutExpired == false) { Console.WriteLine("Error: {0}", E.Message); } } }
static void Main(string[] args) { if (args.Count() < 1) { Console.WriteLine("need files to render..."); Console.WriteLine("GerberToImage <files> [--dpi N] [--noxray] [--nopcb] [--silk color] [--trace color] [--copper color] [--mask color]"); return; } int dpi = 400; Arguments NextArg = Arguments.None; bool xray = true; bool normal = true; string pcbcolor = "green"; string silkcolor = "white"; string tracecolor = "auto"; string coppercolor = "gold"; List <string> RestList = new List <string>(); for (int i = 0; i < args.Count(); i++) { switch (NextArg) { case Arguments.dpi: dpi = Int32.Parse(args[i]); NextArg = Arguments.None; break; case Arguments.silk: silkcolor = args[i]; NextArg = Arguments.None; break; case Arguments.mask: pcbcolor = args[i]; NextArg = Arguments.None; break; case Arguments.trace: tracecolor = args[i]; NextArg = Arguments.None; break; case Arguments.copper: coppercolor = args[i]; NextArg = Arguments.None; break; case Arguments.None: switch (args[i].ToLower()) { case "-dpi": case "--dpi": NextArg = Arguments.dpi; break; case "-silk": case "--silk": NextArg = Arguments.silk; break; case "-trace": case "--trace": NextArg = Arguments.trace; break; case "-copper": case "--copper": NextArg = Arguments.copper; break; case "-mask": case "--mask": NextArg = Arguments.mask; break; case "-noxray": case "--noxray": xray = false; NextArg = Arguments.None; break; case "-nopcb": case "--nopcb": normal = false; NextArg = Arguments.None; break; default: RestList.Add(args[i]); break; } break; } } Gerber.SaveIntermediateImages = false; Gerber.ShowProgress = true; if (RestList.Count() == 1 && File.Exists(RestList[0]) && Path.GetExtension(RestList[0]).ToLower() != ".zip") { // Gerber.WriteSanitized = true; Gerber.ExtremelyVerbose = false; //Gerber.Verbose = true; Gerber.ThrowExceptions = true; Gerber.WaitForKey = true; Gerber.ShowProgress = true; CreateImageForSingleFile(new StandardConsoleLog(), RestList[0], Color.Black, Color.White, dpi); if (Gerber.WaitForKey) { Console.WriteLine("Press any key to continue"); Console.ReadKey(); } return; } GerberImageCreator GIC = new GerberImageCreator(); string TargetFileBaseName = ""; if (RestList.Count() >= 1) { TargetFileBaseName = RestList[0]; } List <String> FileList = new List <string>(); foreach (var a in RestList) { if (Directory.Exists(a)) { FileList.AddRange(Directory.GetFiles(a, "*.*")); } else { if (File.Exists(a)) { FileList.Add(a); } } } for (int i = 0; i < FileList.Count; i++) { if (FileList[i][FileList[i].Count() - 1] == '\\') { FileList[i] = Path.GetDirectoryName(FileList[i]); } } var L = new GerberToImage(Path.GetFileNameWithoutExtension(TargetFileBaseName)); GIC.AddBoardsToSet(FileList, new StandardConsoleLog(), true); BoardRenderColorSet colors = new BoardRenderColorSet(); if (pcbcolor == "") { pcbcolor = "black"; } colors.SetupColors(pcbcolor, silkcolor, tracecolor, coppercolor); GIC.SetColors(colors); GIC.WriteImageFiles(TargetFileBaseName, dpi, false, xray, normal, new StandardConsoleLog()); Console.WriteLine("Done writing {0}", TargetFileBaseName); }