/// <summary> /// 通过属性获取 /// </summary> /// <param name="bodys">一种齿(阵列)</param> /// <returns></returns> public ElectrodeToolhInfo[,] GetToolhInfosForAttribute(List <Body> bodys, Matrix4 matr, CartesianCoordinateSystem csys) { ElectrodeToolhInfo[,] info = new ElectrodeToolhInfo[this.PitchXNum, this.PitchYNum]; var toolhNumList = bodys.GroupBy(a => AttributeUtils.GetAttrForInt(a, "ToolhNumber")); List <BodyPitchClassify> bps = new List <BodyPitchClassify>(); foreach (var toolhNum in toolhNumList) { BodyPitchClassify bp = new BodyPitchClassify(toolhNum.ToList(), matr, csys, this.PitchXNum, this.PitchYNum); bp.SetAttribute(); bps.Add(bp); } for (int i = 0; i < this.PitchXNum; i++) { for (int k = 0; k < this.PitchYNum; k++) { List <Body> temp = new List <Body>(); foreach (BodyPitchClassify by in bps) { temp.Add(by.ClassifyBodys[i, k]); } info[i, k] = ElectrodeToolhInfo.GetToolhInfoForAttribute(temp.ToArray()); } } return(info); }
protected override void GetAttribute(Part part) { base.GetAttribute(part); this.WorkNumber = AttributeUtils.GetAttrForInt(part, "WorkNumber"); string[] temp = new string[4]; for (int i = 0; i < 4; i++) { temp[i] = AttributeUtils.GetAttrForString(part, "Matrx4", i); } this.WorkMatr = StringToMatrx4(temp); }
/// <summary> /// 查询是否扣间隙 /// </summary> /// <returns></returns> public bool AskEleIsOffset() { int offset = AttributeUtils.GetAttrForInt(this.pt, "MdblsShrinkBody"); if (offset == 0) { return(true); } else { return(false); } }
/// <summary> /// 读取属性 /// </summary> public void GetAttribute(Part obj) { this.EleName = AttributeUtils.GetAttrForString(obj, "EleName"); this.BorrowName = AttributeUtils.GetAttrForString(obj, "BorrowName"); this.PitchX = AttributeUtils.GetAttrForDouble(obj, "PitchX"); this.PitchXNum = AttributeUtils.GetAttrForInt(obj, "PitchXNum"); this.PitchY = AttributeUtils.GetAttrForDouble(obj, "PitchY"); this.PitchYNum = AttributeUtils.GetAttrForInt(obj, "PitchYNum"); this.CrudeInter = AttributeUtils.GetAttrForDouble(obj, "CrudeInter"); this.CrudeNum = AttributeUtils.GetAttrForInt(obj, "CrudeNum"); this.DuringInter = AttributeUtils.GetAttrForDouble(obj, "DuringInter"); this.DuringNum = AttributeUtils.GetAttrForInt(obj, "DuringNum"); this.FineInter = AttributeUtils.GetAttrForDouble(obj, "FineInter"); this.FineNum = AttributeUtils.GetAttrForInt(obj, "FineNum"); this.Material = AttributeUtils.GetAttrForString(obj, "Material1"); this.EleType = AttributeUtils.GetAttrForString(obj, "EleType"); this.Condition = AttributeUtils.GetAttrForString(obj, "Condition"); this.Extrudewith = AttributeUtils.GetAttrForDouble(obj, "Extrudewith"); this.Ch = AttributeUtils.GetAttrForString(obj, "CH"); this.IsPreparation = AttributeUtils.GetAttrForBool(obj, "IsPreparation"); this.Remarks = AttributeUtils.GetAttrForString(obj, "Remarks"); this.Technology = AttributeUtils.GetAttrForString(obj, "Technology"); this.CamTemplate = AttributeUtils.GetAttrForString(obj, "CamTemplate"); for (int i = 0; i < 3; i++) { this.EleSetValue[i] = AttributeUtils.GetAttrForDouble(obj, "EleSetValue", i); } for (int i = 0; i < 3; i++) { this.Preparation[i] = AttributeUtils.GetAttrForInt(obj, "Preparation", i); } this.Positioning = AttributeUtils.GetAttrForString(obj, "Positioning"); this.ElePresentation = AttributeUtils.GetAttrForString(obj, "ElePresentation"); this.Area = AttributeUtils.GetAttrForDouble(obj, "Area"); this.EleNumber = AttributeUtils.GetAttrForInt(obj, "EleNumber"); this.DatumWidth = AttributeUtils.GetAttrForDouble(obj, "DatumWidth"); this.EleMinDim = AttributeUtils.GetAttrForDouble(obj, "EleMinDim"); for (int i = 0; i < 2; i++) { this.EleHeadDis[i] = AttributeUtils.GetAttrForDouble(obj, "EleHeadDis", i); } }
private bool PartIsWork() { int workNumber = AttributeUtils.GetAttrForInt(workPart, "WorkNumber"); if (workNumber != 0) { WorkModel work = new WorkModel(); work.GetModelForPart(workPart); this.model.Work = work; return(true); } else { return(false); } }
/// <summary> /// 读取属性 /// </summary> public static ElectrodeNameInfo GetAttribute(NXObject obj) { ElectrodeNameInfo info = new ElectrodeNameInfo(); try { info.EleName = AttributeUtils.GetAttrForString(obj, "EleName"); info.BorrowName = AttributeUtils.GetAttrForString(obj, "BorrowName"); info.EleNumber = AttributeUtils.GetAttrForInt(obj, "EleNumber"); info.EleEditionNumber = AttributeUtils.GetAttrForString(obj, "EleEditionNumber"); return(info); } catch (NXException ex) { throw ex; } }
/// <summary> /// 读取属性 /// </summary> public static ElectrodePitchInfo GetAttribute(NXObject obj) { ElectrodePitchInfo info = new ElectrodePitchInfo(); try { info.PitchX = AttributeUtils.GetAttrForDouble(obj, "PitchX"); info.PitchXNum = AttributeUtils.GetAttrForInt(obj, "PitchXNum"); info.PitchY = AttributeUtils.GetAttrForDouble(obj, "PitchY"); info.PitchYNum = AttributeUtils.GetAttrForInt(obj, "PitchYNum"); return(info); } catch (NXException ex) { throw ex; } }
/// <summary> /// 读取属性 /// </summary> public static ElectrodePreparationInfo GetAttribute(NXObject obj) { ElectrodePreparationInfo info = new ElectrodePreparationInfo(); try { info.IsPreparation = AttributeUtils.GetAttrForBool(obj, "IsPreparation"); info.Material = AttributeUtils.GetAttrForString(obj, "Material1"); for (int i = 0; i < 3; i++) { info.Preparation[i] = AttributeUtils.GetAttrForInt(obj, "Preparation", i); } return(info); } catch (NXException ex) { throw ex; } }
/// <summary> /// 通过电极找Work /// </summary> /// <param name="ele"></param> /// <returns></returns> public static WorkModel FindWorkForElectrode(ElectrodeModel ele) { string name = ele.MoldInfo.MoldNumber + "-" + ele.MoldInfo.WorkpieceNumber; foreach (Part part in Session.GetSession().Parts) { if (part.Name.Length > name.Length) { int number = AttributeUtils.GetAttrForInt(part, "WorkNumber"); string type = AttributeUtils.GetAttrForString(part, "PartType"); if (ele.WorkNumber == number && type == "Work" && part.Name.Substring(0, name.Length).Equals(name)) { WorkModel model = new WorkModel(); model.GetModelForPart(part); return(model); } } } return(null); }
/// <summary> /// 以属性得到实体 /// </summary> /// <param name="obj"></param> /// <returns></returns> public new static WorkInfo GetAttribute(NXObject obj) { int num = 0; Matrix4 mat = new Matrix4(); mat.Identity(); try { num = AttributeUtils.GetAttrForInt(obj, "WorkNumber"); WorkInfo info = new WorkInfo(MoldInfo.GetAttribute(obj), UserModel.GetAttribute(obj), num, Matrix4Info.GetAttribute(obj).Matr); info.Interference = AttributeUtils.GetAttrForBool(obj, "Interference"); return(info); } catch (NXException ex) { ClassItem.WriteLogFile("未获取到属性" + ex.Message); return(new WorkInfo(MoldInfo.GetAttribute(obj), UserModel.GetAttribute(obj), num, mat)); } }
/// <summary> /// 通过WORK找电极 /// </summary> /// <param name="workNum"></param> /// <returns></returns> public static List <ElectrodeModel> FindElectrodeForWork(WorkModel work) { List <ElectrodeModel> models = new List <ElectrodeModel>(); string name = work.MoldInfo.MoldNumber + "-" + work.MoldInfo.WorkpieceNumber; foreach (Part part in Session.GetSession().Parts) { if (part.Name.Length > name.Length) { int number = AttributeUtils.GetAttrForInt(part, "WorkNumber"); string type = AttributeUtils.GetAttrForString(part, "PartType"); if (work.WorkNumber == number && type == "Electrode" && part.Name.Substring(0, name.Length).Equals(name)) { ElectrodeModel model = new ElectrodeModel(); model.GetModelForPart(part); models.Add(model); } } } return(models); }
private bool PartIsWork() { int workNumber = AttributeUtils.GetAttrForInt(workPart, "WorkNumber"); if (workNumber != 0) { WorkAssembleModel work = new WorkAssembleModel(); work.GetPart(workPart); this.model.Work = work; if (vecName == "Z+") { this.model.Vec = this.model.Work.Matr.GetZAxis(); } if (vecName == "X+") { this.model.Vec = this.model.Work.Matr.GetXAxis(); } if (vecName == "X-") { Vector3d vec = this.model.Work.Matr.GetXAxis(); this.model.Vec = new Vector3d(-vec.X, -vec.Y, -vec.Z); } if (vecName == "Y+") { this.model.Vec = this.model.Work.Matr.GetYAxis(); } if (vecName == "Y-") { Vector3d vec = this.model.Work.Matr.GetYAxis(); this.model.Vec = new Vector3d(-vec.X, -vec.Y, -vec.Z); } return(true); } else { return(false); } }
/// <summary> /// 读取属性 /// </summary> public static ElectrodeGapValueInfo GetAttribute(NXObject obj) { ElectrodeGapValueInfo info = new ElectrodeGapValueInfo(); try { info.CrudeInter = AttributeUtils.GetAttrForDouble(obj, "CrudeInter"); info.CrudeNum = AttributeUtils.GetAttrForInt(obj, "CrudeNum"); info.DuringInter = AttributeUtils.GetAttrForDouble(obj, "DuringInter"); info.DuringNum = AttributeUtils.GetAttrForInt(obj, "DuringNum"); info.FineInter = AttributeUtils.GetAttrForDouble(obj, "FineInter"); info.FineNum = AttributeUtils.GetAttrForInt(obj, "FineNum"); for (int i = 0; i < 2; i++) { info.ERNum[i] = AttributeUtils.GetAttrForInt(obj, "ERNum", i); } return(info); } catch (NXException ex) { throw ex; } }