Exemple #1
0
        /// <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);
            }
        }