Beispiel #1
0
        public override void GenerateGapChkData(LinkedList <MbeGapChkObj> chkObjList, int _netNum)
        //public override void GenerateGapChkData(MbeGapChk gapChk, int _netNum)
        {
            if (layer != MbeLayer.LayerValue.CMP &&
                layer != MbeLayer.LayerValue.L2 &&
                layer != MbeLayer.LayerValue.L3 &&
                layer != MbeLayer.LayerValue.SOL)
            {
                return;
            }

            Point pt0 = GetPos(0);
            Point pt1 = GetPos(1);

            if (pt0.Equals(pt1))
            {
                MbeGapChkObjPoint gapChkObj = new MbeGapChkObjPoint();
                gapChkObj.layer  = layer;
                gapChkObj.netNum = _netNum;
                gapChkObj.mbeObj = this;
                gapChkObj.SetPointValue(pt0, LineWidth);
                //gapChk.Add(gapChkObj);
                chkObjList.AddLast(gapChkObj);
            }
            else
            {
                Point ptVia;
                bool  bendMode = getPointVia(out ptVia);

                if (bendMode)
                {
                    MbeGapChkObjLine gapChkObj = new MbeGapChkObjLine();
                    gapChkObj.layer  = layer;
                    gapChkObj.netNum = _netNum;
                    gapChkObj.mbeObj = this;
                    gapChkObj.SetLineValue(pt0, ptVia, LineWidth);
                    //gapChk.Add(gapChkObj);
                    chkObjList.AddLast(gapChkObj);

                    gapChkObj        = new MbeGapChkObjLine();
                    gapChkObj.layer  = layer;
                    gapChkObj.netNum = _netNum;
                    gapChkObj.mbeObj = this;
                    gapChkObj.SetLineValue(ptVia, pt1, LineWidth);
                    //gapChk.Add(gapChkObj);
                    chkObjList.AddLast(gapChkObj);
                }
                else
                {
                    MbeGapChkObjLine gapChkObj = new MbeGapChkObjLine();
                    gapChkObj.layer  = layer;
                    gapChkObj.netNum = _netNum;
                    gapChkObj.mbeObj = this;
                    gapChkObj.SetLineValue(pt0, pt1, LineWidth);
                    //gapChk.Add(gapChkObj);
                    chkObjList.AddLast(gapChkObj);
                }
            }
        }
Beispiel #2
0
 public void KeepOutData(LinkedList <MbeGapChkObj> chkObjList, int _netNum)
 {
     for (int i = 0; i < gapChkLayerTable.Length; i++)
     {
         MbeLayer.LayerValue layerValue = gapChkLayerTable[i];
         MbeGapChkObjPoint   gapChkObj  = new MbeGapChkObjPoint();
         gapChkObj.layer  = layerValue;
         gapChkObj.netNum = _netNum;
         gapChkObj.mbeObj = this;
         gapChkObj.SetPointValue(GetPos(0), Diameter);
         //gapChk.Add(gapChkObj);
         chkObjList.AddLast(gapChkObj);
     }
 }
