protected override void CreateHoles() { double totalLength = Utilities.InputData.RevealHeight + Utilities.InputData.Architrave1; var holePoints = GetFrmFixedPoints(totalLength); double radius = 0; if (Utilities.InputData.FrameFixing == "D/B-7.0") { radius = 3.5; } else if (Utilities.InputData.FrameFixing == "D/B-3.5") { radius = 1.8; } else { radius = 0; } if (radius != 0) { foreach (Point3D point in holePoints) { Circle circle = new Circle(point, radius); HingEntities.Add(circle); } } }
protected override void CreateTab() { var basePoints = GetTabPoints(RequiredHingeList); var tabList = new List <Entity>(); var baseLines = new List <Line>() { JsonData.HingeDataList[LineType.Rebate_1].Line, JsonData.HingeDataList[LineType.Throat].Line, JsonData.HingeDataList[LineType.Rebate_2].Line, }; for (var i = 0; i < basePoints.Count; i++) { var basePoint = basePoints[i]; var diffY = (JsonData.TabData.TabBase - JsonData.TabData.TabTop) / 2; var p1 = new Point3D { X = basePoint.X, Y = basePoint.Y }; var p2 = new Point3D { X = p1.X - JsonData.TabData.TabBase, Y = p1.Y + diffY }; var p3 = new Point3D { X = p2.X, Y = p2.Y + JsonData.TabData.TabTop }; var p4 = new Point3D { X = p1.X, Y = p1.Y + JsonData.TabData.TabBase }; tabList.AddRange(Utilities.CreateLines(new List <Point3D>() { p1, p2, p3, p4 })); baseLines[i].SplitBy(new List <Point3D> { p1, p4 }, out ICurve[] splitedCurves); HingEntities.Add(splitedCurves[0] as Entity); HingEntities.Add(splitedCurves[2] as Entity); } var tab1Line = HingEntities.First(line => ((Line)line).StartPoint == baseLines[0].StartPoint && ((Line)line).EndPoint == baseLines[0].EndPoint); var tab2Line = HingEntities.First(line => ((Line)line).StartPoint == baseLines[1].StartPoint && ((Line)line).EndPoint == baseLines[1].EndPoint); var tab3Line = HingEntities.First(line => ((Line)line).StartPoint == baseLines[2].StartPoint && ((Line)line).EndPoint == baseLines[2].EndPoint); HingEntities.Remove(tab1Line); HingEntities.Remove(tab2Line); HingEntities.Remove(tab3Line); HingEntities.AddRange(tabList); }
protected override void CreateRightProfile() { int firstIndex = 0; var firstPoint = RequiredHingeList[firstIndex].Line.StartPoint; var secondPoint = RequiredHingeList[RequiredHingeList.Count - 1].Line.EndPoint; var width = Point3D.Distance(firstPoint, secondPoint); double totalLength1 = Utilities.InputData.RevealHeight + Utilities.InputData.Architrave1 - JsonData.HingeDataList[LineType.Architrave_1].BendAllowance; double totalLength2 = Utilities.InputData.RevealHeight + Utilities.InputData.Architrave2 - JsonData.HingeDataList[LineType.Architrave_2].BendAllowance; var thirdPoint = new Point3D(firstPoint.X + totalLength1, firstPoint.Y); var fourthPoint = new Point3D(firstPoint.X + totalLength1, firstPoint.Y + width); Line firstLine = new Line(firstPoint, thirdPoint); Line secondLine = new Line(secondPoint, fourthPoint); Line thirdLine = new Line(thirdPoint, fourthPoint); HingEntities.Add(firstLine); HingEntities.Add(secondLine); HingEntities.Add(thirdLine); rightProfileTop = fourthPoint; // rightProfileBottom = thirdPoint; }