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);
        }
Exemplo n.º 2
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;
            }
        }