/// <summary>
        /// When dimension lumber is used where moisture content will exceed 19% for an extended time period,
        /// design values shall be multiplied by the appropriate wet service factors
        /// </summary>
        /// <param name="ValueType"> Distiguishes between bending, shear, tension compression reference values</param>
        /// <param name="F">Reference design value for bending or compression</param>
        /// <param name="C_F">Size factor</param>
        /// <param name="SawnLumberType">Defines the type of lumber</param>
        /// <returns></returns>
        public double GetWetServiceFactor(ReferenceDesignValueType ValueType, double F,
                                          double C_F, SawnLumberType SawnLumberType)
        {
            double Cm = 1.0;

            switch (SawnLumberType)
            {
            case SawnLumberType.DimensionLumber:
                return(GetDimensionalLumberC_M(ValueType, F, C_F));    //4A

            case SawnLumberType.SouthernPineDimensionLumber:
                return(GetDimensionalLumberC_M(ValueType, F, C_F));    //4B

            case SawnLumberType.MechanicallyGradedDimensionLumber:     //4C
                return(GetDimensionalLumberC_M(ValueType, F, C_F));

            case SawnLumberType.VisuallyGradedTimbers:     //4D
                return(GetTimberC_M(ValueType, F, C_F));

            case SawnLumberType.VisuallyGradedDecking:     //4E
                return(GetDeckingC_M(ValueType, F, C_F));

            case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber:     //4F
                return(GetNonNorthAmericanLumberC_M(ValueType, F, C_F));

            default:
                return(GetDimensionalLumberC_M(ValueType, F, C_F));    //4A
            }
        }
Beispiel #2
0
        private double GetFlatUseCoefficientFromReferenceTable(
            double Depth, double Thickness,
            SawnLumberType SawnLumberType, 
            CommercialGrade CommercialGrade, 
            ReferenceDesignValueType ReferenceDesignValueType
            )
        {
            double b = Depth;
            double t = Thickness;
            double C_fu = 1.0;
            switch (SawnLumberType)
            {
                case SawnLumberType.DimensionLumber:
                    C_fu = GetDimensionalLumberC_fu(b, t); break;//4A
                case SawnLumberType.SouthernPineDimensionLumber://4B
                    C_fu = GetSPDimensionalLumberC_fu(b, t); break;
                case SawnLumberType.MechanicallyGradedDimensionLumber: //4C
                    C_fu = GetMechanicallyGradedLumberC_fu(b, t);  break;
                case SawnLumberType.VisuallyGradedTimbers: //4D
                    C_fu = GetTimberC_fu(b, t, CommercialGrade, ReferenceDesignValueType); break;
                case SawnLumberType.VisuallyGradedDecking: //4E
                    C_fu = GetDeckingC_fu(); break;
                case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber: //4F
                    C_fu = GetNonNorthAmericanLumberC_fu(b, t); break;
                default://4A
                    C_fu = GetDimensionalLumberC_fu(b, t); break; 

            }
            return C_fu;
        }
Beispiel #3
0
        private double GetSizeCoefficientFromReferenceTable(
           double Depth, double Thickness,
           SawnLumberType SawnLumberType,
           CommercialGrade CommercialGrade,
           ReferenceDesignValueType ReferenceDesignValueType,
            bool LoadAppliedToNarrowFace
           )
        {
            double b = Depth;
            double t = Thickness;
            double C_F = 1.0;
            switch (SawnLumberType)
            {
                case SawnLumberType.DimensionLumber:
                    C_F = GetDimensionalLumberC_F(b, t, CommercialGrade,ReferenceDesignValueType); break;//4A
                case SawnLumberType.SouthernPineDimensionLumber://4B
                    C_F = GetSPDimensionalLumberC_F(b, t,CommercialGrade); break;
                case SawnLumberType.MechanicallyGradedDimensionLumber: //4C
                    C_F = 1.0; break;
                case SawnLumberType.VisuallyGradedTimbers: //4D
                    C_F = GetTimberC_F(b, ReferenceDesignValueType, LoadAppliedToNarrowFace); break;
                case SawnLumberType.VisuallyGradedDecking: //4E
                    C_F = GetDeckingC_F(t); break;
                case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber: //4F
                    //Adjustment factors for table 4F are the same as those for 4A
                    C_F = GetDimensionalLumberC_F(b, t, CommercialGrade, ReferenceDesignValueType); break;
                default://4A
                     C_F = GetDimensionalLumberC_F(b, t, CommercialGrade,ReferenceDesignValueType); break;

            }
            return C_F;
        }
