示例#1
0
        /// <summary>
        /// 通过属性获取
        /// </summary>
        /// <param name="bodys">一种齿(阵列)</param>
        /// <returns></returns>
        public ElectrodeToolhInfo[,] GetToolhInfosForAttribute(List <Body> bodys, Matrix4 matr, CartesianCoordinateSystem csys)
        {
            ElectrodeToolhInfo[,] info = new ElectrodeToolhInfo[this.PitchXNum, this.PitchYNum];
            var toolhNumList             = bodys.GroupBy(a => AttributeUtils.GetAttrForInt(a, "ToolhNumber"));
            List <BodyPitchClassify> bps = new List <BodyPitchClassify>();

            foreach (var toolhNum in toolhNumList)
            {
                BodyPitchClassify bp = new BodyPitchClassify(toolhNum.ToList(), matr, csys, this.PitchXNum, this.PitchYNum);
                bp.SetAttribute();
                bps.Add(bp);
            }
            for (int i = 0; i < this.PitchXNum; i++)
            {
                for (int k = 0; k < this.PitchYNum; k++)
                {
                    List <Body> temp = new List <Body>();
                    foreach (BodyPitchClassify by in bps)
                    {
                        temp.Add(by.ClassifyBodys[i, k]);
                    }
                    info[i, k] = ElectrodeToolhInfo.GetToolhInfoForAttribute(temp.ToArray());
                }
            }
            return(info);
        }
示例#2
0
 protected override void GetAttribute(Part part)
 {
     base.GetAttribute(part);
     this.WorkNumber = AttributeUtils.GetAttrForInt(part, "WorkNumber");
     string[] temp = new string[4];
     for (int i = 0; i < 4; i++)
     {
         temp[i] = AttributeUtils.GetAttrForString(part, "Matrx4", i);
     }
     this.WorkMatr = StringToMatrx4(temp);
 }
