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); } } }
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); } }
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); } } }
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); } } } }