Exemplo n.º 1
0
 public C__HL4(CCrSc objCrSc, C_GEO__HL objGeo, C_IFO objIFO, C_STR__HL objStr, C__HL objC_HL, C_MAT__HL objMat, C_ADD__HL objAdd, ECrScPrType1 eProd)
 {
     if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
         GetCrSc4_HLR(objCrSc, objGeo, objIFO, objStr, objC_HL, objMat, objAdd);
     else
         GetCrSc4_HLW(objCrSc, objGeo, objIFO, objStr, objC_HL, objMat, objAdd);
 }
Exemplo n.º 2
0
        public C_ADD___L(C_NAD objNAD, C_GEO___L objGeo, C_MAT___L objMat, CCrSc objCrSc, ECrScSymmetry1 eSym, ECrScPrType1 eProd)
        {
            m_ft_V_z = objGeo.m_ft_a;   // ???????
            m_ft_V_y = objGeo.m_ft_b;   // ???????

            m_fN_pl = objCrSc.m_fA * objMat.Ff_y;
            m_fN_u = objCrSc.m_fA * objMat.Ff_u;
            m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.Ff_y;
            m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y;

            if (eProd == ECrScPrType1.eCrSc_rold || eProd == ECrScPrType1.eCrSc_cldfrm)
            {
            m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IR;
            m_fBeta_LT = objNAD.m_fBeta_LT_IR;
            }
            else
            {
            m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS;
            m_fBeta_LT = objNAD.m_fBeta_LT_IS;
            }

            /*
            bSchubbeulen = FALSE;

            bDoppeltSymmQuerschnitt = FALSE;
            bEinfachSymmQuerschnitt = FALSE;
            */
        }
Exemplo n.º 3
0
        public C_STR___U(C_IFO objIFO, C_GEO___U objGeo, CCrSc objCrSc)
        {
            m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA;

            float fSigma_My_f = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fh / 2.0f;
            float fSigma_My_w = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fc_w / 2.0f;
            float fSigma_Mz_fA = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objCrSc.m_fy_S - objGeo.m_ft_w - objGeo.m_fr);
            float fSigma_Mz_fB = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objCrSc.m_fy_S - objGeo.m_fb);
            float fSigma_Mz_wa = objIFO.FM_z_Ed / objCrSc.m_fI_z * objCrSc.m_fy_S;
            float fSigma_Mz_wi = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objCrSc.m_fy_S - objGeo.m_ft_w);

            // Flanges
            m_fSigma_fuA = m_fSigma_N - fSigma_My_f + fSigma_Mz_fA;
            m_fSigma_fuB = m_fSigma_N - fSigma_My_f + fSigma_Mz_fB;
            m_fSigma_fbA = m_fSigma_N + fSigma_My_f + fSigma_Mz_fA;
            m_fSigma_fbB = m_fSigma_N + fSigma_My_f + fSigma_Mz_fB;

            m_fSigma_fA = Math.Min(m_fSigma_fuA, m_fSigma_fbA);
            m_fSigma_fB = Math.Min(m_fSigma_fuB, m_fSigma_fbB);

            // Web
            m_fSigma_wA = m_fSigma_N - fSigma_My_w + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi);
            m_fSigma_wB = m_fSigma_N + fSigma_My_w + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi);

            // 5.5.2(9)
            m_fSigma_com_Ed = Math.Max(Math.Abs(Math.Min(m_fSigma_fA, m_fSigma_fB)), 0.0f);
        }
Exemplo n.º 4
0
 public C___I4(CCrSc objCrSc, C_GEO___I objGeo, C_IFO objIFO, C_STR___I objStr, C___I objC__I, C_MAT___I objMat, C_ADD___I objAdd, ECrScSymmetry1 eSym)
 {
     if (eSym == ECrScSymmetry1.eDS)
         GetCrSc4_ID(objCrSc, objGeo, objIFO, objStr, objC__I, objMat, objAdd);
     else
         GetCrSc4_IM(objCrSc, objGeo, objIFO, objStr, objC__I, objMat, objAdd);
 }
Exemplo n.º 5
0
 public C_STR__TU(C_IFO objIFO, C_GEO__TU objGeo, CCrSc objCrSc)
 {
     float m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA;
     float m_fSigma_My = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fd / 2.0f;
     float m_fSigma_Mz = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fd / 2.0f;
     m_fSigma = m_fSigma_N - Math.Max(Math.Abs(m_fSigma_My), Math.Abs(m_fSigma_Mz));
 }
Exemplo n.º 6
0
        public C_ADD___U(C_NAD objNAD, C_GEO___U objGeo, C_MAT___U objMat, CCrSc objCrSc, ECrScPrType1 eProd)
        {
            m_ft_V_z = objGeo.m_ft_w;            // (6.20)
            m_ft_V_y = objGeo.m_ft_f;

            m_fA_w = objCrSc.m_fA - 2f * objGeo.m_fb * objGeo.m_ft_f;
            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
              m_fA_w += (objGeo.m_ft_w + objGeo.m_fr) * objGeo.m_ft_f;

            m_fA_f = objCrSc.m_fA - m_fA_w;

            m_fN_pl = m_fA_f * objMat.m_ff_y_f + m_fA_w * objMat.m_ff_y_w;
            m_fN_u  = m_fA_f * objMat.m_ff_u_f + m_fA_w * objMat.m_ff_u_w;

            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
            m_fA_v_z = Math.Max(m_fA_v_z, objCrSc.m_fA - 2f * objGeo.m_fb * objGeo.m_ft_f + (objGeo.m_ft_w + objGeo.m_fr) * objGeo.m_ft_f); //6.2.6(3)a)

             // 6.2.8
            float rW_pl_y_w;
            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
              rW_pl_y_w = 2.0f * sqr(0.5f * objGeo.m_fh - 0.5f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f +                // 6.2.6(3) b)
                    objGeo.m_fr * 0.5f * objGeo.m_ft_f * (0.5f * objGeo.m_fh - 0.75f * objGeo.m_ft_f) +
                    0.214602f * sqr(objGeo.m_fr) * (0.5f * objGeo.m_fh - objGeo.m_ft_f - 0.77663f * objGeo.m_fr);
            else
            rW_pl_y_w = sqr(objGeo.m_fh - 2.0f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f;

            // 6.2.8
            float rW_pl_z_f = 2.0f * sqr(objGeo.m_fb) * objGeo.m_ft_f / 4.0f;

            float rW_pl_y_wh = sqr(objGeo.m_fh_w) * objGeo.m_ft_w / 4.0f;

            m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.m_ff_y_f + rW_pl_y_wh * (objMat.m_ff_y_w - objMat.m_ff_y_f);

            m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y;

            if (objCrSc.m_fz_S == 0.0f)
            objCrSc.m_fz_S = objGeo.m_fh / 2.0f;

            // 6.3.2.3(1)
            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
            {
            m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IR;
            m_fBeta_LT = objNAD.m_fBeta_LT_IR;
            }
            else
            {
            m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS;
            m_fBeta_LT = objNAD.m_fBeta_LT_IS;
            }

               // bDoppeltSymmQuerschnitt = FALSE;
        }
Exemplo n.º 7
0
        public C_STR___L(C_IFO objIFO, C_GEO___L objGeo, CCrSc objCrSc, ECrScSymmetry1 eSym)
        {
            m_fSP_y_par[0] = -objCrSc.m_fy_S;
            m_fSP_z_par[0] = objCrSc.m_fz_S - objGeo.m_fh;
            m_fSP_y_par[1] = -objCrSc.m_fy_S + objGeo.m_ft_a;
            m_fSP_z_par[1] = objCrSc.m_fz_S - objGeo.m_fh;
            m_fSP_y_par[2] = -objCrSc.m_fy_S;
            m_fSP_z_par[2] = objCrSc.m_fz_S - objGeo.m_ft_b - objGeo.m_fr;

            m_fSP_y_par[3] = -objCrSc.m_fy_S;
            m_fSP_z_par[3] = objCrSc.m_fz_S;

            m_fSP_y_par[4] = -objCrSc.m_fy_S + objGeo.m_ft_a + objGeo.m_fr;
            m_fSP_z_par[4] = objCrSc.m_fz_S;
            m_fSP_y_par[5] = -objCrSc.m_fy_S + objGeo.m_fb;
            m_fSP_z_par[5] = objCrSc.m_fz_S;
            m_fSP_y_par[6] = -objCrSc.m_fy_S + objGeo.m_fb;
            m_fSP_z_par[6] = objCrSc.m_fz_S - objGeo.m_ft_b;

            float m_fSigma_x_N_Ed = objIFO.FN_Ed / objCrSc.m_fA;

            float m_fSigma_x_Ed_min = float.MaxValue;

            for (int iSP = 0; iSP < 7; iSP++)
            {

                m_fSP_y[iSP] = m_fSP_y_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis) + m_fSP_z_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis);
                m_fSP_z[iSP] = -m_fSP_y_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis) + m_fSP_z_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis);

                float m_fSP_Sigma_x_My_Ed = objIFO.FM_y_Ed / objCrSc.m_fI_y * m_fSP_z[iSP];
                float m_fSP_Sigma_x_Mz_Ed = -objIFO.FM_z_Ed / objCrSc.m_fI_z * m_fSP_y[iSP];

                m_fSP_Sigma_x_Ed[iSP] = m_fSigma_x_N_Ed + m_fSP_Sigma_x_My_Ed + m_fSP_Sigma_x_Mz_Ed;

                m_fSigma_x_Ed_min = Math.Min(m_fSigma_x_Ed_min, m_fSP_Sigma_x_Ed[iSP]);
            }
        }
Exemplo n.º 8
0
        public C_ADD__TU(C_NAD objNAD, C_GEO__TU objGeo, C_MAT__TU objMat, CCrSc objCrSc, ECrScPrType1 eProd)
        {
            m_ft_V_z = objGeo.m_ft;            // (6.20)
            m_ft_V_y = objGeo.m_ft;

            m_fN_pl = objCrSc.m_fA * objMat.Ff_y;
            m_fN_u = objCrSc.m_fA * objMat.Ff_u;

            // 6.2.6(3) g)
            m_fA_v_z = 2.0f * objCrSc.m_fA / (float)Math.PI;
            m_fA_w = m_fA_f = m_fA_v_y = m_fA_v_z;

            // Plastische Momente
            m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.Ff_y;
            m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y;

            /*
            bGeschlQuerschnitt = TRUE;

            bSchubbeulen = FALSE;
             */

            m_fA_k = (float)Math.PI * sqr((objGeo.m_fd - objGeo.m_ft) / 2.0f);
        }