Beispiel #3
0
        public override void GenerateGapChkData(LinkedList <MbeGapChkObj> chkObjList, int _netNum)
        //public override void GenerateGapChkData(MbeGapChk gapChk, int _netNum)
        {
            if (layer != MbeLayer.LayerValue.CMP &&
                layer != MbeLayer.LayerValue.L2 &&
                layer != MbeLayer.LayerValue.L3 &&
                layer != MbeLayer.LayerValue.SOL)
            {
                return;
            }
            else
            {
                bool reverse = (layer == MbeLayer.LayerValue.SOL);
                LinkedList <CamOutBaseData> camdataLList = new LinkedList <CamOutBaseData>();

                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);
                    if (camd.pt0.Equals(camd.pt1))
                    {
                        MbeGapChkObjPoint gapChkObj = new MbeGapChkObjPoint();
                        gapChkObj.layer  = layer;
                        gapChkObj.netNum = _netNum;
                        gapChkObj.mbeObj = this;
                        gapChkObj.SetPointValue(camd.pt0, LineWidth);
                        //gapChk.Add(gapChkObj);
                        chkObjList.AddLast(gapChkObj);
                    }
                    else
                    {
                        MbeGapChkObjLine gapChkObj = new MbeGapChkObjLine();
                        gapChkObj.layer  = layer;
                        gapChkObj.netNum = _netNum;
                        gapChkObj.mbeObj = this;
                        gapChkObj.SetLineValue(camd.pt0, camd.pt1, LineWidth);
                        //gapChk.Add(gapChkObj);
                        chkObjList.AddLast(gapChkObj);
                    }
                }
            }
        }
        public override void GenerateGapChkData(LinkedList <MbeGapChkObj> chkObjList, int _netNum)
        //public override void GenerateGapChkData(MbeGapChk gapChk,int _netNum)
        {
            if (layer != MbeLayer.LayerValue.CMP && layer != MbeLayer.LayerValue.SOL)
            {
                return;
            }

            if (shape == PadShape.Rect)
            {
                MbeGapChkObjRect gapChkObj = new MbeGapChkObjRect();
                gapChkObj.layer  = layer;
                gapChkObj.netNum = _netNum;
                gapChkObj.mbeObj = this;
                gapChkObj.SetRectValue(GetPos(0), PadSize.Width, PadSize.Height);
                //gapChk.Add(gapChkObj);
                chkObjList.AddLast(gapChkObj);
            }
            else
            {
                if (PadSize.Width == PadSize.Height)
                {
                    MbeGapChkObjPoint gapChkObj = new MbeGapChkObjPoint();
                    gapChkObj.layer  = layer;
                    gapChkObj.netNum = _netNum;
                    gapChkObj.mbeObj = this;
                    gapChkObj.SetPointValue(GetPos(0), PadSize.Width);
                    //gapChk.Add(gapChkObj);
                    chkObjList.AddLast(gapChkObj);
                }
                else
                {
                    MbeGapChkObjLine gapChkObj = new MbeGapChkObjLine();
                    gapChkObj.layer  = layer;
                    gapChkObj.netNum = _netNum;
                    gapChkObj.mbeObj = this;
                    gapChkObj.SetLineValue(GetPos(0), PadSize.Width, PadSize.Height);
                    //gapChk.Add(gapChkObj);
                    chkObjList.AddLast(gapChkObj);
                }
            }
        }
Beispiel #5
0
 public override void GenerateGapChkData(LinkedList <MbeGapChkObj> chkObjList, int _netNum)
 //public override void GenerateGapChkData(MbeGapChk gapChk, int _netNum)
 {
     for (int i = 0; i < gapChkLayerTable.Length; i++)
     {
         MbeLayer.LayerValue layerValue = gapChkLayerTable[i];
         if (layerValue == MbeLayer.LayerValue.L2 || layerValue == MbeLayer.LayerValue.L3)
         {
             //内層のときは非接続時はドリル径+0.4mm。(ただし、表層padサイズを超えない)接続時はpadSizeのWidthかHeightの小さい方
             int landDia;
             if (((ulong)layerValue & innerLayerConnectionInfo) == 0)
             {
                 landDia = dia + 4000;
                 if (landDia > InnerLandDia)
                 {
                     landDia = InnerLandDia;
                 }
             }
             else
             {
                 landDia = InnerLandDia;
             }
             MbeGapChkObjPoint gapChkObj = new MbeGapChkObjPoint();
             gapChkObj.layer  = layerValue;
             gapChkObj.netNum = _netNum;
             gapChkObj.mbeObj = this;
             gapChkObj.SetPointValue(GetPos(0), landDia);
             chkObjList.AddLast(gapChkObj);
         }
         else if (shape == PadShape.Rect)
         {
             MbeGapChkObjRect gapChkObj = new MbeGapChkObjRect();
             gapChkObj.layer  = layerValue;
             gapChkObj.netNum = _netNum;
             gapChkObj.mbeObj = this;
             gapChkObj.SetRectValue(GetPos(0), PadSize.Width, PadSize.Height);
             //gapChk.Add(gapChkObj);
             chkObjList.AddLast(gapChkObj);
         }
         else
         {
             if (PadSize.Width == PadSize.Height)
             {
                 MbeGapChkObjPoint gapChkObj = new MbeGapChkObjPoint();
                 gapChkObj.layer  = layerValue;
                 gapChkObj.netNum = _netNum;
                 gapChkObj.mbeObj = this;
                 gapChkObj.SetPointValue(GetPos(0), PadSize.Width);
                 //gapChk.Add(gapChkObj);
                 chkObjList.AddLast(gapChkObj);
             }
             else
             {
                 MbeGapChkObjLine gapChkObj = new MbeGapChkObjLine();
                 gapChkObj.layer  = layerValue;
                 gapChkObj.netNum = _netNum;
                 gapChkObj.mbeObj = this;
                 gapChkObj.SetLineValue(GetPos(0), PadSize.Width, PadSize.Height);
                 //gapChk.Add(gapChkObj);
                 chkObjList.AddLast(gapChkObj);
             }
         }
     }
 }