void BuildPostBom() { BPost = new BOM(); BOMNumberSet s = new BOMNumberSet(); BPost.MergeBOM(B, s, 0, 0, 0, 0, 0); BPost.FixupAngles(); }
public void BuildPostBom() { BPost = new BOM(); BOMNumberSet s = new BOMNumberSet(); switch (FlipBoard) { case FlipMode.NoFlip: FixOffset = new PointD(Set.BoundingBox.TopLeft.X, Set.BoundingBox.TopLeft.Y); break; case FlipMode.FlipDiagonal: FixOffset = new PointD(Set.BoundingBox.TopLeft.X, Set.BoundingBox.TopLeft.Y); break; case FlipMode.FlipHorizontal: FixOffset = new PointD(Set.BoundingBox.TopLeft.X, Set.BoundingBox.TopLeft.Y); break; } BPost.MergeBOM(B, s, 0, 0, -FixOffset.X, -FixOffset.Y, 0); FixSet = new GerberImageCreator(); FixSet.CopyFrom(Set); switch (FlipBoard) { case FlipMode.NoFlip: FixSet.SetBottomLeftToZero(); break; case FlipMode.FlipDiagonal: FixSet.SetBottomRightToZero(); FixSet.FlipXY(); FixSet.Translate(0, FixSet.BoundingBox.Height()); BPost.SwapXY(); BPost.FlipSides(); // BPost.Translate(0, FixSet.BoundingBox.Height()); break; case FlipMode.FlipHorizontal: FixSet.SetBottomRightToZero(); FixSet.FlipX(); BPost.FlipSides(); BPost.FlipX(); BPost.Translate(FixSet.BoundingBox.Width(), 0); break; } BPost.FixupAngles(StockDoc); BPost.WriteJLCPnpFile(B.OriginalBasefolder, B.OriginalPnpName + "_rotated", true); BPost.WriteQuantPnPFiles(B.OriginalBasefolder, B.OriginalPnpName + "_QUANTSET"); BPost.WriteQuantBOMFile(B.OriginalBasefolder, B.OriginalPnpName + "_QUANTSET"); BPost.WriteRefDesGerber(Path.Combine(B.OriginalBasefolder, B.OriginalPnpName + "_refdes.gbr")); }
public List <string> Write(string targetfolder, string basename, BOM inFiducialBom, PointD offset = null) { if (offset == null) { offset = new PointD(0, 0); } List <string> Files = new List <string>(); ExcellonFile EF = new ExcellonFile(); int drillcount = 0; foreach (var h in DrillHoles) { ExcellonTool DrillBit = new ExcellonTool(); DrillBit.Radius = h.Key / 2.0f; foreach (var a in h.Value) { DrillBit.Drills.Add(a); } EF.Tools[10 + drillcount] = DrillBit; drillcount++; } string DrillFile = Path.Combine(targetfolder, basename + ".txt"); EF.Write(DrillFile, offset.X, offset.Y, 0, 0); Files.Add(DrillFile); string OutName = Path.Combine(targetfolder, basename); Outline.Write(OutName + ".gko", offset); Files.Add(OutName + ".gko"); TopSilk.Write(OutName + ".gto", offset); Files.Add(OutName + ".gto"); TopCopper.Write(OutName + ".gtl", offset); Files.Add(OutName + ".gtl"); TopSolderMask.Write(OutName + ".gts", offset); Files.Add(OutName + ".gts"); BottomSilk.Write(OutName + ".gbo", offset); Files.Add(OutName + ".gbo"); BottomCopper.Write(OutName + ".gbl", offset); Files.Add(OutName + ".gbl"); BottomSolderMask.Write(OutName + ".gbs", offset); Files.Add(OutName + ".gbs"); BOM FiducialBom; if (inFiducialBom != null) { FiducialBom = inFiducialBom; } else { FiducialBom = new BOM(); } BOMNumberSet set = new BOMNumberSet(); int fd = 1; foreach (var a in Fiducials) { FiducialBom.AddBOMItemExt("FIDUCIAL_" + a.Style.ToString(), "FIDUCIAL_" + a.Style.ToString(), a.Style.ToString(), "__FD" + (fd.ToString()), set, "Frame_" + basename, a.Pos.X + offset.X, a.Pos.Y + offset.Y, 0, a.Side); } FiducialBom.WriteJLCCSV(targetfolder, basename + "_fiducials"); return(Files); }