Exemplo n.º 9
0
        public CH_EC3_10101(CCrSc objCrSc, C_MAT objMat)
        {
            m_fN_Ed = 70000f; //Nacitanie z databazy vysledkov

            m_fA = objCrSc.m_fA;    // Nacitanie z databazy prierezov

            m_ff_y = objMat.Ff_y; // Nacitanie z databazy materialov
            m_fGamma_M0 = 1f; // Nacitanie z NA normy

            CL_62 obCL_62 = new CL_62();
            CL obCL = new CL();

            // Auxiliary temporary variables
            /*
            bool  bHoleExist = false; // No holes implemented
            int   iConCat = -1; // No connection cathegory implemented
            float fA_net = m_fA; // Net area not implemented (holes or opennings are not allowed)
            */

            //m_fN_t_Rd = obCL.Get_fN_t_Rd(bHoleExist, iConCat, m_fA, fA_net, m_ff_y, m_ff_u, m_fGamma_M0, m_fGamma_M2);

            m_fN_t_Rd = obCL_62.Eq_66______(m_fA, m_ff_y, m_fGamma_M0);
            fDsgRatio = obCL_62.Eq_65______(Math.Abs(m_fN_Ed), m_fN_t_Rd);
        }
Exemplo n.º 10
0
        public C_ADD___I(C_NAD objNAD, C_GEO___I objGeo, C_MAT___I objMat, CCrSc objCrSc, ECrScSymmetry1 eSym, ECrScPrType1 eProd)
        {
            if (eSym == ECrScSymmetry1.eDS)
            {
                m_ft_V_z = objGeo.m_ft_w;        //    (6.20)
                m_ft_V_y = objGeo.m_ft_f;

                m_fA_w = objCrSc.m_fA - 2.0f * objGeo.m_fb * objGeo.m_ft_f;
                if (eProd == ECrScPrType1.eCrSc_rold)
                    m_fA_w += (objGeo.m_ft_w + 2.0f * objGeo.m_fr) * objGeo.m_ft_f;

                m_fA_f = objCrSc.m_fA - m_fA_w;

                m_fN_pl = m_fA_f * objMat.m_ff_y_f + m_fA_w * objMat.m_ff_y_w;
                m_fN_u = m_fA_f * objMat.m_ff_u_f + m_fA_w * objMat.m_ff_u_w;

                if (eProd == ECrScPrType1.eCrSc_rold)
                {
                    m_fA_v_z = Math.Max(m_fA_v_z, m_fEta * objGeo.m_fh_w * objGeo.m_ft_w); //6.2.6(3)a)
                }
                else
                {
                    m_fA_v_z = m_fEta * objGeo.m_fh_w * objGeo.m_ft_w;           // 6.2.6(3)d)
                }

                //6.2.8
                float rW_pl_y_w;
                if (eProd == ECrScPrType1.eCrSc_rold)
                    rW_pl_y_w = 2.0f * sqr(0.5f * objGeo.m_fh - 0.5f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f +                  // acc. to 6.2.6(3) a)
                                2.0f * objGeo.m_fr * 0.5f * objGeo.m_ft_f * (0.5f * objGeo.m_fh - 0.75f * objGeo.m_ft_f) +
                                2.0f * 0.214602f * sqr(objGeo.m_fr) * (0.5f * objGeo.m_fh - objGeo.m_ft_f - 0.77663f * objGeo.m_fr);
                else
                    rW_pl_y_w = sqr(objGeo.m_fh - 2.0f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f;                   // acc. to 6.2.6(3) d)

                // 6.2.8
                float rW_pl_z_f = 2.0f * sqr(objGeo.m_fb) * objGeo.m_ft_f / 4.0f;

                float rW_pl_y_wh = sqr(objGeo.m_fh_w) * objGeo.m_ft_w / 4.0f;

                m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.m_ff_y_f + rW_pl_y_wh * (objMat.m_ff_y_w - objMat.m_ff_y_f);

                m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.m_ff_y_w + rW_pl_z_f * (objMat.m_ff_y_f - objMat.m_ff_y_w);

                // 6.3.2.3(1)
                if (eProd == ECrScPrType1.eCrSc_rold)
                {
                    m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IR;
                    m_fBeta_LT = objNAD.m_fBeta_LT_IR;
                }
                else
                {
                    m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS;
                    m_fBeta_LT = objNAD.m_fBeta_LT_IS;
                }

                if (objCrSc.m_fz_S == 0.0f)
                    objCrSc.m_fz_S = objGeo.m_fh / 2.0f;

                m_bQuerschn_fuer_InterVerf_2_moeglich = true;
            }
            else
            {
                m_ft_V_z = objGeo.m_ft_w; // (6.20)
                m_ft_V_y = Math.Min(objGeo.m_ft_fu, objGeo.m_ft_fb);

                m_fA_fu = objGeo.m_fb_fu * objGeo.m_ft_fu;
                m_fA_fb = objGeo.m_fb_fb * objGeo.m_ft_fb;
                m_fA_f = Math.Min(m_fA_fu, m_fA_fb); // Temporary
                m_fA_w = objGeo.m_fh_w * objGeo.m_ft_w;

                m_fN_pl = m_fA_fu * objMat.m_ff_y_fu + m_fA_fb * objMat.m_ff_y_fb + m_fA_w * objMat.m_ff_y_w;
                m_fN_u = m_fA_fu * objMat.m_ff_u_fu + m_fA_fb * objMat.m_ff_u_fb + m_fA_w * objMat.m_ff_u_w;

                // 6.2.6(3) d) and e)
                m_fA_v_z = m_fEta * objGeo.m_fh_w * objGeo.m_ft_w;
                m_fA_v_y = objCrSc.m_fA - objGeo.m_fh_w * objGeo.m_ft_w;

                float rz_pl_0 = 0.5f * (-objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * objGeo.m_ft_w * objMat.m_ff_y_w + objGeo.m_fb_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb) / (objGeo.m_ft_w * objMat.m_ff_y_w) + objGeo.m_ft_fu;
                float rW_pl_y_wh;

                if (rz_pl_0 >= objGeo.m_ft_fu && rz_pl_0 <= objGeo.m_fh - objGeo.m_ft_fb)
                {
                    rW_pl_y_wh = sqr(rz_pl_0 - objGeo.m_ft_fu) * objGeo.m_ft_w / 2.0f + sqr(objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb) * objGeo.m_ft_w / 2.0f;
                    m_fM_pl_y = objGeo.m_fb_fu * objGeo.m_ft_fu * (rz_pl_0 - objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu +
                              rW_pl_y_wh * objMat.m_ff_y_w +
                              objGeo.m_fb_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb;
                }
                else if (rz_pl_0 < objGeo.m_ft_fu)
                {
                    rz_pl_0 = 0.5f * (objGeo.m_fb_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb + objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * objGeo.m_ft_w * objMat.m_ff_y_w) / (objGeo.m_fb_fu * objMat.m_ff_y_fu);
                    rW_pl_y_wh = objGeo.m_fh_w * objGeo.m_ft_w * (objGeo.m_fh_w / 2.0f + objGeo.m_ft_fu - rz_pl_0);
                    m_fM_pl_y = objGeo.m_fb_fu * (sqr(rz_pl_0) / 2.0f + sqr(objGeo.m_ft_fu - rz_pl_0) / 2.0f) * objMat.m_ff_y_fu +
                              rW_pl_y_wh * objMat.m_ff_y_w +
                              objGeo.m_fb_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb;
                }
                else
                {
                    rz_pl_0 = -0.5f * (objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * objGeo.m_ft_w * objMat.m_ff_y_w - objGeo.m_fb_fb * objMat.m_ff_y_fb * objGeo.m_ft_fu - objGeo.m_fb_fb * objMat.m_ff_y_fb * objGeo.m_fh_w - objGeo.m_fh * objGeo.m_fb_fb * objMat.m_ff_y_fb) / (objGeo.m_fb_fb * objMat.m_ff_y_fb);
                    rW_pl_y_wh = objGeo.m_fh_w * objGeo.m_ft_w * (rz_pl_0 - objGeo.m_ft_fu - objGeo.m_fh_w / 2.0f);
                    m_fM_pl_y = objGeo.m_fb_fu * objGeo.m_ft_fu * (rz_pl_0 - objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu +
                              rW_pl_y_wh * objMat.m_ff_y_w +
                              objGeo.m_fb_fb * objGeo.m_ft_fb * (sqr(objGeo.m_fh - rz_pl_0) / 2.0f + sqr(rz_pl_0 - objGeo.m_fh_w - objGeo.m_ft_fu) / 2.0f) * objMat.m_ff_y_fb;
                }

                float rW_pl_y_w = m_fEta * rW_pl_y_wh;                                                        // Acc. to 6.2.6(3) d)

                float rW_pl_z_fo = 2.0f * (objGeo.m_fb_fu / 2.0f * objGeo.m_ft_fu * objGeo.m_fb_fu / 4.0f);
                float rW_pl_z_fu = 2.0f * (objGeo.m_fb_fb / 2.0f * objGeo.m_ft_fb * objGeo.m_fb_fb / 4.0f);
                float rW_pl_z_f = rW_pl_z_fo + rW_pl_z_fu;                                                 // Acc. to 6.2.6(3) e)

                m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.m_ff_y_w + rW_pl_z_fo * (objMat.m_ff_y_fu - objMat.m_ff_y_w) + rW_pl_z_fu * (objMat.m_ff_y_fb - objMat.m_ff_y_w);

                // 6.3.2.3(1)
                m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS;
                m_fBeta_LT = objNAD.m_fBeta_LT_IS;

                objGeo.m_fb = Math.Min(objGeo.m_fb_fu, objGeo.m_fb_fb);                           // Tab. 6.4 resp. 6.5

                // Symmetriu musim urcovat skor - uz pri vytvoreni tried Geo a CrSc
                /*
                if (Math.Abs(objCrSc.m_fz_S - objGeo.m_fh / 2.0f) > objGeo.m_fh * 1.0e-3f)
                    bDoppeltSymmQuerschnitt = FALSE;
                 */

                m_bQuerschn_fuer_InterVerf_2_moeglich = true;
            }
        }
Exemplo n.º 11
0
        void GetCrSc4_HLR(CCrSc objCrSc, C_GEO__HL objGeo, C_IFO objIFO, C_STR__HL objStr, C__HL objC_HL, C_MAT__HL objMat, C_ADD__HL objAdd)
        {
            if (objC_HL.m_iClass_fu == 4 || objC_HL.m_iClass_fb == 4)
            {
                // EN 1993-1-5,Table 4.1
                GetEff_INT(objStr.m_fSigma_fuA,
                                         objStr.m_fSigma_fuB,
                                         objGeo.m_fc_f,
                                         objGeo.m_ft_f,
                                         objMat.m_fEps_f,
                                         fSigma_1_fu,
                                         fSigma_2_fu,
                                         fPsi_fu,
                                         fk_Sigma_fu,
                                         fLambda_rel_p_fu,
                                         fRho_fu,
                                         fb_eff_fu,
                                         fb_e1_fu,
                                         fb_e2_fu,
                                         fb_red_fu,
                                         fb_em_fu,
                                         objMat.BStainlessS);

                // EN 1993-1-5,Table 4.1
                GetEff_INT(objStr.m_fSigma_fbA,
                                         objStr.m_fSigma_fbB,
                                         objGeo.m_fc_f,
                                         objGeo.m_ft_f,
                                         objMat.m_fEps_f,
                                         fSigma_1_fb,
                                         fSigma_2_fb,
                                         fPsi_fb,
                                         fk_Sigma_fb,
                                         fLambda_rel_p_fb,
                                         fRho_fb,
                                         fb_eff_fb,
                                         fb_e1_fb,
                                         fb_e2_fb,
                                         fb_red_fb,
                                         fb_em_fb,
                                         objMat.BStainlessS);

                fA_eff_f = objCrSc.m_fA - (fb_red_fu + fb_red_fb) * objGeo.m_ft_f;

                fz_eff_c_f = (objCrSc.m_fA * objGeo.m_fh / 2.0f -
                              fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f -
                              fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f)
                             ) / fA_eff_f;

                fy_eff_c_f = (objCrSc.m_fA * objGeo.m_fb / 2.0f -
                              fb_red_fu * objGeo.m_ft_f * (objGeo.m_ft_w + objGeo.m_fr + fb_em_fu) -
                              fb_red_fb * objGeo.m_ft_f * (objGeo.m_ft_w + objGeo.m_fr + fb_em_fb)
                              ) / fA_eff_f;

                fI_eff_y_f = objCrSc.m_fI_y +
                             objCrSc.m_fA * sqr(fz_eff_c_f - objGeo.m_fh / 2.0f) -
                             fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                             fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) -
                             fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                             fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f);

                fI_eff_z_f = objCrSc.m_fI_z +
                             objCrSc.m_fA * sqr(fy_eff_c_f - objGeo.m_fb / 2.0f) -
                             (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f -
                             fb_red_fu * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_fu - objGeo.m_ft_w - objGeo.m_fr) -
                             (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f -
                             fb_red_fb * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_fb - objGeo.m_ft_w - objGeo.m_fr);
            }
            else
            {
                fb_red_fu = 0.0f;
                fb_red_fb = 0.0f;

                fb_em_fu = 0.0f;
                fb_em_fb = 0.0f;

                fA_eff_f = objCrSc.m_fA;

                fz_eff_c_f = objGeo.m_fh / 2.0f;
                fy_eff_c_f = objGeo.m_fb / 2.0f;
                fI_eff_y_f = objCrSc.m_fI_y;
                fI_eff_z_f = objCrSc.m_fI_z;
            }

            if (objC_HL.m_iClass_w == 4)
            {

                float fSigma_N = objIFO.FN_Ed / fA_eff_f;
                float fSigma_My_wo = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr);
                float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr);
                float fSigma_Mz_wl = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_ft_w - objGeo.m_fr);
                float fSigma_Mz_wr = objIFO.FM_z_Ed / fI_eff_z_f * (objGeo.m_fb - fy_eff_c_f - objGeo.m_ft_w - objGeo.m_fr);

                objStr.m_fSigma_wlA = fSigma_N - fSigma_My_wo + fSigma_Mz_wl;
                objStr.m_fSigma_wlB = fSigma_N + fSigma_My_wu + fSigma_Mz_wl;

                // EN 1993-1-5,Table 4.1
                GetEff_INT(objStr.m_fSigma_wlA,
                                         objStr.m_fSigma_wlB,
                                         objGeo.m_fc_w,
                                         objGeo.m_ft_w,
                                         objMat.m_fEps_w,
                                         fSigma_1_wl,
                                         fSigma_2_wl,
                                         fPsi_wl,
                                         fk_Sigma_wl,
                                         fLambda_rel_p_wl,
                                         fRho_wl,
                                         fb_eff_wl,
                                         fb_e1_wl,
                                         fb_e2_wl,
                                         fb_red_wl,
                                         fb_em_wl,
                                         objMat.BStainlessS);

                objStr.m_fSigma_wrA = fSigma_N - fSigma_My_wo - fSigma_Mz_wl;
                objStr.m_fSigma_wrB = fSigma_N + fSigma_My_wu - fSigma_Mz_wl;

                // EN 1993-1-5,Table 4.1
                GetEff_INT(objStr.m_fSigma_wrA,
                                         objStr.m_fSigma_wrB,
                                         objGeo.m_fc_w,
                                         objGeo.m_ft_w,
                                         objMat.m_fEps_w,
                                         fSigma_1_wr,
                                         fSigma_2_wr,
                                         fPsi_wr,
                                         fk_Sigma_wr,
                                         fLambda_rel_p_wr,
                                         fRho_wr,
                                         fb_eff_wr,
                                         fb_e1_wr,
                                         fb_e2_wr,
                                         fb_red_wr,
                                         fb_em_wr,
                                         objMat.BStainlessS);

                m_fA_eff = fA_eff_f - (fb_red_wl + fb_red_wr) * objGeo.m_ft_w;

                fz_eff_c = (objCrSc.m_fA * objGeo.m_fh / 2.0f -
                           fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f -
                           fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) -
                           fb_red_wl * objGeo.m_ft_w * (fb_em_wl + objGeo.m_ft_f + objGeo.m_fr) -
                           fb_red_wr * objGeo.m_ft_w * (fb_em_wr + objGeo.m_ft_f + objGeo.m_fr)
                          ) / m_fA_eff;

                fy_eff_c = (objCrSc.m_fA * objGeo.m_fb / 2.0f -
                            fb_red_fu * objGeo.m_ft_f * (fb_em_fu + objGeo.m_ft_w + objGeo.m_fr) -
                            fb_red_fb * objGeo.m_ft_f * (fb_em_fb + objGeo.m_ft_w + objGeo.m_fr) -
                            fb_red_wl * objGeo.m_ft_w * objGeo.m_ft_w / 2.0f -
                            fb_red_wr * objGeo.m_ft_w * (objGeo.m_fb - objGeo.m_ft_w / 2.0f)
                           ) / m_fA_eff;

                m_fI_eff_y = objCrSc.m_fI_y +
                           objCrSc.m_fA * sqr(fz_eff_c - objGeo.m_fh / 2.0f) -
                           fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) -
                           fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) -
                           (float)Math.Pow(fb_red_wl, 3) * objGeo.m_ft_w / 12.0f -
                           fb_red_wl * objGeo.m_ft_w * sqr(fz_eff_c - fb_em_wl - objGeo.m_ft_f - objGeo.m_fr) -
                           (float)Math.Pow(fb_red_wr, 3) * objGeo.m_ft_w / 12.0f -
                           fb_red_wr * objGeo.m_ft_w * sqr(fz_eff_c - fb_em_wr - objGeo.m_ft_f - objGeo.m_fr);

                m_fI_eff_z = objCrSc.m_fI_z +
                            objCrSc.m_fA * sqr(fy_eff_c - objGeo.m_fb / 2.0f) -
                           (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fu * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_fu - objGeo.m_ft_w - objGeo.m_fr) -
                            (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fb * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_fb - objGeo.m_ft_w - objGeo.m_fr) -
                           (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_wl / 12.0f -
                           objGeo.m_ft_w * fb_red_wl * sqr(fy_eff_c - objGeo.m_ft_w / 2.0f) -
                           (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_wr / 12.0f -
                           objGeo.m_ft_w * fb_red_wr * sqr(objGeo.m_fb - fy_eff_c - objGeo.m_ft_w / 2.0f);
            }
            else
            {
                fb_red_wl = 0.0f;
                fb_red_wr = 0.0f;

                m_fA_eff = fA_eff_f;

                fz_eff_c = fz_eff_c_f;
                fy_eff_c = fy_eff_c_f;
                m_fI_eff_y = fI_eff_y_f;
                m_fI_eff_z = fI_eff_z_f;
            }

            m_fA_eff = objCrSc.m_fA - (fb_red_fu + fb_red_fb + fb_red_wl + fb_red_wr) *objGeo.m_ft;

            m_fN_pl_eff = m_fA_eff * objMat.Ff_y;

            m_fe_Ny = fz_eff_c - objGeo.m_fh / 2.0f;
            m_fe_Nz = fy_eff_c - objGeo.m_fb / 2.0f;

            m_fW_eff_y_min = m_fI_eff_y / Math.Max(fz_eff_c, objGeo.m_fh - fz_eff_c);
            m_fW_eff_z_min = m_fI_eff_z / Math.Max(fy_eff_c, objGeo.m_fb - fy_eff_c);
        }
