public List <string> InterferenceBulider() { List <string> err = new List <string>(); Matrix4 inv = this.work.Info.Matr.GetInversMatrix(); CartesianCoordinateSystem csys = BoundingBoxUtils.CreateCoordinateSystem(this.work.Info.Matr, inv); foreach (Component eleCt in GetEleAllComp()) { ElectrodeInfo info = ElectrodeInfo.GetAttribute(eleCt); AskSetVaule(csys, info.AllInfo.SetValue, eleCt, ref err); Interference(eleCt, info.AllInfo.Name.EleName, info.AllInfo.SetValue.Positioning, "", ref err); if (MoveElePart(eleCt, info.AllInfo.Pitch, -1)) { Interference(eleCt, info.AllInfo.Name.EleName, info.AllInfo.SetValue.Positioning, "Pitch", ref err); MoveElePart(eleCt, info.AllInfo.Pitch, 1); } } return(err); }
/// <summary> /// 设置对话框显示 /// </summary> private void SetDisp(NXOpen.Assemblies.Component ct) { if (ParentAssmblieInfo.IsElectrode(ct)) { this.groupEle.Show = true; info = ElectrodeInfo.GetAttribute(ct); //this.strMoldNumber.Show = false; // this.strWorkpieceNumber.Show = false; // this.strEditionNumber.Show = false; this.groupWorkpiece.Show = false; this.groupWork.Show = false; ElectrodeInfo eleInfo = info as ElectrodeInfo; string temp = info.MoldInfo.MoldNumber + "-" + info.MoldInfo.WorkpieceNumber; this.strEleName.Value = temp; this.strEleName1.Value = eleInfo.AllInfo.Name.EleName.Substring(temp.Length, eleInfo.AllInfo.Name.EleName.Length - temp.Length); this.strEleEditionNumber.Value = eleInfo.AllInfo.Name.EleEditionNumber; } else if (ParentAssmblieInfo.IsWorkpiece(ct)) { info = WorkPieceInfo.GetAttribute(ct); this.groupWorkpiece.Show = true; this.groupEle.Show = false; this.groupWork.Show = false; this.strMoldNumber.Value = info.MoldInfo.MoldNumber; this.strWorkpieceNumber.Value = info.MoldInfo.WorkpieceNumber; this.strEditionNumber.Value = info.MoldInfo.EditionNumber; } else if (ParentAssmblieInfo.IsWork(ct)) { info = WorkInfo.GetAttribute(ct); this.groupWork.Show = true; this.groupEle.Show = false; this.groupWorkpiece.Show = false; this.intWorkNumber.Value = (info as WorkInfo).WorkNumber; } else if (!ParentAssmblieInfo.IsParent(ct)) { this.groupWorkpiece.Show = true; this.groupEle.Show = false; this.strWorkpieceNumber.Value = ct.Name; } }
public List <string> Replace() { List <string> err = new List <string>(); Part part; bool anyPartsModified; PartSaveStatus saveStatus; Session theSession = Session.GetSession(); if (oldCt != null && newCt != null && oldCt.Equals(newCt)) { return(err); } // AllUpdeteDrawing(); if ((part = ReplacePart.Replace(assm.Edm, info)) != null) { info.SetAttribute(part); theSession.Parts.SaveAll(out anyPartsModified, out saveStatus); err.Add("修改" + assm.Edm.AssembleName + "成功!"); } foreach (ElectrodeModel em in assm.Electrodes) { if ((part = ReplacePart.Replace(em, info)) != null) { info.SetAttribute(part); ElectrodeInfo eleInfo = new ElectrodeInfo(); eleInfo.GetAttribute(part); string oldEleName = eleInfo.EleName; string olddrwPath = em.WorkpieceDirectoryPath + oldEleName + "_dwg.prt"; string newEleName = oldEleName.Replace(em.MoldInfo.MoldNumber + "-" + em.MoldInfo.WorkpieceNumber, info.MoldNumber + "-" + info.WorkpieceNumber); eleInfo.EleName = newEleName; if (isBorrow) { eleInfo.BorrowName = oldEleName; } eleInfo.SetAttribute(part); theSession.Parts.SaveAll(out anyPartsModified, out saveStatus); err.Add("修改" + em.AssembleName + "成功!"); } } foreach (WorkModel wm in assm.Works) { if ((part = ReplacePart.Replace(wm, info)) != null) { info.SetAttribute(part); theSession.Parts.SaveAll(out anyPartsModified, out saveStatus); err.Add("修改" + wm.AssembleName + "成功!"); } } foreach (ElectrodeModel em in assm.Electrodes) { Part workPart = Session.GetSession().Parts.Work; ElectrodeInfo eleInfo = em.EleInfo; string oldEleName = eleInfo.EleName; string olddrwPath = em.WorkpieceDirectoryPath + oldEleName + "_dwg.prt"; if (File.Exists(olddrwPath)) { string newEleName = oldEleName.Replace(em.MoldInfo.MoldNumber + "-" + em.MoldInfo.WorkpieceNumber, info.MoldNumber + "-" + info.WorkpieceNumber); eleInfo.EleName = newEleName; if (isBorrow) { eleInfo.BorrowName = oldEleName; } if (File.Exists(olddrwPath.Replace(oldEleName, newEleName))) { File.Delete(olddrwPath.Replace(oldEleName, newEleName)); } File.Move(olddrwPath, olddrwPath.Replace(oldEleName, newEleName)); NXOpen.PartLoadStatus partLoadStatus1; BasePart part1 = Session.GetSession().Parts.OpenBase(olddrwPath.Replace(oldEleName, newEleName), out partLoadStatus1); PartUtils.SetPartDisplay(part1 as Part); eleInfo.SetAttribute(part1 as Part); NXOpen.Assemblies.Component comp = part1.ComponentAssembly.RootComponent.GetChildren()[0]; string workName = comp.Name.Replace(em.MoldInfo.MoldNumber + "-" + em.MoldInfo.WorkpieceNumber, info.MoldNumber + "-" + info.WorkpieceNumber); Basic.AssmbliesUtils.ReplaceComp(comp, em.WorkpieceDirectoryPath + workName + ".prt", workName); theSession.Parts.SaveAll(out anyPartsModified, out saveStatus); PartUtils.SetPartDisplay(workPart); err.Add("修改" + em.AssembleName + "_dwg" + "成功!"); } } return(err); }