/// <summary> /// 替换模号件号 /// </summary> /// <param name="model"></param> /// <param name="info"></param> /// <returns></returns> public static Part Replace(AbstractModel model, MoldInfoModel info) { Session theSession = Session.GetSession(); UFSession theUFSession = UFSession.GetUFSession(); Part workPart = theSession.Parts.Work; Component ct = model.GetPartComp(workPart); string OldName = model.MoldInfo.MoldNumber + "-" + model.MoldInfo.WorkpieceNumber; string newName = info.MoldNumber + "-" + info.WorkpieceNumber; string newPartPath = model.WorkpiecePath.Replace(OldName, newName); if (File.Exists(newPartPath)) { File.Delete(newPartPath); } File.Move(model.WorkpiecePath, newPartPath); if (ct != null) { model.PartTag.Close(NXOpen.BasePart.CloseWholeTree.False, NXOpen.BasePart.CloseModified.UseResponses, null); if (Basic.AssmbliesUtils.ReplaceComp(ct, newPartPath, ct.Name.Replace(OldName, newName))) { return(ct.Prototype as Part); } return(null); } else { model.PartTag.Close(NXOpen.BasePart.CloseWholeTree.False, NXOpen.BasePart.CloseModified.UseResponses, null); //NXOpen.PartLoadStatus partLoadStatus1; //BasePart part = theSession.Parts.OpenBaseDisplay(newPartPath, out partLoadStatus1); Tag partTag; UFPart.LoadStatus error_status; theUFSession.Part.Open(newPartPath, out partTag, out error_status); return(NXObjectManager.Get(partTag) as Part); } }