Exemplo n.º 12
0
        void GetCrSc4_ID(CCrSc objCrSc, C_GEO___I objGeo, C_IFO objIFO, C_STR___I objStr, C___I objC__I, C_MAT___I objMat, C_ADD___I objAdd)
        {
            if (objC__I.m_iClass_f == 4)
            {
                // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fulA,
                                      objStr.m_fSigma_fulB,
                                      objGeo.m_fc_f,
                                      objGeo.m_ft_f,
                                      objMat.m_fEps_f,
                                      fSigma_1_ful,
                                      fSigma_2_ful,
                                      fPsi_ful,
                                      fk_Sigma_ful,
                                      fLambda_rel_p_ful,
                                      fRho_ful,
                                      fb_eff_ful,
                                      fb_red_ful,
                                      fb_em_ful,
                                      objMat.BStainlessS);

                // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_furA,
                                      objStr.m_fSigma_furB,
                                      objGeo.m_fc_f,
                                      objGeo.m_ft_f,
                                      objMat.m_fEps_f,
                                      fSigma_1_fur,
                                      fSigma_2_fur,
                                      fPsi_fur,
                                      fk_Sigma_fur,
                                      fLambda_rel_p_fur,
                                      fRho_fur,
                                      fb_eff_fur,
                                      fb_red_fur,
                                      fb_em_fur,
                                      objMat.BStainlessS);

                // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fblA,
                                      objStr.m_fSigma_fblB,
                                      objGeo.m_fc_f,
                                      objGeo.m_ft_f,
                                      objMat.m_fEps_f,
                                      fSigma_1_fbl,
                                      fSigma_2_fbl,
                                      fPsi_fbl,
                                      fk_Sigma_fbl,
                                      fLambda_rel_p_fbl,
                                      fRho_fbl,
                                      fb_eff_fbl,
                                      fb_red_fbl,
                                      fb_em_bl,
                                      objMat.BStainlessS);

                // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fbrA,
                                      objStr.m_fSigma_fbrB,
                                      objGeo.m_fc_f,
                                      objGeo.m_ft_f,
                                      objMat.m_fEps_f,
                                      fSigma_1_fbr,
                                      fSigma_2_fbr,
                                      fPsi_fbr,
                                      fk_Sigma_fbr,
                                      fLambda_rel_p_fbr,
                                      fRho_fbr,
                                      fb_eff_fbr,
                                      fb_red_fbr,
                                      fb_em_br,
                                      objMat.BStainlessS);

                fA_eff_f = objCrSc.m_fA - (fb_red_ful + fb_red_fur + fb_red_fbl + fb_red_fbr) * objGeo.m_ft_f;

                fz_eff_c_f = (objCrSc.m_fA * objGeo.m_fh / 2.0f -
                            fb_red_ful * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f -
                            fb_red_fur * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f -
                            fb_red_fbl * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) -
                            fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f)
                           ) / fA_eff_f;

                fy_eff_c_f = (objCrSc.m_fA * objGeo.m_fb / 2.0f -
                            fb_red_ful * objGeo.m_ft_f * fb_em_ful -
                            fb_red_fur * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fur) -
                            fb_red_fbl * objGeo.m_ft_f * fb_em_bl -
                            fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fb - fb_em_br)
                            ) / fA_eff_f;

                fI_eff_y_f = objCrSc.m_fI_y +
                           objCrSc.m_fA * sqr(fz_eff_c_f - objGeo.m_fh / 2.0f) -
                           fb_red_ful * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_ful * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) -
                           fb_red_fur * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fur * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) -
                           fb_red_fbl * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fbl * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f) -
                           fb_red_fbr * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f);

                fI_eff_z_f = objCrSc.m_fI_z +
                           objCrSc.m_fA * sqr(fy_eff_c_f - objGeo.m_fb / 2.0f) -
                           (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_ful * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_ful) -
                           (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fur * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_fur) -
                           (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fbl * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_bl) -
                           (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_br);
            }
            else
            {
                fb_red_ful = 0.0f;
                fb_red_fur = 0.0f;
                fb_red_fbl = 0.0f;
                fb_red_fbr = 0.0f;

                fb_em_ful = 0.0f;
                fb_em_fur = 0.0f;
                fb_em_bl = 0.0f;
                fb_em_br = 0.0f;

                fA_eff_f = objCrSc.m_fA;

                fz_eff_c_f = objGeo.m_fh / 2.0f;
                fy_eff_c_f = objGeo.m_fb / 2.0f;
                fI_eff_y_f = objCrSc.m_fI_y;
                fI_eff_z_f = objCrSc.m_fI_z;
            }

            if (objC__I.m_iClass_w == 4)
            {

                float rSigma_N = objIFO.FN_Ed / fA_eff_f;
                float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr);
                float fSigma_My_wb = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr);
                float rSigma_Mz = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_fb / 2.0f);

                objStr.m_fSigma_wA = rSigma_N - fSigma_My_wu + rSigma_Mz;
                objStr.m_fSigma_wB = rSigma_N + fSigma_My_wb + rSigma_Mz;

                // EN 1993-1-5, Table 4.1
                GetEff_INT(objStr.m_fSigma_wA,
                                         objStr.m_fSigma_wB,
                                         objGeo.m_fc_w,
                                         objGeo.m_ft_w,
                                         objMat.m_fEps_w,
                                         fSigma_1_w,
                                         fSigma_2_w,
                                         fPsi_w,
                                         fk_Sigma_w,
                                         fLambda_rel_p_w,
                                         fRho_w,
                                         fb_eff_w,
                                         fb_e1_w,
                                         fb_e2_w,
                                         fb_red_w,
                                         fb_em_w,
                                         objMat.BStainlessS);

                m_fA_eff = fA_eff_f - fb_red_w * objGeo.m_ft_w;

                fz_eff_c = (objCrSc.m_fA * objGeo.m_fh / 2.0f -
                            fb_red_ful * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f -
                            fb_red_fur * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f -
                            fb_red_fbl * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) -
                            fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) -
                            fb_red_w * objGeo.m_ft_w * (fb_em_w + objGeo.m_fr + objGeo.m_ft_f)
                           ) / m_fA_eff;

                fy_eff_c = (objCrSc.m_fA * objGeo.m_fb / 2.0f -
                            fb_red_ful * objGeo.m_ft_f * fb_em_ful -
                            fb_red_fur * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fur) -
                            fb_red_fbl * objGeo.m_ft_f * fb_em_bl -
                            fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fb - fb_em_br) -
                            fb_red_w * objGeo.m_ft_w * objGeo.m_fb / 2.0f
                           ) / m_fA_eff;

                m_fI_eff_y = objCrSc.m_fI_y +
                           objCrSc.m_fA * sqr(fz_eff_c - objGeo.m_fh / 2.0f) -
                           fb_red_ful * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_ful * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) -
                           fb_red_fur * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fur * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) -
                           fb_red_fbl * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fbl * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) -
                           fb_red_fbr * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                           fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) -
                           (float)Math.Pow(fb_red_w, 3) * objGeo.m_ft_w / 12.0f -
                           fb_red_w * objGeo.m_ft_w * sqr(fz_eff_c - objGeo.m_ft_f - fb_em_w - objGeo.m_fr);

                m_fI_eff_z = objCrSc.m_fI_z +
                           objCrSc.m_fA * sqr(fy_eff_c - objGeo.m_fb / 2.0f) -
                           (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_ful * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_ful) -
                           (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fur * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_fur) -
                           (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fbl * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_bl) -
                           (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_f / 12.0f -
                           fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_br) -
                           (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_w / 12.0f -
                           objGeo.m_ft_w * fb_red_w * sqr(fy_eff_c - objGeo.m_fb / 2.0f);
            }
            else
            {
                fb_red_w = 0.0f;

                m_fA_eff = fA_eff_f;

                fz_eff_c = fz_eff_c_f;
                fy_eff_c = fy_eff_c_f;
                m_fI_eff_y = fI_eff_y_f;
                m_fI_eff_z = fI_eff_z_f;
            }

            float fA_f_eff = objAdd.m_fA_f - (fb_red_ful + fb_red_fur + fb_red_fbl + fb_red_fbr) * objGeo.m_ft_f;
            float fA_w_eff = objAdd.m_fA_w - fb_red_w * objGeo.m_ft_w;
            m_fN_pl_eff = fA_f_eff * objMat.m_ff_y_f + fA_w_eff * objMat.m_ff_y_w;
            m_fe_Ny = fz_eff_c - objGeo.m_fh / 2.0f;
            m_fe_Nz = fy_eff_c - objGeo.m_fb / 2.0f;
            m_fW_eff_y_min = m_fI_eff_y / Math.Max(fz_eff_c, objGeo.m_fh - fz_eff_c);
            m_fW_eff_z_min = m_fI_eff_z / Math.Max(fy_eff_c - Math.Min(fb_red_ful, fb_red_fbl), objGeo.m_fb - fy_eff_c - Math.Min(fb_red_fur, fb_red_fbr));
        }