示例#3
0
        /// <summary>
        /// 查询是否扣间隙
        /// </summary>
        /// <returns></returns>
        public bool AskEleIsOffset()
        {
            int offset = AttributeUtils.GetAttrForInt(this.pt, "MdblsShrinkBody");

            if (offset == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#4
0
        /// <summary>
        /// 读取属性
        /// </summary>
        public void GetAttribute(Part obj)
        {
            this.EleName    = AttributeUtils.GetAttrForString(obj, "EleName");
            this.BorrowName = AttributeUtils.GetAttrForString(obj, "BorrowName");

            this.PitchX    = AttributeUtils.GetAttrForDouble(obj, "PitchX");
            this.PitchXNum = AttributeUtils.GetAttrForInt(obj, "PitchXNum");
            this.PitchY    = AttributeUtils.GetAttrForDouble(obj, "PitchY");
            this.PitchYNum = AttributeUtils.GetAttrForInt(obj, "PitchYNum");

            this.CrudeInter  = AttributeUtils.GetAttrForDouble(obj, "CrudeInter");
            this.CrudeNum    = AttributeUtils.GetAttrForInt(obj, "CrudeNum");
            this.DuringInter = AttributeUtils.GetAttrForDouble(obj, "DuringInter");
            this.DuringNum   = AttributeUtils.GetAttrForInt(obj, "DuringNum");
            this.FineInter   = AttributeUtils.GetAttrForDouble(obj, "FineInter");
            this.FineNum     = AttributeUtils.GetAttrForInt(obj, "FineNum");

            this.Material    = AttributeUtils.GetAttrForString(obj, "Material1");
            this.EleType     = AttributeUtils.GetAttrForString(obj, "EleType");
            this.Condition   = AttributeUtils.GetAttrForString(obj, "Condition");
            this.Extrudewith = AttributeUtils.GetAttrForDouble(obj, "Extrudewith");
            this.Ch          = AttributeUtils.GetAttrForString(obj, "CH");

            this.IsPreparation = AttributeUtils.GetAttrForBool(obj, "IsPreparation");
            this.Remarks       = AttributeUtils.GetAttrForString(obj, "Remarks");
            this.Technology    = AttributeUtils.GetAttrForString(obj, "Technology");
            this.CamTemplate   = AttributeUtils.GetAttrForString(obj, "CamTemplate");

            for (int i = 0; i < 3; i++)
            {
                this.EleSetValue[i] = AttributeUtils.GetAttrForDouble(obj, "EleSetValue", i);
            }
            for (int i = 0; i < 3; i++)
            {
                this.Preparation[i] = AttributeUtils.GetAttrForInt(obj, "Preparation", i);
            }

            this.Positioning     = AttributeUtils.GetAttrForString(obj, "Positioning");
            this.ElePresentation = AttributeUtils.GetAttrForString(obj, "ElePresentation");
            this.Area            = AttributeUtils.GetAttrForDouble(obj, "Area");
            this.EleNumber       = AttributeUtils.GetAttrForInt(obj, "EleNumber");
            this.DatumWidth      = AttributeUtils.GetAttrForDouble(obj, "DatumWidth");
            this.EleMinDim       = AttributeUtils.GetAttrForDouble(obj, "EleMinDim");
            for (int i = 0; i < 2; i++)
            {
                this.EleHeadDis[i] = AttributeUtils.GetAttrForDouble(obj, "EleHeadDis", i);
            }
        }
        private bool PartIsWork()
        {
            int workNumber = AttributeUtils.GetAttrForInt(workPart, "WorkNumber");

            if (workNumber != 0)
            {
                WorkModel work = new WorkModel();
                work.GetModelForPart(workPart);
                this.model.Work = work;
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#6
0
        /// <summary>
        /// 读取属性
        /// </summary>
        public static ElectrodeNameInfo GetAttribute(NXObject obj)
        {
            ElectrodeNameInfo info = new ElectrodeNameInfo();

            try
            {
                info.EleName          = AttributeUtils.GetAttrForString(obj, "EleName");
                info.BorrowName       = AttributeUtils.GetAttrForString(obj, "BorrowName");
                info.EleNumber        = AttributeUtils.GetAttrForInt(obj, "EleNumber");
                info.EleEditionNumber = AttributeUtils.GetAttrForString(obj, "EleEditionNumber");
                return(info);
            }
            catch (NXException ex)
            {
                throw ex;
            }
        }
示例#7
0
        /// <summary>
        /// 读取属性
        /// </summary>
        public static ElectrodePitchInfo GetAttribute(NXObject obj)
        {
            ElectrodePitchInfo info = new ElectrodePitchInfo();

            try
            {
                info.PitchX    = AttributeUtils.GetAttrForDouble(obj, "PitchX");
                info.PitchXNum = AttributeUtils.GetAttrForInt(obj, "PitchXNum");
                info.PitchY    = AttributeUtils.GetAttrForDouble(obj, "PitchY");
                info.PitchYNum = AttributeUtils.GetAttrForInt(obj, "PitchYNum");

                return(info);
            }
            catch (NXException ex)
            {
                throw ex;
            }
        }
示例#8
0
        /// <summary>
        /// 读取属性
        /// </summary>
        public static ElectrodePreparationInfo GetAttribute(NXObject obj)
        {
            ElectrodePreparationInfo info = new ElectrodePreparationInfo();

            try
            {
                info.IsPreparation = AttributeUtils.GetAttrForBool(obj, "IsPreparation");
                info.Material      = AttributeUtils.GetAttrForString(obj, "Material1");
                for (int i = 0; i < 3; i++)
                {
                    info.Preparation[i] = AttributeUtils.GetAttrForInt(obj, "Preparation", i);
                }
                return(info);
            }
            catch (NXException ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 通过电极找Work
        /// </summary>
        /// <param name="ele"></param>
        /// <returns></returns>
        public static WorkModel FindWorkForElectrode(ElectrodeModel ele)
        {
            string name = ele.MoldInfo.MoldNumber + "-" + ele.MoldInfo.WorkpieceNumber;

            foreach (Part part in Session.GetSession().Parts)
            {
                if (part.Name.Length > name.Length)
                {
                    int    number = AttributeUtils.GetAttrForInt(part, "WorkNumber");
                    string type   = AttributeUtils.GetAttrForString(part, "PartType");
                    if (ele.WorkNumber == number && type == "Work" && part.Name.Substring(0, name.Length).Equals(name))
                    {
                        WorkModel model = new WorkModel();
                        model.GetModelForPart(part);
                        return(model);
                    }
                }
            }
            return(null);
        }
示例#10
0
        /// <summary>
        /// 以属性得到实体
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public new static WorkInfo GetAttribute(NXObject obj)
        {
            int num = 0;

            Matrix4 mat = new Matrix4();

            mat.Identity();
            try
            {
                num = AttributeUtils.GetAttrForInt(obj, "WorkNumber");
                WorkInfo info = new WorkInfo(MoldInfo.GetAttribute(obj), UserModel.GetAttribute(obj), num, Matrix4Info.GetAttribute(obj).Matr);
                info.Interference = AttributeUtils.GetAttrForBool(obj, "Interference");
                return(info);
            }
            catch (NXException ex)
            {
                ClassItem.WriteLogFile("未获取到属性" + ex.Message);
                return(new WorkInfo(MoldInfo.GetAttribute(obj), UserModel.GetAttribute(obj), num, mat));
            }
        }
        /// <summary>
        /// 通过WORK找电极
        /// </summary>
        /// <param name="workNum"></param>
        /// <returns></returns>
        public static List <ElectrodeModel> FindElectrodeForWork(WorkModel work)
        {
            List <ElectrodeModel> models = new List <ElectrodeModel>();
            string name = work.MoldInfo.MoldNumber + "-" + work.MoldInfo.WorkpieceNumber;

            foreach (Part part in Session.GetSession().Parts)
            {
                if (part.Name.Length > name.Length)
                {
                    int    number = AttributeUtils.GetAttrForInt(part, "WorkNumber");
                    string type   = AttributeUtils.GetAttrForString(part, "PartType");
                    if (work.WorkNumber == number && type == "Electrode" && part.Name.Substring(0, name.Length).Equals(name))
                    {
                        ElectrodeModel model = new ElectrodeModel();
                        model.GetModelForPart(part);
                        models.Add(model);
                    }
                }
            }
            return(models);
        }
        private bool PartIsWork()
        {
            int workNumber = AttributeUtils.GetAttrForInt(workPart, "WorkNumber");

            if (workNumber != 0)
            {
                WorkAssembleModel work = new WorkAssembleModel();
                work.GetPart(workPart);
                this.model.Work = work;
                if (vecName == "Z+")
                {
                    this.model.Vec = this.model.Work.Matr.GetZAxis();
                }
                if (vecName == "X+")
                {
                    this.model.Vec = this.model.Work.Matr.GetXAxis();
                }
                if (vecName == "X-")
                {
                    Vector3d vec = this.model.Work.Matr.GetXAxis();
                    this.model.Vec = new Vector3d(-vec.X, -vec.Y, -vec.Z);
                }

                if (vecName == "Y+")
                {
                    this.model.Vec = this.model.Work.Matr.GetYAxis();
                }
                if (vecName == "Y-")
                {
                    Vector3d vec = this.model.Work.Matr.GetYAxis();
                    this.model.Vec = new Vector3d(-vec.X, -vec.Y, -vec.Z);
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#13
0
        /// <summary>
        /// 读取属性
        /// </summary>
        public static ElectrodeGapValueInfo GetAttribute(NXObject obj)
        {
            ElectrodeGapValueInfo info = new ElectrodeGapValueInfo();

            try
            {
                info.CrudeInter  = AttributeUtils.GetAttrForDouble(obj, "CrudeInter");
                info.CrudeNum    = AttributeUtils.GetAttrForInt(obj, "CrudeNum");
                info.DuringInter = AttributeUtils.GetAttrForDouble(obj, "DuringInter");
                info.DuringNum   = AttributeUtils.GetAttrForInt(obj, "DuringNum");
                info.FineInter   = AttributeUtils.GetAttrForDouble(obj, "FineInter");
                info.FineNum     = AttributeUtils.GetAttrForInt(obj, "FineNum");
                for (int i = 0; i < 2; i++)
                {
                    info.ERNum[i] = AttributeUtils.GetAttrForInt(obj, "ERNum", i);
                }
                return(info);
            }
            catch (NXException ex)
            {
                throw ex;
            }
        }