Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
        }