Exemplo n.º 13
0
        /*
        // Flanges
        float fSigma_1_ful,
              fSigma_2_ful,
              fPsi_ful,
              fk_Sigma_ful,
              fLambda_rel_p_ful,
              fRho_ful,
              fb_eff_ful,
              fb_red_ful,
              fb_em_ful,

              fSigma_1_fur,
              fSigma_2_fur,
              fPsi_fur,
              fk_Sigma_fur,
              fLambda_rel_p_fur,
              fRho_fur,
              fb_eff_fur,
              fb_red_fur,
              fb_em_fur,

              fSigma_1_fbl,
              fSigma_2_fbl,
              fPsi_fbl,
              fk_Sigma_fbl,
              fLambda_rel_p_fbl,
              fRho_fbl,
              fb_eff_fbl,
              fb_red_fbl,
              fb_em_bl,

              fSigma_1_fbr,
              fSigma_2_fbr,
              fPsi_fbr,
              fk_Sigma_fbr,
              fLambda_rel_p_fbr,
              fRho_fbr,
              fb_eff_fbr,
              fb_red_fbr,
              fb_em_br;

        // Web
        float fSigma_1_w,
              fSigma_2_w,
              fPsi_w,
              fk_Sigma_w,
              fLambda_rel_p_w,
              fRho_w,
              fb_eff_w,
              fb_e1_w,
              fb_e2_w,
              fb_red_w,
              fb_em_w;

        float fA_eff_f,
              fz_eff_c_f,
              fy_eff_c_f,
              fI_eff_y_f,
              fI_eff_z_f;

        // Web
        float fz_eff_c,
        fy_eff_c;
        */
        void GetCrSc4_IM(CCrSc objCrSc, C_GEO___I objGeo, C_IFO objIFO, C_STR___I objStr, C___I objC__I, C_MAT___I objMat, C_ADD___I objAdd)
        {
            if (objC__I.m_iClass_fu == 4 || objC__I.m_iClass_fb == 4)
            {
                // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fulA,
                                        objStr.m_fSigma_fulB,
                                        objGeo.m_fc_fu,
                                        objGeo.m_ft_fu,
                                        objMat.m_fEps_fu,
                                        fSigma_1_ful,
                                        fSigma_2_ful,
                                        fPsi_ful,
                                        fk_Sigma_ful,
                                        fLambda_rel_p_ful,
                                        fRho_ful,
                                        fb_eff_ful,
                                        fb_red_ful,
                                        fb_em_ful,
                                        objMat.BStainlessS);

                // EN 1993-1-5, Tabl e 4.2
                GetEff_OUT(objStr.m_fSigma_furA,
                                        objStr.m_fSigma_furB,
                                        objGeo.m_fc_fu,
                                        objGeo.m_ft_fu,
                                        objMat.m_fEps_fu,
                                        fSigma_1_fur,
                                        fSigma_2_fur,
                                        fPsi_fur,
                                        fk_Sigma_fur,
                                        fLambda_rel_p_fur,
                                        fRho_fur,
                                        fb_eff_fur,
                                        fb_red_fur,
                                        fb_em_fur,
                                        objMat.BStainlessS);

                // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fblA,
                                        objStr.m_fSigma_fblB,
                                        objGeo.m_fc_fb,
                                        objGeo.m_ft_fb,
                                        objMat.m_fEps_fb,
                                        fSigma_1_fbl,
                                        fSigma_2_fbl,
                                        fPsi_fbl,
                                        fk_Sigma_fbl,
                                        fLambda_rel_p_fbl,
                                        fRho_fbl,
                                        fb_eff_fbl,
                                        fb_red_fbl,
                                        fb_em_bl,
                                        objMat.BStainlessS);

                // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fbrA,
                                        objStr.m_fSigma_fbrB,
                                        objGeo.m_fc_fb,
                                        objGeo.m_ft_fb,
                                        objMat.m_fEps_fb,
                                        fSigma_1_fbr,
                                        fSigma_2_fbr,
                                        fPsi_fbr,
                                        fk_Sigma_fbr,
                                        fLambda_rel_p_fbr,
                                        fRho_fbr,
                                        fb_eff_fbr,
                                        fb_red_fbr,
                                        fb_em_br,
                                        objMat.BStainlessS);

                fA_eff_f = objCrSc.m_fA - (fb_red_ful + fb_red_fur) * objGeo.m_ft_fu - (fb_red_fbl + fb_red_fbr) * objGeo.m_ft_fb;

                fz_eff_c_f = (objCrSc.m_fA * objCrSc.m_fz_S -
                              fb_red_ful * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f -
                              fb_red_fur * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f -
                              fb_red_fbl * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f) -
                              fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f)
                             ) / fA_eff_f;

                float rb_d = (objGeo.m_fb_fu - objGeo.m_fb_fb) / 2.0f;

                fy_eff_c_f = (objCrSc.m_fA * objGeo.m_fb_fu / 2.0f -
                              fb_red_ful * objGeo.m_ft_fu * fb_em_ful -
                              fb_red_fur * objGeo.m_ft_fu * (objGeo.m_fb_fu - fb_em_fur) -
                              fb_red_fbl * objGeo.m_ft_fb * (rb_d + fb_em_bl) -
                              fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fb_fu - rb_d - fb_em_br)
                              ) / fA_eff_f;

                fI_eff_y_f = objCrSc.m_fI_y +
                             objCrSc.m_fA * sqr(fz_eff_c_f - objCrSc.m_fz_S) -
                             fb_red_ful * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f -
                             fb_red_ful * objGeo.m_ft_fu * sqr(fz_eff_c_f - objGeo.m_ft_fu / 2.0f) -
                             fb_red_fur * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f -
                             fb_red_fur * objGeo.m_ft_fu * sqr(fz_eff_c_f - objGeo.m_ft_fu / 2.0f) -
                             fb_red_fbl * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f -
                             fb_red_fbl * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_fb / 2.0f) -
                             fb_red_fbr * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f -
                             fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_fb / 2.0f);

                fI_eff_z_f = objCrSc.m_fI_z +
                             objCrSc.m_fA * sqr(fy_eff_c_f - objGeo.m_fb_fu / 2.0f) -
                             (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_fu / 12.0f -
                             fb_red_ful * objGeo.m_ft_fu * sqr(fy_eff_c_f - fb_em_ful) -
                             (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_fu / 12.0f -
                             fb_red_fur * objGeo.m_ft_fu * sqr(objGeo.m_fb_fu - fy_eff_c_f - fb_em_fur) -
                             (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_fb / 12.0f -
                             fb_red_fbl * objGeo.m_ft_fb * sqr(fy_eff_c_f - rb_d - fb_em_bl) -
                             (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_fb / 12.0f -
                             fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fb_fb + rb_d - fy_eff_c_f - fb_em_br);
            }
            else
            {
                fb_red_ful = 0.0f;
                fb_red_fur = 0.0f;
                fb_red_fbl = 0.0f;
                fb_red_fbr = 0.0f;

                fb_em_ful = 0.0f;
                fb_em_fur = 0.0f;
                fb_em_bl = 0.0f;
                fb_em_br = 0.0f;

                fA_eff_f = objCrSc.m_fA;

                fz_eff_c_f = objCrSc.m_fz_S;
                fy_eff_c_f = objGeo.m_fb_fu / 2.0f;

                fI_eff_y_f = objCrSc.m_fI_y;
                fI_eff_z_f = objCrSc.m_fI_z;
            }

            if (objC__I.m_iClass_w == 4)
            {
                float rSigma_N = objIFO.FN_Ed / fA_eff_f;
                float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_fu - objGeo.m_fr_su);
                float fSigma_My_wb = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_fb - objGeo.m_fr_sb);
                float rSigma_Mz = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_fb_fu / 2.0f);

                objStr.m_fSigma_wA = rSigma_N - fSigma_My_wu + rSigma_Mz;
                objStr.m_fSigma_wB = rSigma_N + fSigma_My_wb + rSigma_Mz;

                // EN 1993-1-5, Table 4.1
                GetEff_INT(objStr.m_fSigma_wA,
                                         objStr.m_fSigma_wB,
                                         objGeo.m_fc_w,
                                         objGeo.m_ft_w,
                                         objMat.m_fEps_w,
                                         fSigma_1_w,
                                         fSigma_2_w,
                                         fPsi_w,
                                         fk_Sigma_w,
                                         fLambda_rel_p_w,
                                         fRho_w,
                                         fb_eff_w,
                                         fb_e1_w,
                                         fb_e2_w,
                                         fb_red_w,
                                         fb_em_w,
                                         objMat.BStainlessS);

                m_fA_eff = fA_eff_f - fb_red_w * objGeo.m_ft_w;

                fz_eff_c = (objCrSc.m_fA * objCrSc.m_fz_S -
                            fb_red_ful * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f -
                            fb_red_fur * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f -
                            fb_red_fbl * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f) -
                            fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f) -
                            fb_red_w * objGeo.m_ft_w * (fb_em_w + objGeo.m_fr_su + objGeo.m_ft_fu)
                           ) / m_fA_eff;

                float rb_d = (objGeo.m_fb_fu - objGeo.m_fb_fb) / 2.0f;

                fy_eff_c = (objCrSc.m_fA * objGeo.m_fb_fu / 2.0f -
                            fb_red_ful * objGeo.m_ft_fu * fb_em_ful -
                            fb_red_fur * objGeo.m_ft_fu * (objGeo.m_fb_fu - fb_em_fur) -
                            fb_red_fbl * objGeo.m_ft_fb * (rb_d + fb_em_bl) -
                            fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fb_fu - rb_d - fb_em_br) -
                            fb_red_w * objGeo.m_ft_w * objGeo.m_fb_fu / 2.0f
                           ) / m_fA_eff;

                // Trägheitsmomente des wirksamen relschnitts
                m_fI_eff_y = objCrSc.m_fI_y +
                           objCrSc.m_fA * sqr(fz_eff_c - objCrSc.m_fz_S) -
                           fb_red_ful * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f -
                           fb_red_ful * objGeo.m_ft_fu * sqr(fz_eff_c - objGeo.m_ft_fu / 2.0f) -
                           fb_red_fur * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f -
                           fb_red_fur * objGeo.m_ft_fu * sqr(fz_eff_c - objGeo.m_ft_fu / 2.0f) -
                           fb_red_fbl * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f -
                           fb_red_fbl * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_fb / 2.0f) -
                           fb_red_fbr * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f -
                           fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_fb / 2.0f) -
                           (float)Math.Pow(fb_red_w, 3) * objGeo.m_ft_w / 12.0f -
                           fb_red_w * objGeo.m_ft_w * sqr(fz_eff_c - objGeo.m_ft_fu - fb_em_w - objGeo.m_fr_su);

                m_fI_eff_z = objCrSc.m_fI_z +
                           objCrSc.m_fA * sqr(fy_eff_c - objGeo.m_fb_fu / 2.0f) -
                           (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_fu / 12.0f -
                           fb_red_ful * objGeo.m_ft_fu * sqr(fy_eff_c - fb_em_ful) -
                           (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_fu / 12.0f -
                           fb_red_fur * objGeo.m_ft_fu * sqr(objGeo.m_fb_fu - fy_eff_c - fb_em_fur) -
                           (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_fb / 12.0f -
                           fb_red_fbl * objGeo.m_ft_fb * sqr(fy_eff_c_f - rb_d - fb_em_bl) -
                           (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_fb / 12.0f -
                           fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fb_fb + rb_d - fy_eff_c_f - fb_em_br) -
                           (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_w / 12.0f -
                           objGeo.m_ft_w * fb_red_w * sqr(fy_eff_c - objGeo.m_fb_fu / 2.0f);
            }
            else
            {
                fb_red_w = 0.0f;

                m_fA_eff = fA_eff_f;

                fz_eff_c = fz_eff_c_f;
                fy_eff_c = fy_eff_c_f;

                m_fI_eff_y = fI_eff_y_f;
                m_fI_eff_z = fI_eff_z_f;
            }

            float fA_fu_eff = objAdd.m_fA_fu - (fb_red_ful + fb_red_fur) * objGeo.m_ft_fu;
            float fA_fb_eff = objAdd.m_fA_fb - (fb_red_fbl + fb_red_fbr) * objGeo.m_ft_fb;
            float fA_w_eff = objAdd.m_fA_w - fb_red_w * objGeo.m_ft_w;
            m_fN_pl_eff = fA_fu_eff * objMat.m_ff_y_fu + fA_fb_eff * objMat.m_ff_y_fb + fA_w_eff * objMat.m_ff_y_w;
            m_fe_Ny = fz_eff_c - objCrSc.m_fz_S;
            m_fe_Nz = fy_eff_c - objGeo.m_fb_fu / 2.0f;

            float fW_eff_y_fu = m_fI_eff_y / fz_eff_c;
            float fW_eff_y_fb = m_fI_eff_y / (objGeo.m_fh - fz_eff_c);
            m_fW_eff_y_min = Math.Min(fW_eff_y_fu, fW_eff_y_fb);
            float fW_eff_z_fu = m_fI_eff_z / Math.Max(fy_eff_c - fb_red_ful, objGeo.m_fb_fu - fy_eff_c - fb_red_fur);
            float fW_eff_z_fb = m_fI_eff_z / Math.Max(fy_eff_c + ((objGeo.m_fb_fb - objGeo.m_fb_fu) / 2.0f) - fb_red_fbl, objGeo.m_fb_fu + (objGeo.m_fb_fb - objGeo.m_fb_fu) / 2.0f - fy_eff_c - fb_red_fbr);
            m_fW_eff_z_min = Math.Min(fW_eff_z_fu, fW_eff_z_fb);
        }
Exemplo n.º 14
0
        public C___L4(CCrSc objCrSc, C_GEO___L objGeo, C_IFO objIFO, C_STR___L objStr, C___L objC__L, C_MAT___L objMat, C_ADD___L objAdd, ECrScSymmetry1 eSym)
        {
            //  EN 1993-1-5,Table 4.2
            GetEff_OUT(objStr.m_fSP_Sigma_x_Ed[2],
                                    Math.Min(objStr.m_fSP_Sigma_x_Ed[0], objStr.m_fSP_Sigma_x_Ed[1]),
                                    objGeo.m_fc_a,
                                    objGeo.m_ft_a,
                                    objMat.FEps,
                                    fSigma_1_a,
                                    fSigma_2_a,
                                    fPsi_a,
                                    fk_Sigma_a,
                                    fLambda_rel_p_a,
                                    fRho_a,
                                    fb_eff_a,
                                    fb_red_a,
                                    fb_em_a,
                                    objMat.BStainlessS);

            // EN 1993-1-5,Table 4.2
            GetEff_OUT(objStr.m_fSP_Sigma_x_Ed[4],
                                    Math.Min(objStr.m_fSP_Sigma_x_Ed[5], objStr.m_fSP_Sigma_x_Ed[6]),
                                    objGeo.m_fc_b,
                                    objGeo.m_ft_b,
                                    objMat.FEps,
                                    fSigma_1_b,
                                    fSigma_2_b,
                                    fPsi_b,
                                    fk_Sigma_b,
                                    fLambda_rel_p_b,
                                    fRho_b,
                                    fb_eff_b,
                                    fb_red_b,
                                    fb_em_b,
                                    objMat.BStainlessS);

            if (fb_red_a > 0.0f || fb_red_b > 0.0f)
            {
                m_fA_eff = objCrSc.m_fA - fb_red_a * objGeo.m_ft_a - fb_red_b * objGeo.m_ft_b;
                fz_eff_c = (objCrSc.m_fA * objCrSc.m_fz_S -
                            fb_red_a * objGeo.m_ft_a * (objGeo.m_fh - fb_em_a) -
                            fb_red_b * objGeo.m_ft_b * objGeo.m_ft_b / 2.0f
                           ) / m_fA_eff;

                fy_eff_c = (objCrSc.m_fA * objCrSc.m_fy_S -
                            fb_red_a * objGeo.m_ft_a * objGeo.m_ft_a / 2.0f -
                            fb_red_b * objGeo.m_ft_b * (objGeo.m_fb - fb_em_b)
                           ) / m_fA_eff;

                m_fI_eff_yy = objCrSc.m_fI_yy +
                            objCrSc.m_fA * sqr(fz_eff_c - objCrSc.m_fz_S) -
                            objGeo.m_ft_a * (float)Math.Pow(fb_red_a, 3) / 12.0f -
                            fb_red_a * objGeo.m_ft_a * sqr(objGeo.m_fh - fb_em_a - fz_eff_c) -
                            fb_red_b * (float)Math.Pow(objGeo.m_ft_b, 3) / 12.0f -
                            fb_red_b * objGeo.m_ft_b * sqr(fz_eff_c - objGeo.m_ft_b / 2.0f);

                m_fI_eff_zz = objCrSc.m_fI_zz +
                            objCrSc.m_fA * sqr(fy_eff_c - objCrSc.m_fy_S) -
                            (float)Math.Pow(objGeo.m_ft_a, 3) * fb_red_a / 12.0f -
                            fb_red_a * objGeo.m_ft_a * sqr(fy_eff_c - objGeo.m_ft_a / 2.0f) -
                            (float)Math.Pow(fb_red_b, 3) * objGeo.m_ft_b / 12.0f -
                            fb_red_b * objGeo.m_ft_b * sqr(objGeo.m_fb - fb_em_b - fy_eff_c);

                m_fI_eff_yz = objCrSc.m_fI_yz + objCrSc.m_fA * (objCrSc.m_fy_S - fy_eff_c) * (fz_eff_c - objCrSc.m_fz_S) -
                            fb_red_a * objGeo.m_ft_a * (fy_eff_c - objGeo.m_ft_a / 2.0f) * (objGeo.m_fh - fb_em_a - fz_eff_c) -
                            fb_red_b * objGeo.m_ft_b * (fz_eff_c - objGeo.m_ft_b / 2.0f) * (objGeo.m_fb - fb_em_b - fy_eff_c);

                m_fI_eff_y = (m_fI_eff_yy + m_fI_eff_zz) / 2.0f + (float)Math.Sqrt(sqr((m_fI_eff_yy - m_fI_eff_zz) / 2.0f) + sqr(m_fI_eff_yz));
                m_fI_eff_z = (m_fI_eff_yy + m_fI_eff_zz) / 2.0f - (float)Math.Sqrt(sqr((m_fI_eff_yy - m_fI_eff_zz) / 2.0f) + sqr(m_fI_eff_yz));

                if (m_fI_eff_yy != m_fI_eff_zz)
                    objGeo.m_fAlpha_Axis = 0.5f * (float)Math.Atan((2.0f * m_fI_eff_yz) / (m_fI_eff_zz - m_fI_eff_yy));
                else
                    objGeo.m_fAlpha_Axis = -0.785398163f; // = -45?

                float m_fe_Ny_zz = fz_eff_c - objCrSc.m_fz_S;
                float m_fe_Nz_yy = fy_eff_c - objCrSc.m_fy_S;
                m_fe_Ny = m_fe_Nz_yy * (float)Math.Cos(objGeo.m_fAlpha_Axis) + m_fe_Ny_zz * (float)Math.Sin(objGeo.m_fAlpha_Axis);
                m_fe_Nz = -m_fe_Nz_yy * (float)Math.Sin(objGeo.m_fAlpha_Axis) + m_fe_Ny_zz * (float)Math.Cos(objGeo.m_fAlpha_Axis);

                objStr.m_fSP_y_par[0] = -fy_eff_c;
                objStr.m_fSP_z_par[0] = fz_eff_c - objGeo.m_fh + fb_red_a;
                objStr.m_fSP_y_par[1] = -fy_eff_c + objGeo.m_ft_a;
                objStr.m_fSP_z_par[1] = fz_eff_c - objGeo.m_fh + fb_red_a;
                objStr.m_fSP_y_par[2] = -fy_eff_c;
                objStr.m_fSP_z_par[2] = fz_eff_c - objGeo.m_ft_b - objGeo.m_fr;

                objStr.m_fSP_y_par[3] = -fy_eff_c;
                objStr.m_fSP_z_par[3] = fz_eff_c;

                objStr.m_fSP_y_par[4] = -fy_eff_c + objGeo.m_ft_a + objGeo.m_fr;
                objStr.m_fSP_z_par[4] = fz_eff_c;
                objStr.m_fSP_y_par[5] = -fy_eff_c + objGeo.m_fb - fb_red_b;
                objStr.m_fSP_z_par[5] = fz_eff_c;
                objStr.m_fSP_y_par[6] = -fy_eff_c + objGeo.m_fb - fb_red_b;
                objStr.m_fSP_z_par[6] = fz_eff_c - objGeo.m_ft_b;

                float rz_max = 0.0f;
                float ry_max = 0.0f;

                for (int iSP = 0; iSP < 7; iSP++)
                {
                    objStr.m_fSP_y[iSP] = objStr.m_fSP_y_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis) + objStr.m_fSP_z_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis);
                    objStr.m_fSP_z[iSP] = -objStr.m_fSP_y_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis) + objStr.m_fSP_z_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis);

                    rz_max = Math.Max(rz_max, Math.Abs(objStr.m_fSP_z[iSP]));
                    ry_max = Math.Max(ry_max, Math.Abs(objStr.m_fSP_y[iSP]));
                }

                m_fW_eff_y_min = m_fI_eff_y / rz_max;
                m_fW_eff_z_min = m_fI_eff_z / ry_max;
            }
            else
            {
                m_fA_eff = objCrSc.m_fA;

                fz_eff_c = objCrSc.m_fz_S;
                fy_eff_c = objCrSc.m_fy_S;

                m_fI_eff_y = objCrSc.m_fI_y;
                m_fI_eff_z = objCrSc.m_fI_z;

                m_fW_eff_y_min = objCrSc.m_fW_el_y_min;
                m_fW_eff_z_min = objCrSc.m_fW_el_z_min;

                m_fe_Ny = 0.0f;
                m_fe_Nz = 0.0f;
            }

            m_fN_pl_eff = m_fA_eff * objMat.Ff_y;
        }
