Ejemplo n.º 1
0
        /// <summary>
        /// Get dependencies for part1
        /// </summary>
        /// <returns></returns>
        public IList <IFigure> GetPart2Dependencies()
        {
            List <IFigure> result = new List <IFigure>();

            switch (this.ViewDirection)
            {
            case Reinforcement.ViewDirection.Top:
            case Reinforcement.ViewDirection.Front:
            {
                switch (Transform)
                {
                case Reinforcement.Transform.Normal:
                {
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, 0, -this.Dimensions.A)));                 // Điểm chèn ban đầu
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, this.Dimensions.B, -this.Dimensions.A)));
                    return(result);
                }

                case Reinforcement.Transform.FlipHorizontal:
                {
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, 0, -this.Dimensions.A)));                 // Điểm chèn ban đầu
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, -this.Dimensions.B, -this.Dimensions.A)));
                    return(result);
                }

                case Reinforcement.Transform.FlipVertical:
                {
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, 0, this.Dimensions.A)));                 // Điểm chèn ban đầu
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, this.Dimensions.B, this.Dimensions.A)));
                    return(result);
                }

                case Reinforcement.Transform.Rotate90CCW:
                {
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, this.Dimensions.A, 0)));                 // Điểm chèn ban đầu
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, this.Dimensions.A, this.Dimensions.B)));
                    return(result);
                }

                case Reinforcement.Transform.Rotate90CW:
                {
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, -this.Dimensions.A, 0)));                 // Điểm chèn ban đầu
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, -this.Dimensions.A, -this.Dimensions.B)));
                    return(result);
                }

                case Reinforcement.Transform.Rotate180:
                {
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, 0, this.Dimensions.A)));                 // Điểm chèn ban đầu
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, -this.Dimensions.B, this.Dimensions.A)));
                    return(result);
                }

                default: return(null);
                }
            }

            default: return(null);
            }
        }
Ejemplo n.º 2
0
        public override void Recalculate()
        {
            IPoint point = (IPoint)MainBound.Dependencies[0];

            point       = Factory.CreateFreePoint(Drawing, PointsHelper.Offset(point.Coordinates, 0, 0));
            InsertPoint = PointsHelper.Offset(point.Coordinates, 0, 0);
            base.Recalculate();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// See BS 8666:2005
        /// </summary>
        /// <returns></returns>
        public List <IFigure> CalculateBarDependencies()
        {
            List <IFigure> result    = new List <DynamicGeometry.IFigure>();
            Point          basePoint = new System.Windows.Point(0, 0);

            result.Add(Factory.CreateFreePoint(this.Drawing, basePoint)); // Điểm chèn ban đầu

            switch (this.ShapeCode)
            {
            case BarShape2D.Shape00:
            {
                switch (ViewDirection)
                {
                case Reinforcement.ViewDirection.Top:
                {
                    switch (Transform)
                    {
                    case Reinforcement.Transform.Normal:
                        result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(basePoint, this.Dimensions.A, 0)));
                        return(result);

                    case Reinforcement.Transform.Rotate90CW:
                        result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(basePoint, 0, -this.Dimensions.A)));
                        return(result);

                    case Reinforcement.Transform.Rotate90CCW:
                        result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(basePoint, 0, this.Dimensions.A)));
                        return(result);

                    case Reinforcement.Transform.Rotate180:
                        result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(basePoint, -this.Dimensions.A, 0)));
                        return(result);

                    case Reinforcement.Transform.FlipHorizontal:                     // ??
                        return(null);

                    case Reinforcement.Transform.FlipVertical:                     // ??
                        return(null);

                    default: return(null);
                    }
                }

                case Reinforcement.ViewDirection.Cross:
                {
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(basePoint, this.Diameter, 0)));
                    return(result);
                }

                default: return(null);
                }
            }

            // so on...
            default: return(null);
            }
        }
