Пример #1
0
        public void AlterDrawing()
        {
            string dwgName = Model[0].EleInfo.EleName + "_dwg";
            string path    = Model[0].WorkpieceDirectoryPath + Model[0].EleInfo.EleName + "_dwg.prt";
            Part   dwg     = null;

            foreach (Part part in Session.GetSession().Parts)
            {
                if (part.Name.ToUpper().Equals(dwgName.ToUpper()))
                {
                    dwg = part;
                    break;
                }
            }
            if (dwg == null)
            {
                if (File.Exists(path))
                {
                    dwg = PartUtils.OpenPartFile(path);
                }
            }
            if (dwg != null)
            {
                info.SetAttribute(dwg);
                string temp = info.Preparation[0].ToString() + "*" + info.Preparation[1].ToString() + "*" + info.Preparation[2].ToString();
                AttributeUtils.AttributeOperation("StrPre", temp, dwg);
                PartUtils.SetPartDisplay(dwg);
                foreach (NXOpen.Drawings.DrawingSheet sh in dwg.DrawingSheets)
                {
                    Basic.DrawingUtils.UpdateViews(sh);
                }
            }
        }
Пример #2
0
        //------------------------------------------------------------------------------
        //Callback Name: apply_cb
        //------------------------------------------------------------------------------
        public int apply_cb()
        {
            int errorCode = 0;

            try
            {
                //---- Enter your callback code here
                bool anyPartsModified1;
                NXOpen.PartSaveStatus partSaveStatus1;
                Session.GetSession().Parts.SaveAll(out anyPartsModified1, out partSaveStatus1);
                NXOpen.Assemblies.Component eleComp = this.SeleElePart.GetSelectedObjects()[0] as NXOpen.Assemblies.Component;
                string name = eleComp.Name + "-" + this.StrName.Value.ToUpper();
                if (!this.EleDuplicationOfName(name))
                {
                    this.StrName.Value = "";
                    return(0);
                }
                ElectrodeModel eleModel = new ElectrodeModel();
                eleModel.GetModelForPart(eleComp.Prototype as Part);
                name = work.WorkpieceDirectoryPath + name + ".prt";
                Vector3d movePt = new Vector3d(double_x.Value, double_y.Value, double_z.Value);
                NXOpen.Assemblies.Component copyComp = AssmbliesUtils.MoveCompCopyPart(eleComp, movePt, work.WorkMatr);
                AssmbliesUtils.MakeUnique(copyComp, name);
                ElectrodeInfo newInfo = this.SetEleInfo(eleModel.EleInfo);
                newInfo.SetAttribute(copyComp.Prototype as Part);
            }
            catch (Exception ex)
            {
                //---- Enter your exception handling code here -----
                errorCode = 1;
                theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
            }
            return(errorCode);
        }
Пример #3
0
        private void AlterElectrode(ElectrodeInfo newEleInfo, ElectrodeModel model)
        {
            // Part workPart = Session.GetSession().Parts.Work;
            PartUtils.SetPartDisplay(work.PartTag);
            double[] temp = new double[3];
            for (int i = 0; i < 3; i++)
            {
                temp[i] = AttributeUtils.GetAttrForDouble(model.PartTag, "EleSetValue", i);
            }
            Point3d oldPt = new Point3d(temp[0], temp[1], temp[2]);
            Point3d newPt = new Point3d(newEleInfo.EleSetValue[0], newEleInfo.EleSetValue[1], newEleInfo.EleSetValue[2]);
            Point3d dis   = GetSingleToothDis(newEleInfo, model.EleInfo, oldPt);
            //  newEleInfo.Positioning = model.EleInfo.Positioning;
            string pos = model.EleInfo.Positioning;

            model.EleInfo = newEleInfo;
            newEleInfo.SetAttribute(model.PartTag);
            AttributeUtils.AttributeOperation("Positioning", pos, model.PartTag);
            if (!UMathUtils.IsEqual(oldPt, newPt))
            {
                NXOpen.Assemblies.Component ct = AssmbliesUtils.GetPartComp(work.PartTag, model.PartTag);
                PartUtils.SetPartWork(ct);
                Vector3d move = new Vector3d(0, 0, 0);
                move.X = newPt.X - oldPt.X - dis.X;
                move.Y = newPt.Y - oldPt.Y - dis.Y;

                Body[] bodys = model.PartTag.Bodies.ToArray();
                if (bodys.Length > 1)
                {
                    AlterMove(model);
                    DeleteObject.UpdateObject();
                    CreateUnite(bodys);
                }
                PartUtils.SetPartWork(null);
                AssmbliesUtils.MoveCompPart(ct, move, this.work.WorkMatr);
            }
            DeleteObject.UpdateObject();
        }
Пример #4
0
        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);
        }