Exemplo n.º 15
0
        public C_STR___I(C_IFO objIFO, C_GEO___I objGeo, CCrSc objCrSc, ECrScSymmetry1 eSym)
        {
            m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA;

            if (eSym == ECrScSymmetry1.eDS)
            {
                float fSigma_My_f = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fh / 2.0f;
                float fSigma_My_w = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fc_w / 2.0f;

                float fSigma_Mz_fA = objIFO.FM_z_Ed / objCrSc.FI_z * (objGeo.m_ft_w / 2.0f + objGeo.m_fr);
                float fSigma_Mz_fB = objIFO.FM_z_Ed / objCrSc.FI_z * objGeo.m_fb / 2.0f;

                m_fSigma_fulA = m_fSigma_N - fSigma_My_f + fSigma_Mz_fA;
                m_fSigma_fulB = m_fSigma_N - fSigma_My_f + fSigma_Mz_fB;
                m_fSigma_furA = m_fSigma_N - fSigma_My_f - fSigma_Mz_fA;
                m_fSigma_furB = m_fSigma_N - fSigma_My_f - fSigma_Mz_fB;

                m_fSigma_fblA = m_fSigma_N + fSigma_My_f + fSigma_Mz_fA;
                m_fSigma_fblB = m_fSigma_N + fSigma_My_f + fSigma_Mz_fB;
                m_fSigma_fbrA = m_fSigma_N + fSigma_My_f - fSigma_Mz_fA;
                m_fSigma_fbrB = m_fSigma_N + fSigma_My_f - fSigma_Mz_fB;

                float fSigma_fuA = Math.Min(m_fSigma_fulA, m_fSigma_furA);
                float fSigma_fuB = Math.Min(m_fSigma_fulB, m_fSigma_furB);

                float fSigma_fbA = Math.Min(m_fSigma_fblA, m_fSigma_fbrA);
                float fSigma_fbB = Math.Min(m_fSigma_fblB, m_fSigma_fbrB);

                // Flange
                m_fSigma_fA = Math.Min(fSigma_fuA, fSigma_fbA);
                m_fSigma_fB = Math.Min(fSigma_fuB, fSigma_fbB);

                // Web
                m_fSigma_wA = m_fSigma_N - fSigma_My_f;
                m_fSigma_wB = m_fSigma_N + fSigma_My_f;
            }
            else
            {
                float fSigma_My_fu = objIFO.FM_y_Ed / objCrSc.m_fI_y * objCrSc.m_fz_S;
                float fSigma_My_fb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S);

                float fSigma_My_wu = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objCrSc.m_fz_S - objGeo.m_ft_fu - objGeo.m_fr_su);
                float fSigma_My_wb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S - objGeo.m_ft_fb - objGeo.m_fr_sb);

                float fSigma_Mz_fuA = objIFO.FM_z_Ed / objCrSc.FI_z * (objGeo.m_ft_w / 2.0f + objGeo.m_fr_su);
                float fSigma_Mz_fuB = objIFO.FM_z_Ed / objCrSc.FI_z * objGeo.m_fb_fu / 2.0f;

                float fSigma_Mz_fbA = objIFO.FM_z_Ed / objCrSc.FI_z * (objGeo.m_ft_w / 2.0f + objGeo.m_fr_sb);
                float fSigma_Mz_fbB = objIFO.FM_z_Ed / objCrSc.FI_z * objGeo.m_fb_fb / 2.0f;

                // Upper Flange
                m_fSigma_fulA = m_fSigma_N - fSigma_My_fu + fSigma_Mz_fuA;
                m_fSigma_fulB = m_fSigma_N - fSigma_My_fu + fSigma_Mz_fuB;
                m_fSigma_furA = m_fSigma_N - fSigma_My_fu - fSigma_Mz_fuA;
                m_fSigma_furB = m_fSigma_N - fSigma_My_fu - fSigma_Mz_fuB;
                m_fSigma_fuA = Math.Min(m_fSigma_fulA, m_fSigma_furA);
                m_fSigma_fuB = Math.Min(m_fSigma_fulB, m_fSigma_furB);

                // Bottom Flange
                m_fSigma_fblA = m_fSigma_N + fSigma_My_fb + fSigma_Mz_fbA;
                m_fSigma_fblB = m_fSigma_N + fSigma_My_fb + fSigma_Mz_fbB;
                m_fSigma_fbrA = m_fSigma_N + fSigma_My_fb - fSigma_Mz_fbA;
                m_fSigma_fbrB = m_fSigma_N + fSigma_My_fb - fSigma_Mz_fbB;
                m_fSigma_fbA = Math.Min(m_fSigma_fblA, m_fSigma_fbrA);
                m_fSigma_fbB = Math.Min(m_fSigma_fblB, m_fSigma_fbrB);

                // Web
                m_fSigma_wA = m_fSigma_N - fSigma_My_fb;
                m_fSigma_wB = m_fSigma_N + fSigma_My_fb;
            }

            // 5.5.2(9)
            m_fSigma_com_Ed = Math.Max(Math.Abs(Math.Min(m_fSigma_fuB, m_fSigma_fbB)), 0.0f);
        }
