public void AddBoardHole(PointD pos, double diameter) { PolyLine PL = new PolyLine(); PL.MakeCircle(diameter / 2.0, 20, pos.X, pos.Y); Outline.AddPolyLine(PL, 0); }
public void Fiducial(PointD pos, double copperdiameter = 1.0, double maskdiameter = 2.0, BoardSide fiducialSide = BoardSide.Top, FiducialStyle style = FiducialStyle.Square) { var coppers = GetGAW(fiducialSide, BoardLayer.Copper); var mask = GetGAW(fiducialSide, BoardLayer.SolderMask); var silk = GetGAW(fiducialSide, BoardLayer.Silk); Fiducials.Add(new FiducialPlacement() { Pos = pos, Style = style, Side = fiducialSide }); switch (style) { case FiducialStyle.Round: { PolyLine Circle = new PolyLine(); Circle.MakeCircle((maskdiameter + 1) / 2, 20, pos.X, pos.Y); foreach (var c in coppers) { c.AddFlash(pos, copperdiameter / 2.0); } foreach (var sm in mask) { sm.AddFlash(pos, maskdiameter / 2.0); } foreach (var s in silk) { s.AddPolyLine(Circle, 0.1); } } break; case FiducialStyle.Square: { PolyLine SmallSquare = new PolyLine(); SmallSquare.MakeRectangle(copperdiameter, copperdiameter, pos.X, pos.Y); PolyLine BiggerSquare = new PolyLine(); BiggerSquare.MakeRectangle(maskdiameter, maskdiameter, pos.X, pos.Y); PolyLine BiggestSquare = new PolyLine(); BiggestSquare.MakeRectangle(maskdiameter + 1, maskdiameter + 1, pos.X, pos.Y); foreach (var c in coppers) { c.AddPolygon(SmallSquare); } foreach (var sm in mask) { sm.AddPolygon(BiggerSquare); } foreach (var s in silk) { s.AddPolyLine(BiggestSquare, 0.1); } } break; } }