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);
        }
예제 #2
0
 /// <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;
     }
 }
예제 #3
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);
        }