Exemplo n.º 16
0
        public C_STR__HL(C_IFO objIFO, C_GEO__HL objGeo, CCrSc objCrSc, ECrScPrType1 eProd)
        {
            m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA;

            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
            {
                float fSigma_My_f = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fh / 2.0f;
                float fSigma_Mz_f = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fc_f / 2.0f;
                float fSigma_My_w = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fc_w / 2.0f;
                float fSigma_Mz_w = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fb / 2.0f;

                // Upper Flange
                m_fSigma_fuA = m_fSigma_N - fSigma_My_f + fSigma_Mz_f;
                m_fSigma_fuB = m_fSigma_N - fSigma_My_f - fSigma_Mz_f;

                // Bottom Flange
                m_fSigma_fbA = m_fSigma_N + fSigma_My_f + fSigma_Mz_f;
                m_fSigma_fbB = m_fSigma_N + fSigma_My_f - fSigma_Mz_f;

                // Flanges
                m_fSigma_fA = Math.Min(m_fSigma_fuA, m_fSigma_fbA);
                m_fSigma_fB = Math.Min(m_fSigma_fuB, m_fSigma_fbB);

                // Left Web
                m_fSigma_wlA = m_fSigma_N - fSigma_My_w + fSigma_Mz_w;
                m_fSigma_wlB = m_fSigma_N + fSigma_My_w + fSigma_Mz_w;

                // Right Web
                m_fSigma_wrA = m_fSigma_N - fSigma_My_w - fSigma_Mz_w;
                m_fSigma_wrB = m_fSigma_N + fSigma_My_w - fSigma_Mz_w;

                // Webs
                m_fSigma_wA = Math.Min(m_fSigma_wlA, m_fSigma_wrA);
                m_fSigma_wB = Math.Min(m_fSigma_wlB, m_fSigma_wrB);
            }
            else
            {
                float fSigma_My_fu = objIFO.FM_y_Ed / objCrSc.m_fI_y * objCrSc.m_fz_S;
                float fSigma_My_fb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S);
                float fSigma_My_wu = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objCrSc.m_fz_S - objGeo.m_ft_fu);
                float fSigma_My_wb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S - objGeo.m_ft_fb);
                float fSigma_Mz_w = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fb / 2.0f;
                float fSigma_Mz_f = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objGeo.m_fb / 2.0f - objGeo.m_ft_w);

                // Upper Flange
                m_fSigma_fuA = m_fSigma_N - fSigma_My_fu + fSigma_Mz_f;
                m_fSigma_fuB = m_fSigma_N - fSigma_My_fu - fSigma_Mz_f;

                // Bottom Flange
                m_fSigma_fbA = m_fSigma_N + fSigma_My_fb + fSigma_Mz_f;
                m_fSigma_fbB = m_fSigma_N + fSigma_My_fb - fSigma_Mz_f;

                // Flanges
                m_fSigma_fA = Math.Min(m_fSigma_fuA, m_fSigma_fbA);
                m_fSigma_fB = Math.Min(m_fSigma_fuB, m_fSigma_fbB);

                // Left Web
                m_fSigma_wlA = m_fSigma_N - fSigma_My_wu + fSigma_Mz_w;
                m_fSigma_wlB = m_fSigma_N + fSigma_My_wb + fSigma_Mz_w;

                // Right Web
                m_fSigma_wrA = m_fSigma_N - fSigma_My_wu - fSigma_Mz_w;
                m_fSigma_wrB = m_fSigma_N + fSigma_My_wb - fSigma_Mz_w;

                // Webs
                m_fSigma_wA = Math.Min(m_fSigma_wlA, m_fSigma_wrA);
                m_fSigma_wB = Math.Min(m_fSigma_wlB, m_fSigma_wrB);
            }

            // 5.5.2(9)
            m_fSigma_com_Ed = Math.Max(Math.Abs(Math.Min(m_fSigma_fA, m_fSigma_fB)), 0.0f);
        }
