protected Frame() { HingEntities = new List <Entity>(); TopEntities = new List <Entity>(); LockEntities = new List <Entity>(); RequiredHingeList = new BendCollection(); RequiredTopList = new BendCollection(); }
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); }
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(), }; }
public MDFJson(ProfileType profileType) : base(profileType) { inputData = Utilities.InputData; HingeDataList = new BendCollection(); TopViewDataList = new BendCollection(); }