예제 #1
0
        /// <summary>
        /// CAMデータの生成
        /// </summary>
        /// <param name="camOut"></param>
        public override void GenerateCamData(CamOut camOut)
        {
            int            drillSize = Diameter;
            int            stSize    = Diameter + DEFAULT_SRMARGIN * 2;
            Point          pt0       = GetPos(0);
            Point          pt1       = GetPos(0);
            CamOutBaseData camd;

            camd = new CamOutBaseData(MbeLayer.LayerValue.DRL,
                                      CamOutBaseData.CamType.DRILL,
                                      CamOutBaseData.Shape.Drill,
                                      drillSize, drillSize, pt0, pt1);
            camOut.Add(camd);

            camd = new CamOutBaseData(MbeLayer.LayerValue.STC,
                                      CamOutBaseData.CamType.FLASH,
                                      CamOutBaseData.Shape.Obround,
                                      stSize, stSize, pt0, pt1);
            camOut.Add(camd);
            camd = new CamOutBaseData(MbeLayer.LayerValue.STS,
                                      CamOutBaseData.CamType.FLASH,
                                      CamOutBaseData.Shape.Obround,
                                      stSize, stSize, pt0, pt1);
            camOut.Add(camd);
        }
예제 #2
0
        /// <summary>
        /// CAMデータの生成
        /// </summary>
        /// <param name="camOut"></param>
        public override void GenerateCamData(CamOut camOut)
        {
            Point pt0 = GetPos(0);
            Point pt1 = GetPos(1);
            Point ptVia;
            bool  bendMode = getPointVia(out ptVia);

            CamOutBaseData camd;

            if (!bendMode)
            {
                camd = new CamOutBaseData(layer,
                                          CamOutBaseData.CamType.VECTOR,
                                          CamOutBaseData.Shape.Obround,
                                          lineWidth, lineWidth, pt0, pt1);
                camOut.Add(camd);
            }
            else
            {
                camd = new CamOutBaseData(layer,
                                          CamOutBaseData.CamType.VECTOR,
                                          CamOutBaseData.Shape.Obround,
                                          lineWidth, lineWidth, pt0, ptVia);
                camOut.Add(camd);
                camd = new CamOutBaseData(layer,
                                          CamOutBaseData.CamType.VECTOR,
                                          CamOutBaseData.Shape.Obround,
                                          lineWidth, lineWidth, ptVia, pt1);
                camOut.Add(camd);
            }
        }
예제 #3
0
 /// <summary>
 /// CAMデータの生成
 /// </summary>
 /// <param name="camOut"></param>
 public override void GenerateCamData(CamOut camOut)
 {
     refNum.GenerateCamData(camOut);
     if (contentsObj != null)
     {
         foreach (MbeObj obj in contentsObj)
         {
             obj.GenerateCamData(camOut);
         }
     }
 }
예제 #4
0
        /// <summary>
        /// CAMデータの生成
        /// </summary>
        /// <param name="camOut"></param>
        public override void GenerateCamData(CamOut camOut)
        {
            int   width        = PadSize.Width;
            int   height       = PadSize.Height;
            int   stWidth      = PadSize.Width + SrMargin * 2;
            int   stHeight     = PadSize.Height + SrMargin * 2;
            int   drillSize    = Diameter;
            Point pt0          = GetPos(0);
            Point pt1          = GetPos(0);
            int   innerLandDia = InnerLandDia;


            CamOutBaseData camd;

            CamOutBaseData.Shape _shape = (shape == PadShape.Rect ? CamOutBaseData.Shape.Rect : CamOutBaseData.Shape.Obround);

            camd = new CamOutBaseData(MbeLayer.LayerValue.DRL, CamOutBaseData.CamType.DRILL,
                                      CamOutBaseData.Shape.DrillPTH, drillSize, drillSize, pt0, pt1);
            camOut.Add(camd);

            camd = new CamOutBaseData(MbeLayer.LayerValue.CMP, CamOutBaseData.CamType.FLASH,
                                      _shape, width, height, pt0, pt1);
            camOut.Add(camd);

            if ((innerLayerConnectionInfo & (ulong)MbeLayer.LayerValue.L2) != 0)
            {
                camd = new CamOutBaseData(MbeLayer.LayerValue.L2, CamOutBaseData.CamType.FLASH,
                                          _shape, innerLandDia, innerLandDia, pt0, pt1);
                camOut.Add(camd);
            }

            if ((innerLayerConnectionInfo & (ulong)MbeLayer.LayerValue.L3) != 0)
            {
                camd = new CamOutBaseData(MbeLayer.LayerValue.L3, CamOutBaseData.CamType.FLASH,
                                          _shape, innerLandDia, innerLandDia, pt0, pt1);
                camOut.Add(camd);
            }

            camd = new CamOutBaseData(MbeLayer.LayerValue.SOL, CamOutBaseData.CamType.FLASH,
                                      _shape, width, height, pt0, pt1);
            camOut.Add(camd);

            if (!no_ResistMask)
            {
                camd = new CamOutBaseData(MbeLayer.LayerValue.STC, CamOutBaseData.CamType.FLASH,
                                          _shape, stWidth, stHeight, pt0, pt1);
                camOut.Add(camd);

                camd = new CamOutBaseData(MbeLayer.LayerValue.STS, CamOutBaseData.CamType.FLASH,
                                          _shape, stWidth, stHeight, pt0, pt1);
                camOut.Add(camd);
            }
        }