Exemplo n.º 17
0
        public C___U4(CCrSc objCrSc, C_GEO___U objGeo, C_IFO objIFO, C_STR___U objStr, C___U objC__U, C_MAT___U objMat, C_ADD___U objAdd)
        {
            float fA_eff_f,
              fz_eff_c_f,
              fy_eff_c_f,
              fI_eff_y_f,
              fI_eff_z_f;

            // Web
            float fz_eff_c,
              fy_eff_c;

            if (objC__U.m_iClass_f == 4)
            {
             // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fuA,
                                    objStr.m_fSigma_fuB,
                                    objGeo.m_fc_f,
                                    objGeo.m_ft_f,
                                    objMat.m_fEps_f,
                                    fSigma_1_fu,
                                    fSigma_2_fu,
                                    fPsi_fu,
                                    fk_Sigma_fu,
                                    fLambda_rel_p_fu,
                                    fRho_fu,
                                    fb_eff_fu,
                                    fb_red_fu,
                                    fb_em_fu,
                                    objMat.BStainlessS);

            // EN 1993-1-5, Table 4.2
                GetEff_OUT(objStr.m_fSigma_fbA,
                                    objStr.m_fSigma_fbB,
                                    objGeo.m_fc_f,
                                    objGeo.m_ft_f,
                                    objMat.m_fEps_f,
                                    fSigma_1_fb,
                                    fSigma_2_fb,
                                    fPsi_fb,
                                    fk_Sigma_fb,
                                    fLambda_rel_p_fb,
                                    fRho_fb,
                                    fb_eff_fb,
                                    fb_red_fb,
                                    fb_em_fb,
                                    objMat.BStainlessS);

            fA_eff_f   = objCrSc.m_fA - (fb_red_fu + fb_red_fb) * objGeo.m_ft_f;

            fz_eff_c_f = (objCrSc.m_fA * objGeo.m_fh / 2.0f -
                          fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f  -
                          fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f)
                         ) / fA_eff_f;

            fy_eff_c_f = (objCrSc.m_fA * objCrSc.m_fy_S -
                          fb_red_fu * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fu) -
                          fb_red_fb * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fb)
                          ) / fA_eff_f;

            fI_eff_y_f = objCrSc.m_fI_y +
                         objCrSc.m_fA * sqr(fz_eff_c_f - objGeo.m_fh / 2.0f) -
                         fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                         fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) -
                         fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                         fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f);

            fI_eff_z_f = objCrSc.m_fI_z +
                         objCrSc.m_fA * sqr(fy_eff_c_f - objCrSc.m_fy_S) -
                         (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f -
                         fb_red_fu * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_fu) -
                         (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f -
                         fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_fb);
              }
              else
              {
            fb_red_fu  = 0.0f;
            fb_red_fb  = 0.0f;

            fb_em_fu   = 0.0f;
            fb_em_fb   = 0.0f;

            fA_eff_f   = objCrSc.m_fA;

            fz_eff_c_f = objGeo.m_fh / 2.0f;
            fy_eff_c_f = objCrSc.m_fy_S;

            fI_eff_y_f = objCrSc.m_fI_y;
            fI_eff_z_f = objCrSc.m_fI_z;
              }

              if(objC__U.m_iClass_w == 4)
              {

            float fSigma_N     = objIFO.FN_Ed / fA_eff_f;
            float fSigma_My_wo = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr);
            float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr);
            float fSigma_Mz_wa = objIFO.FM_z_Ed / fI_eff_z_f *  fy_eff_c_f;
            float fSigma_Mz_wi = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_ft_w);

            objStr.m_fSigma_wA = fSigma_N - fSigma_My_wo + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi);
            objStr.m_fSigma_wB = fSigma_N + fSigma_My_wu + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi);

            // EN 1993-1-5, Table 4.1
            GetEff_INT(objStr.m_fSigma_wA,
                                     objStr.m_fSigma_wB,
                                     objGeo.m_fc_w,
                                     objGeo.m_ft_w,
                                     objMat.m_fEps_w,
                                     fSigma_1_w,
                                     fSigma_2_w,
                                     fPsi_w,
                                     fk_Sigma_w,
                                     fLambda_rel_p_w,
                                     fRho_w,
                                     fb_eff_w,
                                     fb_e1_w,
                                     fb_e2_w,
                                     fb_red_w,
                                     fb_em_w,
                                     objMat.BStainlessS);

            m_fA_eff = fA_eff_f - fb_red_w * objGeo.m_ft_w;

            fz_eff_c = (objCrSc.m_fA * objGeo.m_fh / 2.0f -
                        fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f  -
                        fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) -
                        fb_red_w  * objGeo.m_ft_w * (fb_em_w + objGeo.m_fr + objGeo.m_ft_f)
                       ) / m_fA_eff;

            fy_eff_c = (objCrSc.m_fA * objCrSc.m_fy_S -
                        fb_red_fu * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fu) -
                        fb_red_fb * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fb) -
                        fb_red_w  * objGeo.m_ft_w * objGeo.m_ft_w / 2.0f
                        ) / m_fA_eff;

            m_fI_eff_y = objCrSc.m_fI_y +
                       objCrSc.m_fA * sqr(fz_eff_c - objGeo.m_fh / 2.0f) -
                       fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                       fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) -
                       fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f -
                       fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) -
                       (float)Math.Pow(fb_red_w, 3) * objGeo.m_ft_w / 12.0f -
                       fb_red_w * objGeo.m_ft_w * sqr(fz_eff_c - objGeo.m_ft_f - fb_em_w - objGeo.m_fr);

            m_fI_eff_z = objCrSc.m_fI_z +
                       objCrSc.m_fA * sqr(fy_eff_c - objCrSc.m_fy_S) -
                       (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f -
                       fb_red_fu * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_fu) -
                       (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f -
                       fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_fb) -
                       (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_w / 12.0f -
                       objGeo.m_ft_w * fb_red_w * sqr(fy_eff_c - objGeo.m_ft_w / 2.0f);
              }
              else
              {
            fb_red_w = 0.0f;

            m_fA_eff   = fA_eff_f;

            fz_eff_c = fz_eff_c_f;
            fy_eff_c = fy_eff_c_f;

            m_fI_eff_y = fI_eff_y_f;
            m_fI_eff_z = fI_eff_z_f;
              }

               float      fA_f_eff  = objAdd.m_fA_f - (fb_red_fu + fb_red_fb) * objGeo.m_ft_f;

               float fA_w_eff = objAdd.m_fA_w - fb_red_w * objGeo.m_ft_w;

               m_fN_pl_eff = fA_f_eff * objMat.m_ff_y_f + fA_w_eff * objMat.m_ff_y_w;

              m_fe_Ny = fz_eff_c - objGeo.m_fh / 2.0f;
              m_fe_Nz = fy_eff_c - objCrSc.m_fy_S;

              m_fW_eff_y_min = m_fI_eff_y / Math.Max(fz_eff_c, objGeo.m_fh - fz_eff_c);
              m_fW_eff_z_min = m_fI_eff_z / Math.Max(fy_eff_c, objGeo.m_fb - Math.Min(fb_red_fu, fb_red_fb) - fy_eff_c);
        }