Beispiel #4
0
    public double GetRepetitiveCoefficientFromReferenceTable(double Thickness,
    SawnLumberType SawnLumberType)
        {
        
        double C_r;

        switch (SawnLumberType)
        {
            case SawnLumberType.DimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4A
                break;
            case SawnLumberType.SouthernPineDimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4B
                break;
            case SawnLumberType.MechanicallyGradedDimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4C
                break;
            case SawnLumberType.VisuallyGradedTimbers:
                C_r = 1.0;//4D
                break;
            case SawnLumberType.VisuallyGradedDecking:
                 C_r = 1.0;//4E
                break;
            case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4F
                break;
            default:
                C_r = GetDimensionalLumberC_r(Thickness); //4A
                break;
        }

        return C_r;
        }
Beispiel #5
0
 public double GetFlatUseFactor( 
     double Depth, double Thickness,
     SawnLumberType SawnLumberType,
     CommercialGrade CommercialGrade, 
     ReferenceDesignValueType ReferenceDesignValueType
     )
 {
     double b = Depth;
     double C_fu = 1.0;
     if (b >= 2 || b <= 4)
     {
         C_fu = GetFlatUseCoefficientFromReferenceTable(
         Depth,  Thickness,
         SawnLumberType, CommercialGrade, 
         ReferenceDesignValueType);
     }
     return C_fu;
 }
Beispiel #6
0
        public double GetFlatUseFactor(
            double Depth, double Thickness,
            SawnLumberType SawnLumberType,
            CommercialGrade CommercialGrade,
            ReferenceDesignValueType ReferenceDesignValueType
            )
        {
            double b    = Depth;
            double C_fu = 1.0;

            if (b >= 2 || b <= 4)
            {
                C_fu = GetFlatUseCoefficientFromReferenceTable(
                    Depth, Thickness,
                    SawnLumberType, CommercialGrade,
                    ReferenceDesignValueType);
            }
            return(C_fu);
        }
Beispiel #7
0
        private double GetSizeCoefficientFromReferenceTable(
            double Depth, double Thickness,
            SawnLumberType SawnLumberType,
            CommercialGrade CommercialGrade,
            ReferenceDesignValueType ReferenceDesignValueType,
            bool LoadAppliedToNarrowFace
            )
        {
            double b   = Depth;
            double t   = Thickness;
            double C_F = 1.0;

            switch (SawnLumberType)
            {
            case SawnLumberType.DimensionLumber:
                C_F = GetDimensionalLumberC_F(b, t, CommercialGrade, ReferenceDesignValueType); break; //4A

            case SawnLumberType.SouthernPineDimensionLumber:                                           //4B
                C_F = GetSPDimensionalLumberC_F(b, t, CommercialGrade); break;

            case SawnLumberType.MechanicallyGradedDimensionLumber:     //4C
                C_F = 1.0; break;

            case SawnLumberType.VisuallyGradedTimbers:     //4D
                C_F = GetTimberC_F(b, ReferenceDesignValueType, LoadAppliedToNarrowFace); break;

            case SawnLumberType.VisuallyGradedDecking:     //4E
                C_F = GetDeckingC_F(t); break;

            case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber:     //4F
                //Adjustment factors for table 4F are the same as those for 4A
                C_F = GetDimensionalLumberC_F(b, t, CommercialGrade, ReferenceDesignValueType); break;

            default:    //4A
                C_F = GetDimensionalLumberC_F(b, t, CommercialGrade, ReferenceDesignValueType); break;
            }
            return(C_F);
        }
Beispiel #8
0
        public double GetRepetitiveCoefficientFromReferenceTable(double Thickness,
                                                                 SawnLumberType SawnLumberType)
        {
            double C_r;

            switch (SawnLumberType)
            {
            case SawnLumberType.DimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4A
                break;

            case SawnLumberType.SouthernPineDimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4B
                break;

            case SawnLumberType.MechanicallyGradedDimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4C
                break;

            case SawnLumberType.VisuallyGradedTimbers:
                C_r = 1.0;//4D
                break;

            case SawnLumberType.VisuallyGradedDecking:
                C_r = 1.0; //4E
                break;

            case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber:
                C_r = GetDimensionalLumberC_r(Thickness); //4F
                break;

            default:
                C_r = GetDimensionalLumberC_r(Thickness); //4A
                break;
            }

            return(C_r);
        }
Beispiel #9
0
 public double GetRepetitiveMemberFactor(bool IsRepetitive,
                                         double Spacing,
                                         double Thickness,
                                         SawnLumberType SawnLumberType)
 {
     //NDS 2015 Section 4.3.9
     if (IsRepetitive == true)
     {
         if (Spacing > 24)
         {
             return(1.0);
         }
         else
         {
             //return 1.15;
             return(GetRepetitiveCoefficientFromReferenceTable(Thickness, SawnLumberType));
         }
     }
     else
     {
         return(1.0);
     }
 }
