Exemplo n.º 1
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);
            }
        }
Exemplo n.º 2
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);
                }
            }
        }
Exemplo n.º 3
0
        protected CamOutResult ExcellonDrillListOut(string path)
        {
            CamOutResult result = new CamOutResult();

            result.code = CamOutResult.ResultCode.NOERROR;
            string       outpath      = Path.ChangeExtension(path, "DRI");
            StreamWriter streamWriter = null;

            try {
                streamWriter = new StreamWriter(outpath);
                streamWriter.WriteLine("Code    Size(inch)            Number");


                //string tCode = "";
                //double dia;
                //string str;
                //string platedInfo;

                int            dataCount = baseDataList.Count;
                int            index     = 0;
                CamOutBaseData camd      = baseDataList[index];
                while (index < dataCount)
                {
                    if (camd.shape == CamOutBaseData.Shape.Drill || camd.shape == CamOutBaseData.Shape.DrillPTH)
                    {
                        CamOutBaseData.Shape shape = camd.shape;
                        int width      = camd.width;
                        int drillCount = 0;
                        while (true)
                        {
                            index++;
                            drillCount++;

                            if (index >= dataCount || baseDataList[index].shape != shape || baseDataList[index].width != width)
                            {
                                string tCode      = camd.code;
                                double dia        = (double)camd.width / 254000;
                                string platedInfo = (camd.shape == CamOutBaseData.Shape.Drill ? "NPTH" : "PTH ");
                                string str        = string.Format("{0}       {1:0.0000}     {2}     {3}", tCode, dia, platedInfo, drillCount);
                                streamWriter.WriteLine(str);
                                camd = baseDataList[index];
                                break;
                            }
                        }
                    }
                    else
                    {
                        index++;
                    }
                }

                //string tCode = "";
                //double dia;
                //string str;
                //string platedInfo;
                //int n = baseDataList.Count;
                //for (int i = 0; i < n; i++) {
                //    CamOutBaseData camd = baseDataList[i];
                //    if (camd.layer != MbeLayer.LayerValue.DRL) continue;
                //    if (tCode != camd.code) {
                //        tCode = camd.code;
                //        dia = (double)camd.width / 254000;
                //        if(camd.shape == CamOutBaseData.Shape.Drill){
                //            platedInfo = "NPTH";
                //        }else{
                //            platedInfo = "PTH";
                //        }
                //        str = string.Format("{0}       {1:0.0000}     {2}", tCode, dia,platedInfo);
                //        streamWriter.WriteLine(str);
                //    }
                //}
            }
            catch (Exception) {
                result.code     = CamOutResult.ResultCode.FILEERROR;
                result.filename = Path.GetFileName(outpath);
                return(result);
            }
            finally {
                if (streamWriter != null)
                {
                    streamWriter.Close();
                }
            }
            return(result);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Tコード、Dコード文字列の設定
        /// </summary>
        protected CamOutResult SetCodeString()
        {
            CamOutResult result = new CamOutResult();

            result.code = CamOutResult.ResultCode.NOERROR;
            int n = baseDataList.Count;

            if (n < 1)
            {
                return(result);
            }
            baseDataList.Sort(CompareBaseDataByAperture);
            int tSuffix = 1;
            int dSuffix = 10;


            CamOutBaseData.Shape shape = CamOutBaseData.Shape.Err;
            int width  = 0;
            int height = 0;



            //CamOutBaseData camd = baseDataList[0];
            //string strCode;
            //if (shape == CamOutBaseData.Shape.Drill || shape == CamOutBaseData.Shape.DrillPTH) {
            //    strCode = string.Format("T{0:00}", tSuffix);
            //    tSuffix++;
            //} else {
            //    strCode = string.Format("D{0}", dSuffix);
            //    dSuffix++;
            //}
            //camd.code = strCode;


            string strCode = "";

            for (int i = 0; i < n; i++)
            {
                CamOutBaseData camd = baseDataList[i];

                if (shape != camd.shape || width != camd.width || height != camd.height)
                {
                    shape  = camd.shape;
                    width  = camd.width;
                    height = camd.height;
                    if (shape == CamOutBaseData.Shape.Drill || shape == CamOutBaseData.Shape.DrillPTH)
                    {
                        if (tSuffix >= 100)
                        {
                            result.code = CamOutResult.ResultCode.TCODEOVER;
                            return(result);
                        }
                        strCode = string.Format("T{0:00}", tSuffix);
                        tSuffix++;
                    }
                    else
                    {
                        if (dSuffix >= 1000)
                        {
                            result.code = CamOutResult.ResultCode.DCODEOVER;
                            return(result);
                        }
                        strCode = string.Format("D{0}", dSuffix);
                        dSuffix++;
                    }
                }
                camd.code = strCode;
            }
            return(result);
        }