Exemplo n.º 18
0
        public C_ADD__HL(C_NAD objNAD, C_GEO__HL objGeo, C_MAT__HL objMat, CCrSc objCrSc, ECrScPrType1 eProd)
        {
            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
            {
                m_ft_V_z = objGeo.m_ft_w;        // (6.20)
                m_ft_V_y = objGeo.m_ft_f;
                m_fN_pl = objCrSc.m_fA * objMat.Ff_y;
                m_fN_u = objCrSc.m_fA * objMat.Ff_u;

                // 6.2.6(3) f)
                m_fA_v_z = objCrSc.m_fA * objGeo.m_fh / (objGeo.m_fb + objGeo.m_fh);
                m_fA_v_y = objCrSc.m_fA * objGeo.m_fb / (objGeo.m_fb + objGeo.m_fh);

                // 6.2.8
                float rW_pl_y_w = 2.0f * sqr(objGeo.m_fh - objGeo.m_ft) * objGeo.m_ft / 4.0f;
                float rW_pl_z_f = 2.0f * sqr(objGeo.m_fb - objGeo.m_ft) * objGeo.m_ft / 4.0f;

                m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.Ff_y;
                m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y;

                //bGeschlQuerschnitt = TRUE;

                m_fA_k = (objGeo.m_fb - objGeo.m_ft) * (objGeo.m_fh - objGeo.m_ft);

                // bQuerschn_fuer_InterVerf_2_moeglich = TRUE;
            }
            else
            {
                m_ft_V_z = objGeo.m_ft_w; // (6.20)
                m_ft_V_y = Math.Min(objGeo.m_ft_fu, objGeo.m_ft_fb);
                m_fA_fu = objGeo.m_fb * objGeo.m_ft_fu;
                m_fA_fb = objGeo.m_fb * objGeo.m_ft_fb;
                m_fA_w = 2.0f * objGeo.m_fh_w * objGeo.m_ft_w;
                m_fN_pl = m_fA_fu * objMat.m_ff_y_fu + m_fA_fb * objMat.m_ff_y_fb + m_fA_w * objMat.m_ff_y_w;
                m_fN_u = m_fA_fu * objMat.m_ff_u_fu + m_fA_fb * objMat.m_ff_u_fb + m_fA_w * objMat.m_ff_u_w;

                // 6.2.6(3) d) und e)
                m_fA_v_z = m_fEta * 2.0f * objGeo.m_fh_w * objGeo.m_ft_w;
                m_fA_v_y = objCrSc.m_fA - 2.0f * objGeo.m_fh_w * objGeo.m_ft_w;

                float  rz_pl_0 = 0.5f * (-objGeo.m_fb * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * objMat.m_ff_y_w + objGeo.m_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb) / (2.0f * objGeo.m_ft_w * objMat.m_ff_y_w) + objGeo.m_ft_fu;
                float rW_pl_y_wh;

                if (rz_pl_0 >=objGeo.m_ft_fu && rz_pl_0 <= objGeo.m_fh - objGeo.m_ft_fb)
                {
                    rW_pl_y_wh = sqr(rz_pl_0 -objGeo.m_ft_fu) * objGeo.m_ft_w + sqr(objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb) * objGeo.m_ft_w;
                    m_fM_pl_y = objGeo.m_fb *objGeo.m_ft_fu * (rz_pl_0 -objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu +
                              rW_pl_y_wh * objMat.m_ff_y_w +
                              objGeo.m_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb;
                }
                else if (rz_pl_0 <objGeo.m_ft_fu)
                {
                    rz_pl_0 = 0.5f * (objGeo.m_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb + objGeo.m_fb *objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * objMat.m_ff_y_w) / (objGeo.m_fb * objMat.m_ff_y_fu);
                    rW_pl_y_wh = objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * (objGeo.m_fh_w / 2.0f +objGeo.m_ft_fu - rz_pl_0);
                    m_fM_pl_y = objGeo.m_fb * (sqr(rz_pl_0) / 2.0f + sqr(objGeo.m_ft_fu - rz_pl_0) / 2.0f) * objMat.m_ff_y_fu +
                              rW_pl_y_wh * objMat.m_ff_y_w +
                              objGeo.m_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb;
                }
                else
                {
                    rz_pl_0 = -0.5f * (objGeo.m_fb *objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * objMat.m_ff_y_w - objGeo.m_fb * objMat.m_ff_y_fb *objGeo.m_ft_fu - objGeo.m_fb * objMat.m_ff_y_fb * objGeo.m_fh_w - objGeo.m_fh * objGeo.m_fb * objMat.m_ff_y_fb) / (objGeo.m_fb * objMat.m_ff_y_fb);
                    rW_pl_y_wh = objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * (rz_pl_0 -objGeo.m_ft_fu - objGeo.m_fh_w / 2.0f);
                    m_fM_pl_y = objGeo.m_fb *objGeo.m_ft_fu * (rz_pl_0 -objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu +
                              rW_pl_y_wh * objMat.m_ff_y_w +
                              objGeo.m_fb * objGeo.m_ft_fb * (sqr(objGeo.m_fh - rz_pl_0) / 2.0f + sqr(rz_pl_0 - objGeo.m_fh_w -objGeo.m_ft_fu) / 2.0f) * objMat.m_ff_y_fb;
                }

                // 6.2.8
                float rW_pl_y_w = m_fEta * rW_pl_y_wh;                                                        // 6.2.6(3) d)

                // 6.2.8
                float rW_pl_z_fo = 2.0f * (objGeo.m_fb / 2.0f * objGeo.m_ft_fu * objGeo.m_fb / 4.0f);
                float rW_pl_z_fu = 2.0f * (objGeo.m_fb / 2.0f * objGeo.m_ft_fb * objGeo.m_fb / 4.0f);
                float rW_pl_z_f = rW_pl_z_fo + rW_pl_z_fu;                                                 // 6.2.6(3) e)

                m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.m_ff_y_w + rW_pl_z_fo * (objMat.m_ff_y_fu - objMat.m_ff_y_w) + rW_pl_z_fu * (objMat.m_ff_y_fb - objMat.m_ff_y_w);

                //bGeschlQuerschnitt = TRUE;

                m_fA_k = (objGeo.m_fb - (objGeo.m_ft_wl + objGeo.m_ft_wr) / 2.0f) * (objGeo.m_fh - (objGeo.m_ft_fu + objGeo.m_ft_fb) / 2.0f);

                // Symetriu urcovat uy po nacitani roymerov a priereyovych charakteristik
                /*
                if (Math.Abs(m_fz_S - objGeo.m_fh / 2.0f) > objGeo.m_fh * 1.0e - 3f)
                    bDoppeltSymmQuerschnitt = FALSE;
                 */

                //bQuerschn_fuer_InterVerf_2_moeglich = TRUE;
            }
        }