Ejemplo n.º 4
0
        public IList <IFigure> GetCrossPartDependencies()
        {
            switch (this.ViewDirection)
            {
            case Reinforcement.ViewDirection.Cross:
            {
                List <IFigure> result = new List <IFigure>();
                result.Add(Factory.CreateFreePoint(this.Drawing, InsertPoint));
                result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(InsertPoint, 0.5 * Diameter, 0)));
                return(result);
            }

            default: return(null);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Tính toán các điểm Dependencies của Bound
        /// </summary>
        protected List <IFigure> GetBoundDependencies()
        {
            //this.Dependencies.Clear();
            var boundDependencies = new List <IFigure>();

            #region Bệ mố
            // bệ
            System.Windows.Point p1 = this.InsertPoint;
            System.Windows.Point p2 = PointsHelper.Offset(p1, 0, PileCapDeep);
            // thân
            System.Windows.Point p3  = PointsHelper.Offset(p2, PileCapBackLength, 0);
            System.Windows.Point p4  = PointsHelper.Offset(p3, 0, BodyHeight + HeadWallHeight - AppBlockFromTop - 2 * AppBlockDeep);
            System.Windows.Point p5  = PointsHelper.Offset(p4, -AppBlockWidth, AppBlockDeep);
            System.Windows.Point p6  = PointsHelper.Offset(p5, 0, AppBlockDeep);
            System.Windows.Point p7  = PointsHelper.Offset(p6, AppBlockWidth, 0);
            System.Windows.Point p8  = PointsHelper.Offset(p7, 0, AppBlockFromTop);
            System.Windows.Point p9  = PointsHelper.Offset(p8, HeadWallDeep, 0);
            System.Windows.Point p10 = PointsHelper.Offset(p9, 0, -HeadWallHeight);
            System.Windows.Point p11 = PointsHelper.Offset(p10, BodyDeep - HeadWallDeep, 0);
            System.Windows.Point p12 = PointsHelper.Offset(p11, 0, -BodyHeight);
            System.Windows.Point p13 = PointsHelper.Offset(p12, PileCapFrontLength, 0);
            System.Windows.Point p14 = PointsHelper.Offset(p13, 0, -PileCapDeep);

            var pp1  = Factory.CreateFreePoint(Drawing, p1);
            var pp2  = Factory.CreateFreePoint(Drawing, p2);
            var pp3  = Factory.CreateFreePoint(Drawing, p3);
            var pp4  = Factory.CreateFreePoint(Drawing, p4);
            var pp5  = Factory.CreateFreePoint(Drawing, p5);
            var pp6  = Factory.CreateFreePoint(Drawing, p6);
            var pp7  = Factory.CreateFreePoint(Drawing, p7);
            var pp8  = Factory.CreateFreePoint(Drawing, p8);
            var pp9  = Factory.CreateFreePoint(Drawing, p9);
            var pp10 = Factory.CreateFreePoint(Drawing, p10);
            var pp11 = Factory.CreateFreePoint(Drawing, p11);
            var pp12 = Factory.CreateFreePoint(Drawing, p12);
            var pp13 = Factory.CreateFreePoint(Drawing, p13);
            var pp14 = Factory.CreateFreePoint(Drawing, p14);
            #endregion


            boundDependencies.Add(pp1, pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp9, pp10, pp11, pp12, pp13, pp14, pp1);
            foreach (IPoint p in boundDependencies)
            {
                this.Dependencies.Add(p);
            }
            return(boundDependencies);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Get dependencies for part3
        /// </summary>
        /// <returns></returns>
        protected IList <IFigure> GetPart3Dependencies()
        {
            switch (ViewDirection)
            {
            case Reinforcement.ViewDirection.Front:
            {
                switch (Transform)
                {
                case Reinforcement.Transform.Normal:
                {
                    List <IFigure> result = new List <IFigure>();
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(this.InsertPoint,
                                                                                         -(Dimensions.C - 0.5 * Dimensions.B) * M.Cos(RotateRAD) + Dimensions.B * M.Sin(RotateRAD),
                                                                                         -(Dimensions.C - 0.5 * Dimensions.B) * M.Sin(RotateRAD) - Dimensions.B * M.Cos(RotateRAD))));

                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(this.InsertPoint,
                                                                                         -(Dimensions.C - 0.5 * Dimensions.B) * M.Cos(RotateRAD) + Dimensions.B * M.Sin(RotateRAD) + (Dimensions.A - 0.5 * Dimensions.B) * M.Cos(RotateRAD),
                                                                                         -(Dimensions.C - 0.5 * Dimensions.B) * M.Sin(RotateRAD) - Dimensions.B * M.Cos(RotateRAD) + (Dimensions.A - 0.5 * Dimensions.B) * M.Sin(RotateRAD))));

                    return(result);
                }

                case Reinforcement.Transform.FlipHorizontal:
                {
                    List <IFigure> result = new List <IFigure>();
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(this.InsertPoint,
                                                                                         (this.Dimensions.C - 0.5 * Dimensions.B) * M.Cos(RotateRAD) + this.Dimensions.B * M.Sin(RotateRAD),
                                                                                         (this.Dimensions.C - 0.5 * Dimensions.B) * M.Sin(RotateRAD) - this.Dimensions.B * M.Cos(RotateRAD))));
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(this.InsertPoint, this.Dimensions.C * M.Cos(RotateRAD) + this.Dimensions.B * M.Sin(RotateRAD) - this.Dimensions.A * M.Cos(RotateRAD),
                                                                                         this.Dimensions.C * M.Sin(RotateRAD) - this.Dimensions.B * M.Cos(RotateRAD) - this.Dimensions.A * M.Sin(RotateRAD))));
                    return(result);
                }

                case Reinforcement.Transform.FlipVertical:
                {
                    List <IFigure> result = new List <IFigure>();
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(this.InsertPoint,
                                                                                         -(this.Dimensions.C - 0.5 * Dimensions.B) * M.Cos(RotateRAD) - Dimensions.B * M.Sin(RotateRAD),
                                                                                         -(this.Dimensions.C - 0.5 * Dimensions.B) * M.Sin(RotateRAD) + Dimensions.B * M.Cos(RotateRAD))));
                    result.Add(Factory.CreateFreePoint(this.Drawing, PointsHelper.Offset(this.InsertPoint,
                                                                                         -(this.Dimensions.C - 0.5 * Dimensions.B) * M.Cos(RotateRAD) - Dimensions.B * M.Sin(RotateRAD)
                                                                                         + (Dimensions.A + 0.5 * Dimensions.B) * M.Cos(RotateRAD),
                                                                                         -(this.Dimensions.C - 0.5 * Dimensions.B) * M.Sin(RotateRAD) + Dimensions.B * M.Cos(RotateRAD)
                                                                                         + (Dimensions.A + 0.5 * Dimensions.B) * M.Sin(RotateRAD))));
                    return(result);
                }

                case Reinforcement.Transform.Rotate180:
                {
                    goto case Reinforcement.Transform.Normal;
                }

                case Reinforcement.Transform.Rotate90CCW:
                {
                    goto case Reinforcement.Transform.Normal;
                }

                case Reinforcement.Transform.Rotate90CW:
                {
                    goto case Reinforcement.Transform.Normal;
                }

                default: return(null);
                }
            }

            case Reinforcement.ViewDirection.Top:
            {
                switch (Transform)
                {
                case Reinforcement.Transform.Normal:
                case Reinforcement.Transform.FlipHorizontal:
                case Reinforcement.Transform.FlipVertical:
                {
                    List <IFigure> result = new List <IFigure>();
                    result.Add(Factory.CreateFreePoint(Drawing, PointsHelper.Offset(this.InsertPoint,
                                                                                    -0.5 * Dimensions.A * M.Cos(RotateRAD), -0.5 * Dimensions.A * M.Sin(RotateRAD))));
                    result.Add(Factory.CreateFreePoint(Drawing, PointsHelper.Offset(this.InsertPoint,
                                                                                    0.5 * Dimensions.A * M.Cos(RotateRAD), 0.5 * Dimensions.A * M.Sin(RotateRAD))));
                    return(result);
                }

                case Reinforcement.Transform.Rotate180:
                {
                    Rotate += 90;                 // Gọi phương thức này 2 lần
                    goto case Reinforcement.Transform.Normal;
                }

                case Reinforcement.Transform.Rotate90CCW:
                {
                    Rotate += 45;                 // Gọi phương thức này 2 lần
                    goto case Reinforcement.Transform.Normal;
                }

                case Reinforcement.Transform.Rotate90CW:
                {
                    Rotate += -45;                 // Gọi phương thức này 2 lần
                    goto case Reinforcement.Transform.Normal;
                }

                default: return(null);
                }
            }

            case Reinforcement.ViewDirection.Left:
                return(null);

            default: return(null);
            }
        }