Exemple #1
0
 public double GetShearLagFactor(ShearLagCase Case, double x_bar, double b_plate, double l,
     double B, double H, double A_g, double A_connected, bool IsOpenOpenTensionSection)
 {
     ShearLagFactorBase shearLagCase;
     switch (Case)
     {
         case ShearLagCase.Case1:
              shearLagCase = new ShearLagCase1();
             break;
         case ShearLagCase.Case2:
             shearLagCase = new ShearLagCase2(x_bar,l);
             break;
         case ShearLagCase.Case3:
             shearLagCase = new ShearLagCase3();
             break;
         case ShearLagCase.Case4:
             shearLagCase = new ShearLagCase4(b_plate,l);
             break;
         case ShearLagCase.Case5:
             shearLagCase = new ShearLagCase5(B, l);
             break;
         case ShearLagCase.Case6a:
              shearLagCase = new ShearLagCase6(true,B,H,l);
             break;
         case ShearLagCase.Case6b:
             shearLagCase = new ShearLagCase6(false, B, H, l);
             break;
         case ShearLagCase.Case7a:
             shearLagCase = new ShearLagCase7(2,H,b_plate,x_bar,l);
             break;
         case ShearLagCase.Case7b:
             shearLagCase = new ShearLagCase7(3, H, b_plate, x_bar, l);
             break;
         case ShearLagCase.Case7c:
             shearLagCase = new ShearLagCase7(4, H, b_plate, x_bar, l);
             break;
         case ShearLagCase.Case8a:
             shearLagCase = new ShearLagCase8(2, x_bar, l);
             break;
         case ShearLagCase.Case8b:
             shearLagCase = new ShearLagCase8(3, x_bar, l);
             break;
         case ShearLagCase.Case8c:
             shearLagCase = new ShearLagCase8(4, x_bar, l);
             break;
         default:
             shearLagCase = new ShearLagCase2(x_bar, l);
             break;
     }
     double U= shearLagCase.GetShearLagFactor();
     if (IsOpenOpenTensionSection == false)
     {
         return U;
     }
     else
     {
         //AISC section D3
         //For open cross sections such as W, M, S, C or HP shapes, WTs, STs, and single and
         //double angles, the shear lag factor, U, need not be less than the ratio of the gross area
         //of the connected element(s) to the member gross area. This provision does not apply
         //to closed sections, such as HSS sections, nor to plates
         double Umax = A_connected / A_g;
         U = U < Umax ? Umax : U;
         return U;
     }
 }
        public double GetShearLagFactor(ShearLagCase Case, double x_bar, double b_plate, double l,
                                        double B, double H, double A_g, double A_connected, bool IsOpenOpenTensionSection)
        {
            ShearLagFactorBase shearLagCase;

            switch (Case)
            {
            case ShearLagCase.Case1:
                shearLagCase = new ShearLagCase1();
                break;

            case ShearLagCase.Case2:
                shearLagCase = new ShearLagCase2(x_bar, l);
                break;

            case ShearLagCase.Case3:
                shearLagCase = new ShearLagCase3();
                break;

            case ShearLagCase.Case4:
                shearLagCase = new ShearLagCase4(b_plate, l);
                break;

            case ShearLagCase.Case5:
                shearLagCase = new ShearLagCase5(B, l);
                break;

            case ShearLagCase.Case6a:
                shearLagCase = new ShearLagCase6(true, B, H, l);
                break;

            case ShearLagCase.Case6b:
                shearLagCase = new ShearLagCase6(false, B, H, l);
                break;

            case ShearLagCase.Case7a:
                shearLagCase = new ShearLagCase7(2, H, b_plate, x_bar, l);
                break;

            case ShearLagCase.Case7b:
                shearLagCase = new ShearLagCase7(3, H, b_plate, x_bar, l);
                break;

            case ShearLagCase.Case7c:
                shearLagCase = new ShearLagCase7(4, H, b_plate, x_bar, l);
                break;

            case ShearLagCase.Case8a:
                shearLagCase = new ShearLagCase8(2, x_bar, l);
                break;

            case ShearLagCase.Case8b:
                shearLagCase = new ShearLagCase8(3, x_bar, l);
                break;

            case ShearLagCase.Case8c:
                shearLagCase = new ShearLagCase8(4, x_bar, l);
                break;

            default:
                shearLagCase = new ShearLagCase2(x_bar, l);
                break;
            }
            double U = shearLagCase.GetShearLagFactor();

            if (IsOpenOpenTensionSection == false)
            {
                return(U);
            }
            else
            {
                //AISC section D3
                //For open cross sections such as W, M, S, C or HP shapes, WTs, STs, and single and
                //double angles, the shear lag factor, U, need not be less than the ratio of the gross area
                //of the connected element(s) to the member gross area. This provision does not apply
                //to closed sections, such as HSS sections, nor to plates
                double Umax = A_connected / A_g;
                U = U < Umax ? Umax : U;
                return(U);
            }
        }