コード例 #1
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
        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);
                }
            }
        }
コード例 #2
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
 public override void CreateLockView()
 {
     HingEntities.Clear();
     CreateLeftProfile();
     CreateTab();
     CreateRightProfile();
     CreateHoles();
     CreateLock();
     CreateSlots();
     LockEntities.AddRange(HingEntities);
     HingEntities.Clear();
 }
コード例 #3
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
        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);
        }
コード例 #4
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
        protected override void CreateLeftProfile()
        {
            var requiredDat = JsonData.HingeDataList.Where(item => item.ModifiedLengthTxt >= item.BendAllowance)
                              .ToList();

            RequiredHingeList.AddRange(requiredDat);

            Utilities.TranslateEntities(requiredDat);

            var leftEntities = requiredDat.Select(item => item.Line).ToList();

            HingEntities.AddRange(leftEntities);
        }
コード例 #5
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
        protected override void CreateSlots()
        {
            double slotHeight  = 20;
            double slotWidth   = 2.5;
            double totalLength = Utilities.InputData.RevealHeight + Utilities.InputData.Architrave1;

            var slotPoints = GetSlotPoints(totalLength, JsonData.TabData.TabBase, slotHeight, slotWidth);

            foreach (var point in slotPoints)
            {
                var slotLines = DrawPocketLines(point, slotHeight, slotWidth);
                HingEntities.AddRange(slotLines);
            }
        }
コード例 #6
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
        protected override void CreateHinges()
        {
            double hingeFeatLength = 100.5;
            double hingeFeatWidth  = 32.5;
            double totalLength     = Utilities.InputData.RevealHeight + Utilities.InputData.Architrave1;

            var hingePoints = GetHingPoints(totalLength, hingeFeatLength, hingeFeatWidth);

            for (int i = 0; i < Utilities.InputData.HingeQty; i++)
            {
                var hingeLines = DrawPocketLines(hingePoints[i], hingeFeatWidth, hingeFeatLength);
                HingEntities.AddRange(hingeLines);
            }
        }
コード例 #7
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
        private void DrawLockProfile(double totalLength)
        {
            double L1 = 38.5;
            double H1 = Utilities.InputData.Rebate1 > 45 ? 11 : 9;
            double L2 = 70.5;
            double H2 = 29;

            double basePointX = totalLength - Utilities.InputData.StrikeHeight - (L1 / 2.0);
            double basePointY = (Utilities.InputData.Return1 - JsonData.HingeDataList[LineType.Return_1].BendAllowance) +
                                (Utilities.InputData.Architrave1 - JsonData.HingeDataList[LineType.Architrave_1].BendAllowance) - 3.9;

            Point3D p1 = new Point3D {
                X = basePointX, Y = basePointY
            };
            Point3D p2 = new Point3D {
                X = p1.X, Y = p1.Y + H1
            };
            Point3D p3 = new Point3D {
                X = p2.X - ((L2 - L1) / 2.0), Y = p2.Y
            };
            Point3D p4 = new Point3D {
                X = p3.X, Y = p3.Y + H2
            };
            Point3D p5 = new Point3D {
                X = p4.X + L2, Y = p4.Y
            };
            Point3D p6 = new Point3D {
                X = p5.X, Y = p3.Y
            };
            Point3D p7 = new Point3D {
                X = p6.X - ((L2 - L1) / 2.0), Y = p2.Y
            };
            Point3D p8 = new Point3D {
                X = p1.X + L1, Y = p1.Y
            };

            var lockLines = Utilities.CreateLines(new List <Point3D>()
            {
                p1, p2, p3, p4, p5, p6, p7, p8
            }, true);

            lockLines.Add(new Line(p2, p7));

            HingEntities.AddRange(lockLines);
        }
コード例 #8
0
ファイル: MDFFrame.cs プロジェクト: AmitShere2020/SmartDoor
        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;
        }