Beispiel #1
0
 protected Frame()
 {
     HingEntities      = new List <Entity>();
     TopEntities       = new List <Entity>();
     LockEntities      = new List <Entity>();
     RequiredHingeList = new BendCollection();
     RequiredTopList   = new BendCollection();
 }
Beispiel #2
0
        private List <Point3D> GetTabPoints(BendCollection bendData)
        {
            double factor1 = Utilities.InputData.Rebate1 > 48 ? 16.5 : 15.5;
            double factor2 = Utilities.InputData.Rebate2 > 48 ? 16.5 : 15.5;

            double         tabBase          = JsonData.TabData.TabBase;
            List <Point3D> tabBasePointList = new List <Point3D>();

            double newArchitraveX1 = bendData[LineType.Architrave_1].Line.EndPoint.X;
            double newArchitraveY1 = bendData[LineType.Architrave_1].Line.EndPoint.Y;

            double newStopHgtX1 = bendData[LineType.StopHgt_1].Line.EndPoint.X;
            double newStopHgtY1 = bendData[LineType.StopHgt_1].Line.EndPoint.Y;

            double newArchitraveX2 = 0;
            double newArchitraveY2 = 0;

            if (bendData[LineType.Architrave_2] == null)
            {
                newArchitraveX2 = bendData[LineType.Rebate_2].Line.EndPoint.X;
                newArchitraveY2 = bendData[LineType.Rebate_2].Line.EndPoint.Y;
            }
            else
            {
                newArchitraveX2 = bendData[LineType.Architrave_2].Line.StartPoint.X;
                newArchitraveY2 = bendData[LineType.Architrave_2].Line.StartPoint.Y;
            }



            double newMidThroatDepth = (bendData[LineType.Throat].Line.EndPoint.Y - bendData[LineType.Throat].Line.StartPoint.Y) / 2;

            tabBasePointList.Add(new Point3D {
                X = newArchitraveX1, Y = newArchitraveY1 + factor1
            });
            tabBasePointList.Add(new Point3D {
                X = newStopHgtX1, Y = newStopHgtY1 + newMidThroatDepth - tabBase / 2
            });
            tabBasePointList.Add(new Point3D {
                X = newArchitraveX2, Y = newArchitraveY2 - factor2 - tabBase
            });

            return(tabBasePointList);
        }
Beispiel #3
0
        protected override void GetTopBendData()
        {
            double angleFactor = Math.Cos((Math.PI * 45) / 180);

            BendCollection allowances = new BendCollection
            {
                new BendData()
                {
                    Line          = ProfileLines[0],
                    BendAllowance = inputData.Return1 - ProfileLines[0].Length(),
                    LineType      = LineType.Return_1
                },
                new BendData()
                {
                    Line          = ProfileLines[1],
                    BendAllowance = inputData.Architrave1 - ProfileLines[1].Length() * angleFactor,
                    LineType      = LineType.Architrave_1
                },
                new BendData()
                {
                    Line          = ProfileLines[2],
                    BendAllowance = 0,
                    LineType      = LineType.Rebate_1
                },
                new BendData()
                {
                    Line          = ProfileLines[3],
                    BendAllowance = 0,
                    LineType      = LineType.StopHgt_1
                },

                new BendData()
                {
                    Line          = ProfileLines[4],
                    BendAllowance = 0,         // this is not actual bend allowance
                    // this is length of so called throat
                    LineType = LineType.Throat // its length is depend on other parameters
                },

                new BendData()
                {
                    Line          = ProfileLines[5],
                    BendAllowance = 0,
                    LineType      = LineType.StopHgt_2
                },
                new BendData()
                {
                    Line          = ProfileLines[6],
                    BendAllowance = 0,
                    LineType      = LineType.Rebate_2
                },
                new BendData()
                {
                    Line          = ProfileLines[7],
                    BendAllowance = inputData.Architrave2 - ProfileLines[7].Length() * angleFactor,
                    LineType      = LineType.Architrave_2
                },
                new BendData()
                {
                    Line          = ProfileLines[8],
                    BendAllowance = inputData.Return2 - ProfileLines[8].Length(),
                    LineType      = LineType.Return_2
                },
            };

            //var throatData = new BendData()
            //{
            //    Line = profileLines[4],
            //    BendAllowance = allowances[LineType.Rebate_2].Line.StartPoint.Y -   // this is not actual bend allowance
            //                    allowances[LineType.Rebate_1].Line.EndPoint.Y,      // this is length of so called throat
            //    LineType = LineType.Throat                                          // its length is depend on other parameters
            //};

            allowances[LineType.Throat].BendAllowance = allowances[LineType.Rebate_2].Line.StartPoint.Y -
                                                        allowances[LineType.Rebate_1].Line.EndPoint.Y;

            TopViewDataList.AddRange(allowances); //Utilities.GetVertices(profLines);

            TopViewData = new TopViewData
            {
                ConstVLine3 = ProfileLines[2].Length(),
                ConstHLine4 = ProfileLines[3].Length(),
                MidWidth    = ProfileLines[4].Length(),
            };
        }
Beispiel #4
0
 public MDFJson(ProfileType profileType) : base(profileType)
 {
     inputData       = Utilities.InputData;
     HingeDataList   = new BendCollection();
     TopViewDataList = new BendCollection();
 }