public static GerberFile GetNewGerber(string ID, string Path, float DPI, Size FOV) { if (Path == null) { return(null); } GerberFile gerber = new GerberFile(); FileInfo fi = new FileInfo(Path); SPI_AOI.Utils.GerberRenderResult renderResults = SPI_AOI.Utils.GerberUtils.Render(fi.FullName, DPI, Color.White, Color.Black); if (renderResults.Status == SPI_AOI.Utils.ActionStatus.Fail) { return(null); } gerber.ModelID = ID; gerber.GerberID = Utils.GetNewID(); gerber.FileName = fi.Name; gerber.FilePath = fi.FullName; gerber.Color = Color.FromArgb(255, 0, 0); gerber.Visible = true; gerber.Angle = 0; gerber.OrgGerberImage = renderResults.GerberImage; gerber.ProcessingGerberImage = gerber.OrgGerberImage.Copy(); gerber.FileData = File.ReadAllBytes(fi.FullName); gerber.ROI = new Rectangle(); gerber.SelectPad = Rectangle.Empty; gerber.MarkPoint = new Mark(gerber.GerberID); gerber.ResetMark(); gerber.StartPoint = SPI_AOI.Utils.StartPoint.TOP_LEFT; gerber.UpdatePadItems(); gerber.UpdateFOV(FOV); gerber.LinkPadWidthFov(FOV); return(gerber); }
public void LoadGerber(float DPI, Size FOV) { FileInfo fi = new FileInfo(this.FilePath); if (!Directory.Exists("TempPath")) { Directory.CreateDirectory("TempPath"); } File.WriteAllBytes("TempPath/" + this.FileName, this.FileData); SPI_AOI.Utils.GerberRenderResult renderResults = SPI_AOI.Utils.GerberUtils.Render("TempPath/" + this.FileName, DPI, Color.White, Color.Black); File.Delete("TempPath/" + this.FileName); if (renderResults.Status == SPI_AOI.Utils.ActionStatus.Fail) { return; } this.OrgGerberImage = renderResults.GerberImage; SetAngle(this.Angle, FOV, false); }