public static Dictionary <string, object> SizeFactor(double d, double t, string WoodCommercialGrade, bool LoadAppliedToNarrowFace = false,
                                                             string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values

            double C_F_Fb = 1.0;
            double C_F_Fc = 1.0;
            double C_F_Ft = 1.0;

            //Calculation logic:



            if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m = new DimensionalLumber();

                string memberType = WoodMemberType.TrimStart("Sawn".ToCharArray());

                SawnLumberType sawnLumberType;
                bool           IsValidSawnLumberTypeString = Enum.TryParse(memberType, true, out sawnLumberType);
                if (IsValidSawnLumberTypeString == false)
                {
                    throw new Exception("Failed to convert string. Sawn lumber type is incorrectly specified. Please check input");
                }


                ww.CommercialGrade _commercialGrade;
                bool IsValidCommercialGradeString = Enum.TryParse(WoodCommercialGrade, true, out _commercialGrade);
                if (IsValidCommercialGradeString == false)
                {
                    throw new Exception("Failed to convert string. Wood commercial grade is incorrectly specified. Please check input");
                }


                C_F_Fb = m.GetSizeFactor(d, t, sawnLumberType, _commercialGrade, ww.ReferenceDesignValueType.Bending, LoadAppliedToNarrowFace);
                C_F_Ft = m.GetSizeFactor(d, t, sawnLumberType, _commercialGrade, ww.ReferenceDesignValueType.TensionParallelToGrain, LoadAppliedToNarrowFace);
                C_F_Fc = m.GetSizeFactor(d, t, sawnLumberType, _commercialGrade, ww.ReferenceDesignValueType.CompresionParallelToGrain, LoadAppliedToNarrowFace);
            }
            else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Timber"))
            {
                Timber timber = new Timber();
            }
            else
            {
                throw new Exception("Wood member type not supported.");
            }

            return(new Dictionary <string, object>
            {
                { "C_F_Fb", C_F_Fb },
                { "C_F_Fc", C_F_Fc },
                { "C_F_Ft", C_F_Ft },
            });
        }
        public void ReturnsSizeFactorDimensionalLumber()
        {
            CalcLog           log = new CalcLog();
            DimensionalLumber m   = new DimensionalLumber();
            double            b   = 1.5;
            double            d   = 5.5;

            double C_F = m.GetSizeFactor(d, b, Wood.NDS.Entities.SawnLumberType.DimensionLumber, Wood.NDS.Entities.CommercialGrade.No2,
                                         Wood.NDS.Entities.ReferenceDesignValueType.Bending);


            double refValue        = 1.3;
            double actualTolerance = EvaluateActualTolerance(C_F, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
Exemplo n.º 3
0
        public void ReturnsSizeFactorDimensionalLumber()
        {
            CalcLog log = new CalcLog();
            DimensionalLumber m = new DimensionalLumber();
            double b = 1.5;
            double d = 5.5;

            double C_F = m.GetSizeFactor(d, b, Wood.NDS.Entities.SawnLumberType.DimensionLumber, Wood.NDS.Entities.CommercialGrade.No2,
                 Wood.NDS.Entities.ReferenceDesignValueType.Bending);


            double refValue = 1.3;
            double actualTolerance = EvaluateActualTolerance(C_F, refValue);
            Assert.LessOrEqual(actualTolerance, tolerance);

        }
Exemplo n.º 4
0
        public static Dictionary<string, object> SizeFactor(double d,double t, string WoodCommercialGrade, bool LoadAppliedToNarrowFace=false,
           string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values

            double C_F_Fb = 1.0;
            double C_F_Fc = 1.0;
            double C_F_Ft = 1.0;

            //Calculation logic:



            if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m = new DimensionalLumber();

                string memberType = WoodMemberType.TrimStart("Sawn".ToCharArray());
                
                SawnLumberType sawnLumberType;
                bool IsValidSawnLumberTypeString = Enum.TryParse(memberType, true, out sawnLumberType);
                if (IsValidSawnLumberTypeString == false)
                {
                    throw new Exception("Failed to convert string. Sawn lumber type is incorrectly specified. Please check input");
                }

                
                ww.CommercialGrade _commercialGrade;
                bool IsValidCommercialGradeString = Enum.TryParse(WoodCommercialGrade, true, out _commercialGrade);
                if (IsValidCommercialGradeString == false)
                {
                    throw new Exception("Failed to convert string. Wood commercial grade is incorrectly specified. Please check input");
                }


                C_F_Fb = m.GetSizeFactor(d, t, sawnLumberType, _commercialGrade, ww.ReferenceDesignValueType.Bending, LoadAppliedToNarrowFace);
                C_F_Ft = m.GetSizeFactor(d, t, sawnLumberType, _commercialGrade, ww.ReferenceDesignValueType.TensionParallelToGrain, LoadAppliedToNarrowFace);
                C_F_Fc = m.GetSizeFactor(d, t, sawnLumberType, _commercialGrade, ww.ReferenceDesignValueType.CompresionParallelToGrain, LoadAppliedToNarrowFace);

            }
            else if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Timber"))
            {
                Timber timber = new Timber();
            }
            else
            {
                throw new Exception("Wood member type not supported.");
            }

            return new Dictionary<string, object>
            {
                { "C_F_Fb", C_F_Fb },
                { "C_F_Fc", C_F_Fc },
                { "C_F_Ft", C_F_Ft },
            };
        }