コード例 #1
0
        public double Moment(double X)
        {
            beam.EvaluateX(X);
            double M;
            Dictionary <string, double> valDic = new Dictionary <string, double>()
            {
                { "L", L },
                { "X", X },
                { "P", P }
            };

            if (X <= L / 2.0)
            {
                M = P / 8.0 * (4 * X - L);

                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 1,
                                             valDic, CASE, beam);
            }
            else
            {
                M = P / 8.0 * (3 * L - 4 * X);

                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 2,
                                             valDic, CASE, beam);
            }
            return(M);
        }
コード例 #2
0
        public double Moment(double X)
        {
            beam.EvaluateX(X);
            double M;

            M = w / 12.0 * (6.0 * L * X - L * L - 6.0 * X * X);
            BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 1,
                                         new Dictionary <string, double>()
            {
                { "L", L },
                { "X", X },
                { "w", w },
            }, CASE, beam);
            return(M);
        }
コード例 #3
0
        public double Moment(double X)
        {
            beam.EvaluateX(X);
            double M;
            int    CaseId;

            Dictionary <string, double> valDic = new Dictionary <string, double>()
            {
                { "L", L },
                { "X", X },
                { "Mo", Mo },
                { "a", a },
                { "b", b }
            };

            if (X <= a)
            {
                M      = -Mo / (L * L) * ((6.0 * a * b * X) / L + b * (L - 3.0 * a));
                CaseId = 1;
            }
            else
            {
                M      = (Mo * a) / (L * L) * (6.0 * b - (6.0 * b * X) / L - 2.0 * L + 3.0 * a);
                CaseId = 2;
            }

            BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, CaseId,
                                         valDic, CASE, beam);
            return(M);
        }
コード例 #4
0
        public double Moment(double X)
        {
            double M;

            beam.EvaluateX(X);
            Dictionary <string, double> valDic = new Dictionary <string, double>()
            {
                { "L", L },
                { "X", X },
                { "P", P },
                { "a", a },
                { "b", b }
            };

            if (ReactionsWereCalculated == false)
            {
                CalculateReactions();
            }
            if (X <= a)
            {
                M = R1 * X - (P * a * b * b) / Math.Pow(L, 2);
                valDic.Add("R1", R1);
                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 1,
                                             valDic, CASE, beam);
            }
            else if (X > a)
            {
                M = R2 * (L - X) - (P * a * a * b) / Math.Pow(L, 2);
                valDic.Add("R2", R2);
                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 2,
                                             valDic, CASE, beam);
            }
            else //at the point of load
            {
                M = (2 * P * a * a * b * b) / Math.Pow(L, 3);
                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 3,
                                             valDic, CASE, beam);
            }

            return(M);
        }
コード例 #5
0
        public double Moment(double X)
        {
            beam.EvaluateX(X);

            if (ReactionsWereCalculated == false)
            {
                CalulateReactions();
            }
            if (MomentsWereCalculated == false)
            {
                CalculateMoments();
            }
            double M;

            if (X < a)
            {
                M = M1.Value + R1 * X;
                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 1,
                                             new Dictionary <string, double>()
                {
                    { "M1", M1.Value },
                    { "X", X },
                    { "R1", R1 }
                }, CASE, beam);
            }
            else if (X > a + b)
            {
                M = M2.Value + R2 * (L - X);
                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 3,
                                             new Dictionary <string, double>()
                {
                    { "M2", M2.Value },
                    { "X", X },
                    { "R2", R2 }
                }, CASE, beam);
            }
            else
            {
                M = M1.Value + R1 * X - w / 2 * Math.Pow(X - a, 2);
                BeamEntryFactory.CreateEntry("Mx", M, BeamTemplateType.Mx, 2,
                                             new Dictionary <string, double>()
                {
                    { "M1", M1.Value },
                    { "X", X },
                    { "a", a },
                    { "w", w },
                    { "R1", R1 }
                }, CASE, beam);
            }
            return(M);
        }