public ElectrodeBomBuilder(ElectrodeInfo info, AssembleModel assemble) { this.info = info; foreach (ElectrodeModel model in assemble.Electrodes) { if (model.EleInfo.EleName == info.EleName) { Model.Add(model); } } foreach (WorkModel wk in assemble.Works) { if (wk.WorkNumber == Model[0].WorkNumber) { work = wk; } } EletrodePreparation pre; if (info.Material.Equals("紫铜")) { pre = new EletrodePreparation("CuLength", "CuWidth"); } else { pre = new EletrodePreparation("WuLength", "WuWidth"); } int[] temp = new int[2] { info.Preparation[0], info.Preparation[1] }; info.IsPreparation = pre.IsPreCriterion(temp); }
/// <summary> /// 获取备料尺寸 /// </summary> /// <param name="oldPre"></param> /// <param name="oldPitch"></param> /// <param name="newPitch"></param> /// <returns></returns> public int[] GetNewPreparation(int[] oldPre, string material) { EletrodePreparation pre; double x = Math.Floor((newPitch.PitchX) * (newPitch.PitchXNum) - (oldPitch.PitchX) * (oldPitch.PitchXNum)); double y = Math.Floor((newPitch.PitchY) * (newPitch.PitchYNum) - (oldPitch.PitchY) * (oldPitch.PitchYNum)); oldPre[0] = oldPre[0] + (int)x; oldPre[1] = oldPre[1] + (int)y; if (material.Equals("紫铜")) { pre = new EletrodePreparation("CuLength", "CuWidth"); } else { pre = new EletrodePreparation("WuLength", "WuWidth"); } pre.GetPreparation(ref oldPre); return(oldPre); }
public static int[] GetPreparation(double x, int xNumber, double y, int yNumber, string material, ElectrodeInfo eleInfo) { Point3d oldPt = new Point3d(eleInfo.Preparation[0], eleInfo.Preparation[1], eleInfo.Preparation[2]); if (eleInfo.PitchX != 0 && eleInfo.PitchXNum > 1) { oldPt.X = oldPt.X - eleInfo.PitchX * (eleInfo.PitchXNum - 1); } if (eleInfo.PitchY != 0 && eleInfo.PitchYNum > 1) { oldPt.Y = oldPt.Y - eleInfo.PitchY * (eleInfo.PitchYNum - 1); } Point3d newPt = new Point3d(oldPt.X, oldPt.Y, oldPt.Z); if (x != 0 && xNumber > 1) { newPt.X = oldPt.X + x * (xNumber - 1); } if (y != 0 && yNumber > 1) { newPt.Y = oldPt.Y + y * (yNumber - 1); } int[] temp = new int[3] { (int)newPt.X, (int)newPt.Y, (int)newPt.Z }; EletrodePreparation pre; if (material.Equals("紫铜")) { pre = new EletrodePreparation("CuLength", "CuWidth"); } else { pre = new EletrodePreparation("WuLength", "WuWidth"); } pre.GetPreparation(ref temp); return(temp); }