Beispiel #10
0
        /// <summary>
        /// When dimension lumber is used where moisture content will exceed 19% for an extended time period, 
        /// design values shall be multiplied by the appropriate wet service factors 
        /// </summary>
        /// <param name="ValueType"> Distiguishes between bending, shear, tension compression reference values</param>
        /// <param name="F">Reference design value for bending or compression</param>
        /// <param name="C_F">Size factor</param>
        /// <param name="SawnLumberType">Defines the type of lumber</param>
        /// <returns></returns>
        public  double GetWetServiceFactor(ReferenceDesignValueType ValueType, double F,
            double C_F, SawnLumberType SawnLumberType)
        {
            double Cm = 1.0;
            switch (SawnLumberType)
            {
                case SawnLumberType.DimensionLumber:
                    return GetDimensionalLumberC_M(ValueType, F, C_F); //4A
                case SawnLumberType.SouthernPineDimensionLumber:
                    return GetDimensionalLumberC_M(ValueType, F, C_F); //4B
                case SawnLumberType.MechanicallyGradedDimensionLumber: //4C
                    return GetDimensionalLumberC_M(ValueType, F, C_F);
                case SawnLumberType.VisuallyGradedTimbers: //4D
                    return GetTimberC_M(ValueType, F, C_F);
                case SawnLumberType.VisuallyGradedDecking: //4E
                    return GetDeckingC_M(ValueType, F, C_F);
                case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber: //4F
                    return GetNonNorthAmericanLumberC_M(ValueType, F, C_F);
                default:
                    return GetDimensionalLumberC_M(ValueType, F, C_F); //4A

            }
        }
Beispiel #11
0
        public  double GetSizeFactor(
            double Depth, double Thickness,
            SawnLumberType SawnLumberType,
            CommercialGrade CommercialGrade,
            ReferenceDesignValueType ReferenceDesignValueType,
            bool LoadAppliedToNarrowFace=true
            )
        {
            double C_F;
            if (Thickness >= 5 && Depth > 12.0)
            {
                // NDS 2015 Section 4.3.6.2
                C_F = Math.Pow(12 / Depth, 1 / 9.0);
                C_F = C_F > 1.0 ? 1.0 : C_F;
            }

            else
            {
                C_F = GetSizeCoefficientFromReferenceTable(Depth, Thickness, SawnLumberType,
                   CommercialGrade, ReferenceDesignValueType, LoadAppliedToNarrowFace);
            }
            return C_F;
        }
Beispiel #12
0
 public double GetRepetitiveMemberFactor(bool IsRepetitive, 
     double Spacing,
      double Thickness,
     SawnLumberType SawnLumberType)
 {
     //NDS 2015 Section 4.3.9
     if (IsRepetitive == true)
     {
         if (Spacing > 24)
         {
             return 1.0;
         }
         else
         {
             //return 1.15;
             return GetRepetitiveCoefficientFromReferenceTable(Thickness, SawnLumberType);
         }
     }
     else
     {
         return 1.0;
     }
 }
Beispiel #13
0
        public double GetSizeFactor(
            double Depth, double Thickness,
            SawnLumberType SawnLumberType,
            CommercialGrade CommercialGrade,
            ReferenceDesignValueType ReferenceDesignValueType,
            bool LoadAppliedToNarrowFace = true
            )
        {
            double C_F;

            if (Thickness >= 5 && Depth > 12.0)
            {
                // NDS 2015 Section 4.3.6.2
                C_F = Math.Pow(12 / Depth, 1 / 9.0);
                C_F = C_F > 1.0 ? 1.0 : C_F;
            }

            else
            {
                C_F = GetSizeCoefficientFromReferenceTable(Depth, Thickness, SawnLumberType,
                                                           CommercialGrade, ReferenceDesignValueType, LoadAppliedToNarrowFace);
            }
            return(C_F);
        }
Beispiel #14
0
        private double GetFlatUseCoefficientFromReferenceTable(
            double Depth, double Thickness,
            SawnLumberType SawnLumberType,
            CommercialGrade CommercialGrade,
            ReferenceDesignValueType ReferenceDesignValueType
            )
        {
            double b    = Depth;
            double t    = Thickness;
            double C_fu = 1.0;

            switch (SawnLumberType)
            {
            case SawnLumberType.DimensionLumber:
                C_fu = GetDimensionalLumberC_fu(b, t); break;   //4A

            case SawnLumberType.SouthernPineDimensionLumber:    //4B
                C_fu = GetSPDimensionalLumberC_fu(b, t); break;

            case SawnLumberType.MechanicallyGradedDimensionLumber:     //4C
                C_fu = GetMechanicallyGradedLumberC_fu(b, t);  break;

            case SawnLumberType.VisuallyGradedTimbers:     //4D
                C_fu = GetTimberC_fu(b, t, CommercialGrade, ReferenceDesignValueType); break;

            case SawnLumberType.VisuallyGradedDecking:     //4E
                C_fu = GetDeckingC_fu(); break;

            case SawnLumberType.NonNorthAmericanVisuallyGradedDimensionLumber:     //4F
                C_fu = GetNonNorthAmericanLumberC_fu(b, t); break;

            default:    //4A
                C_fu = GetDimensionalLumberC_fu(b, t); break;
            }
            return(C_fu);
        }