예제 #5
0
        /// <summary>
        /// CAMデータの生成
        /// </summary>
        /// <param name="camOut"></param>
        public override void GenerateCamData(CamOut camOut)
        {
            CamOutBaseData camd;

            foreach (MbeGapChkObjLine obj in fillLineList)
            {
                Point pt0 = obj.p0;
                Point pt1 = obj.p1;
                camd = new CamOutBaseData(layer,
                                          CamOutBaseData.CamType.VECTOR,
                                          CamOutBaseData.Shape.Obround,
                                          traceWidth, traceWidth, pt0, pt1);
                camOut.Add(camd);
            }
        }
예제 #6
0
        /// <summary>
        /// CAMデータの生成
        /// </summary>
        /// <param name="camOut"></param>
        public override void GenerateCamData(CamOut camOut)
        {
            int width  = PadSize.Width;
            int height = PadSize.Height;


            Point          pt0 = GetPos(0);
            Point          pt1 = GetPos(0);
            CamOutBaseData camd;

            CamOutBaseData.Shape _shape = (shape == PadShape.Rect ? CamOutBaseData.Shape.Rect : CamOutBaseData.Shape.Obround);


            camd = new CamOutBaseData(layer, CamOutBaseData.CamType.FLASH,
                                      _shape, width, height, pt0, pt1);
            camOut.Add(camd);


            if (layer == MbeLayer.LayerValue.CMP || layer == MbeLayer.LayerValue.SOL)
            {
                if (!no_ResistMask)     //Version 0.50
                {
                    int stWidth  = PadSize.Width + SrMargin * 2;
                    int stHeight = PadSize.Height + SrMargin * 2;
                    MbeLayer.LayerValue stLayer = (layer == MbeLayer.LayerValue.CMP ? MbeLayer.LayerValue.STC : MbeLayer.LayerValue.STS);
                    camd = new CamOutBaseData(stLayer, CamOutBaseData.CamType.FLASH,
                                              _shape, stWidth, stHeight, pt0, pt1);
                    camOut.Add(camd);
                }

                if (!no_MM)
                {
                    int stWidth  = PadSize.Width - MmReduce * 2;
                    int stHeight = PadSize.Height - MmReduce * 2;
                    MbeLayer.LayerValue stLayer = (layer == MbeLayer.LayerValue.CMP ? MbeLayer.LayerValue.MMC : MbeLayer.LayerValue.MMS);
                    camd = new CamOutBaseData(stLayer, CamOutBaseData.CamType.FLASH,
                                              _shape, stWidth, stHeight, pt0, pt1);
                    camOut.Add(camd);
                }
            }
        }
예제 #7
0
        /// <summary>
        /// CAMデータの生成
        /// </summary>
        /// <param name="camOut"></param>
        public override void GenerateCamData(CamOut camOut)
        {
            if (layer == MbeLayer.LayerValue.DOC)
            {
                return;
            }
            LinkedList <CamOutBaseData> camdataLList = new LinkedList <CamOutBaseData>();
            bool reverse;

            switch (layer)
            {
            case MbeLayer.LayerValue.PLS:
            case MbeLayer.LayerValue.STS:
            case MbeLayer.LayerValue.SOL:
                reverse = true;
                break;

            default:
                reverse = false;
                break;
            }
            MbeView.boardFont.GenerateCamDataString(camdataLList, 0, 0, reverse, signame, TextHeight, LineWidth);
            Point ptz = new Point(0, 0);
            Point pt  = GetPos(0);

            foreach (CamOutBaseData camd in camdataLList)
            {
                if (dir != 0)
                {
                    camd.RotateStep90(dir, ptz);
                }
                camd.Move(pt);
                camd.layer = layer;
                camOut.Add(camd);
            }
        }
예제 #8
0
 /// <summary>
 /// CAMデータの生成
 /// </summary>
 /// <param name="camOut"></param>
 public abstract void GenerateCamData(CamOut camOut);
예제 #9
0
        /// <summary>
        /// CAMデータの生成
        /// </summary>
        /// <param name="camOut"></param>
        public override void GenerateCamData(CamOut camOut)
        {
            int _endAngle;

            if (LimitStartEnd())
            {
                _endAngle = startAngle + 3600;
            }
            else
            {
                _endAngle = endAngle;
                if (_endAngle == startAngle)
                {
                    _endAngle = startAngle + 3600;
                }
                else if (_endAngle < startAngle)
                {
                    _endAngle += 3600;
                }
            }



            int angle = startAngle;

            bool   endFlag = false;
            int    x;
            int    y;
            double angleRad;

            angleRad = (double)angle / 1800.0 * Math.PI;
            x        = (int)Math.Round(radius * Math.Cos(angleRad)) + posArray[0].X;
            y        = (int)Math.Round(radius * Math.Sin(angleRad)) + posArray[0].Y;
            Point pt0 = new Point(x, y);
            Point pt1;

            double division = radius * Math.PI * 2 / CAMOUT_MAXLINELENGTH;

            if (division < CAMOUT_DIVISION)
            {
                division = CAMOUT_DIVISION;
            }

            while (!endFlag)
            {
                angle += (int)Math.Round(3600 / division);
                if (angle >= _endAngle)
                {
                    endFlag = true;
                    angle   = _endAngle;
                }
                angleRad = (double)angle / 1800.0 * Math.PI;
                x        = (int)Math.Round(radius * Math.Cos(angleRad)) + posArray[0].X;
                y        = (int)Math.Round(radius * Math.Sin(angleRad)) + posArray[0].Y;
                pt1      = new Point(x, y);

                if (!pt0.Equals(pt1))                  //ゼロ長データは出力しない
                {
                    CamOutBaseData camd = new CamOutBaseData(layer,
                                                             CamOutBaseData.CamType.VECTOR,
                                                             CamOutBaseData.Shape.Obround,
                                                             lineWidth, lineWidth, pt0, pt1);
                    camOut.Add(camd);
                    pt0 = pt1;
                }
            }
        }