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