コード例 #1
0
        public double GetEffectiveLength(double l_u, double d, LateralBracingCondition BracingConditition,
                                         SupportCondition Support, LoadType LoadType, int NumberOfLoads = 0)
        {
            double l_e = double.PositiveInfinity;

            //adjust values
            SupportCondition        bc = Support;
            LateralBracingCondition br = BracingConditition;
            int N = NumberOfLoads;

            if (bc == SupportCondition.Cantilever)
            {
                br = LateralBracingCondition.Unbraced;
            }
            if (bc == SupportCondition.SingleSpan)
            {
                if (LoadType == NDS2015.LoadType.UniformlyDistributed)
                {
                    br = LateralBracingCondition.Unbraced;
                }
                else
                {
                    if (br == LateralBracingCondition.Unbraced && N > 2)
                    {
                        N = 2;
                    }
                    else
                    {
                        if (N > 7)
                        {
                            N = 7;
                        }
                    }
                }
            }
            //Find value in table

            #region Read Effective Length Data

            var SampleValue = new
            { BC = "", LoadType = "", Br = "", N = 1,
              l_d_Less7_luFactor  = 0.0,
              l_d_Less7_dFactor   = 0.0,
              l_d_Less14_luFactor = 0.0,
              l_d_Less14_dFactor  = 0.0,
              l_d_More14_luFactor = 0.0,
              l_d_More14_dFactor  = 0.0 }; // sample
            var EffectiveLengthTableVals = ListFactory.MakeList(SampleValue);

            using (StringReader reader = new StringReader(Resources.NDS2015_Table3_3_3EffectiveLength))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    string[] Vals = line.Split(',');
                    if (Vals.Length == 10)
                    {
                        string _BC                  = Vals[0];
                        string _LoadType            = Vals[1];
                        string _Br                  = Vals[2];
                        int    _N                   = int.Parse(Vals[3]);
                        double _l_d_Less7_luFactor  = double.Parse(Vals[4]);
                        double _l_d_Less7_dFactor   = double.Parse(Vals[5]);
                        double _l_d_Less14_luFactor = double.Parse(Vals[6]);
                        double _l_d_Less14_dFactor  = double.Parse(Vals[7]);
                        double _l_d_More14_luFactor = double.Parse(Vals[8]);
                        double _l_d_More14_dFactor  = double.Parse(Vals[9]);

                        EffectiveLengthTableVals.Add
                            (new
                        {
                            BC                  = _BC,
                            LoadType            = _LoadType,
                            Br                  = _Br,
                            N                   = _N,
                            l_d_Less7_luFactor  = _l_d_Less7_luFactor,
                            l_d_Less7_dFactor   = _l_d_Less7_dFactor,
                            l_d_Less14_luFactor = _l_d_Less14_luFactor,
                            l_d_Less14_dFactor  = _l_d_Less14_dFactor,
                            l_d_More14_luFactor = _l_d_More14_luFactor,
                            l_d_More14_dFactor  = _l_d_More14_dFactor
                        }

                            );
                    }
                }
            }

            #endregion

            double lu_factor = 0.0;
            double dFactor   = 0.0;

            var EffectiveLengthEntryData = EffectiveLengthTableVals.First(l =>
                                                                          l.BC == bc.ToString() &&
                                                                          l.Br == br.ToString() &&
                                                                          l.LoadType == LoadType.ToString() &&
                                                                          l.N == NumberOfLoads);
            if (EffectiveLengthEntryData != null)
            {
                if (l_u / 4 < 7)
                {
                }
                else if (l_u <= 14.3)
                {
                }
                else
                {
                }
            }
            else
            {
                return(double.PositiveInfinity);
            }

            l_e = lu_factor * l_u + dFactor * d;

            return(l_e);
        }
コード例 #2
0
ファイル: EffectiveLength.cs プロジェクト: Wosad/Wosad.Design
        public double GetEffectiveLength(double l_u, double d, LateralBracingCondition BracingConditition,
            SupportCondition Support, LoadType LoadType, int NumberOfLoads = 0)
        {
            double l_e = double.PositiveInfinity;

            //adjust values
            SupportCondition bc = Support;
            LateralBracingCondition br = BracingConditition;
            int N = NumberOfLoads;

            if (bc == SupportCondition.Cantilever)
            {
                br = LateralBracingCondition.Unbraced;
            }
            if (bc == SupportCondition.SingleSpan)
            {
                if (LoadType ==  NDS2015.LoadType.UniformlyDistributed)
                {
                    br = LateralBracingCondition.Unbraced;
                }
                else
                {
                    if (br == LateralBracingCondition.Unbraced && N>2)
                    {
                        N = 2;
                    }
                    else
                    {
                        if (N>7)
                        {
                            N = 7;
                        }
                    }
                }
            }
            //Find value in table

            #region Read Effective Length Data

            var SampleValue = new 
            { BC = "", LoadType = "", Br = "", N=1,
                l_d_Less7_luFactor= 0.0,
                l_d_Less7_dFactor= 0.0, 
                l_d_Less14_luFactor = 0.0, 
                l_d_Less14_dFactor = 0.0,
                l_d_More14_luFactor = 0.0, 
                l_d_More14_dFactor = 0.0 
            }; // sample
            var EffectiveLengthTableVals = ListFactory.MakeList(SampleValue);

            using (StringReader reader = new StringReader(Resources.NDS2015_Table3_3_3EffectiveLength))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    string[] Vals = line.Split(',');
                    if (Vals.Length == 10)
                    {

                        string _BC =        Vals[0];
                        string _LoadType =  Vals[1];
                        string _Br =        Vals[2];
                        int _N =         int.Parse(Vals[3]);
                        double _l_d_Less7_luFactor  =double.Parse(Vals[4]);
                        double _l_d_Less7_dFactor = double.Parse(Vals[5]);
                        double _l_d_Less14_luFactor = double.Parse(Vals[6]);
                        double _l_d_Less14_dFactor = double.Parse(Vals[7]);
                        double _l_d_More14_luFactor = double.Parse(Vals[8]);
                        double _l_d_More14_dFactor  =double.Parse(Vals[9]);

                        EffectiveLengthTableVals.Add
                        (new
                            {
                                BC =        _BC ,        
                                LoadType =  _LoadType ,  
                                Br =        _Br ,
                                N=_N,
                                l_d_Less7_luFactor = _l_d_Less7_luFactor , 
                                l_d_Less7_dFactor  = _l_d_Less7_dFactor  , 
                                l_d_Less14_luFactor= _l_d_Less14_luFactor, 
                                l_d_Less14_dFactor = _l_d_Less14_dFactor , 
                                l_d_More14_luFactor= _l_d_More14_luFactor, 
                                l_d_More14_dFactor = _l_d_More14_dFactor  

                           }

                        );
                    }
                }

            }

            #endregion

            double lu_factor = 0.0;
            double dFactor = 0.0;

            var EffectiveLengthEntryData = EffectiveLengthTableVals.First(l => 
                l.BC==bc.ToString()
                && l.Br == br.ToString()
                && l.LoadType == LoadType.ToString()
                && l.N == NumberOfLoads);
                    if (EffectiveLengthEntryData != null)
                    {

                        if (l_u/4<7)
                        {
                           
                        }
                        else if (l_u<=14.3 )
                        {
                            
                        }
                        else
                        {

                        }
                    }
                    else
                    {
                        return double.PositiveInfinity;
                    }

                    l_e = lu_factor * l_u + dFactor * d;

                    return l_e;
        }