Example #1
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;
            */
        }
Example #2
0
        public C___U(C_GEO___U objGeo, C_MAT___U objMat, C_IFO objIFO, C_NAD objNAD, C_STR___U objStr)
        {
            // Table 5.2
            GetClassTab52_OUT(objStr.m_fSigma_fuA,
                            objStr.m_fSigma_fuB,
                            objGeo.m_fc_f,
                            objGeo.m_ft_f,
                            objMat.m_fEps_f,
                            m_fct_f,
                            m_fLambda_f_1,
                            m_fLambda_f_2,
                            m_fLambda_f_3,
                            m_iClass_fu,
                            objMat.BStainlessS);

            GetClassTab52_OUT(objStr.m_fSigma_fbA,
                            objStr.m_fSigma_fbB,
                            objGeo.m_fc_f,
                            objGeo.m_ft_f,
                            objMat.m_fEps_f,
                            m_fct_f,
                            m_fLambda_f_1,
                            m_fLambda_f_2,
                            m_fLambda_f_3,
                            m_iClass_fb,
                            objMat.BStainlessS);

            m_iClass_f = Math.Max(m_iClass_fu, m_iClass_fb);

            float fF_f = objGeo.m_fb * objGeo.m_ft_f * objMat.m_ff_y_f / objNAD.FGamma_M0;
            float fF_w = objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0;

            // Table 5.2
            GetClassTab52_INT(objStr.m_fSigma_wA,
                             objStr.m_fSigma_wB,
                             objStr.m_fSigma_N,
                             fF_f,
                             fF_w,
                             fF_f,
                             objIFO.FN_Ed,
                             objGeo.m_fc_w,
                             objGeo.m_ft_w,
                             objMat.m_ff_y_w / objNAD.FGamma_M0,
                             objMat.m_fEps_w,
                             m_iKlassif_Psi_Fix_Sigma_N,
                             m_bKlassif_Eps_Kl3_Sigma_com,
                             objStr.m_fSigma_com_Ed,
                             m_fct_w,
                             m_fAlpha_w,
                             m_fSigma_fyd_1,
                             m_fSigma_fyd_2,
                             m_fPsi_w,
                             m_fLambda_w_1,
                             m_fLambda_w_2,
                             m_fLambda_w_3,
                             m_iClass_w,
                             objMat.BStainlessS);

            m_iClass = Math.Max(m_iClass_f, m_iClass_w);
        }
Example #3
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;
        }
Example #4
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);
        }
Example #5
0
        public C___I(C_GEO___I objGeo, C_MAT___I objMat, C_IFO objIFO, C_NAD objNAD, C_STR___I objStr, ECrScSymmetry1 eSym, ECrScPrType1 eProd)
        {
            if (eSym == ECrScSymmetry1.eDS)
            {
                // Flange
                GetClassTab52_OUT(objStr.m_fSigma_fA,
                                objStr.m_fSigma_fB,
                                objGeo.m_fc_f,
                                objGeo.m_ft_f,
                                objMat.m_fEps_f,
                                m_fct_f,
                                m_fLambda_f_1,
                                m_fLambda_f_2,
                                m_fLambda_f_3,
                                m_iClass_f,
                                objMat.BStainlessS);

                float fF_f = objGeo.m_fb * objGeo.m_ft_f * objMat.m_ff_y_f / objNAD.FGamma_M0;
                float fF_w = objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0;

                // Web
                GetClassTab52_INT(objStr.m_fSigma_wA,
                                  objStr.m_fSigma_wB,
                                  objStr.m_fSigma_N,
                                  fF_f,
                                  fF_w,
                                  fF_f,
                                  objIFO.FN_Ed,
                                  objGeo.m_fc_w,
                                  objGeo.m_ft_w,
                                  objMat.m_ff_y_w / objNAD.FGamma_M0,
                                  objMat.m_fEps_w,
                                  m_iKlassif_Psi_Fix_Sigma_N,
                                  m_bKlassif_Eps_Kl3_Sigma_com,
                                  m_fSigma_com_Ed,
                                  m_fct_w,
                                  m_fAlpha_w,
                                  m_fSigma_fyd_1,
                                  m_fSigma_fyd_2,
                                  m_fPsi_w,
                                  m_fLambda_w_1,
                                  m_fLambda_w_2,
                                  m_fLambda_w_3,
                                  m_iClass_w,
                                  objMat.BStainlessS);

                m_iClass = Math.Max(m_iClass_f, m_iClass_w);
            }
            else
            {
               // Upper Flange
                GetClassTab52_OUT(objStr.m_fSigma_fuA,
                                objStr.m_fSigma_fuB,
                                objGeo.m_fc_fu,
                                objGeo.m_ft_fu,
                                 objMat.m_fEps_fu,
                                 m_fct_fu,
                                 m_fLambda_fu_1,
                                 m_fLambda_fu_2,
                                 m_fLambda_fu_3,
                                 m_iClass_fu,
                                objMat.BStainlessS);
                // Bottom Flange
                GetClassTab52_OUT(objStr.m_fSigma_fbA,
                objStr.m_fSigma_fbB,
                objGeo.m_fc_fb,
                objGeo.m_ft_fb,
                objMat.m_fEps_fb,
                m_fct_fb,
                m_fLambda_fb_1,
                m_fLambda_fb_2,
                m_fLambda_fb_3,
                m_iClass_fb,
                objMat.BStainlessS);

                float fF_fu = objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu / objNAD.FGamma_M0 + objGeo.m_fr_su * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0;
                float fF_w = objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0;
                float fF_fb = objGeo.m_fb_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb / objNAD.FGamma_M0 + objGeo.m_fr_sb * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0;

                float fF_f_com, fF_f_ten;

                if (objIFO.FM_y_Ed >= 0.0f)
                {
                    fF_f_com = fF_fu;
                    fF_f_ten = fF_fb;
                }
                else
                {
                    fF_f_com = fF_fb;
                    fF_f_ten = fF_fu;
                }

                // Web
                GetClassTab52_INT(objStr.m_fSigma_wA,
                                 objStr.m_fSigma_wB,
                                 objStr.m_fSigma_N,
                                 fF_f_com,
                                 fF_w,
                                 fF_f_ten,
                                 objIFO.FN_Ed,
                                 objGeo.m_fc_w,
                                 objGeo.m_ft_w,
                                 objMat.m_ff_y_w / objNAD.FGamma_M0,
                                 objMat.m_fEps_w,
                                 m_iKlassif_Psi_Fix_Sigma_N,
                                 m_bKlassif_Eps_Kl3_Sigma_com,
                                 m_fSigma_com_Ed,
                                 m_fct_w,
                                 m_fAlpha_w,
                                 m_fSigma_fyd_1,
                                 m_fSigma_fyd_2,
                                 m_fPsi_w,
                                 m_fLambda_w_1,
                                 m_fLambda_w_2,
                                 m_fLambda_w_3,
                                 m_iClass_w,
                                 objMat.BStainlessS);

                m_iClass = Math.Max(Math.Max(m_iClass_fu, m_iClass_fb), m_iClass_w);
            }
        }
Example #6
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;
            }
        }
Example #7
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;
            }
        }
Example #8
0
        public C__HL(C_GEO__HL objGeo, C_MAT__HL objMat, C_IFO objIFO, C_NAD objNAD, C_STR__HL objStr, ECrScSymmetry1 eSym, ECrScPrType1 eProd)
        {
            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
            {
                float fF_f = 2.0f * objGeo.m_fc_f * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0;
                float fF_w = objGeo.m_fh * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0;

                //Table 5.2
                GetClassTab52_INT(objStr.m_fSigma_fuA,
                                 objStr.m_fSigma_fuB,
                                 objStr.m_fSigma_N,
                                 fF_w,
                                 fF_f,
                                 fF_w,
                                 objIFO.FN_Ed,
                                 objGeo.m_fc_f,
                                 objGeo.m_ft_fu,
                                 objMat.m_ff_y_fu / objNAD.FGamma_M0,
                                 objMat.m_fEps_f,
                                 m_iKlassif_Psi_Fix_Sigma_N,
                                 m_bKlassif_Eps_Kl3_Sigma_com,
                                 objStr.m_fSigma_com_Ed,
                                 m_fct_fu,
                                 m_fAlpha_fu,
                                 m_fSigma_fyd_fu_1,
                                 m_fSigma_fyd_fu_2,
                                 m_fPsi_fu,
                                 m_fLambda_fu_1,
                                 m_fLambda_fu_2,
                                 m_fLambda_fu_3,
                                 m_iClass_fu,
                                 objMat.BStainlessS);

                //Table 5.2
                GetClassTab52_INT(objStr.m_fSigma_fbA,
                                 objStr.m_fSigma_fbB,
                                 objStr.m_fSigma_N,
                                 fF_w,
                                 fF_f,
                                 fF_w,
                                 objIFO.FN_Ed,
                                 objGeo.m_fc_f,
                                 objGeo.m_ft_fb,
                                 objMat.m_ff_y_fb / objNAD.FGamma_M0,
                                 objMat.m_fEps_f,
                                 m_iKlassif_Psi_Fix_Sigma_N,
                                 m_bKlassif_Eps_Kl3_Sigma_com,
                                 objStr.m_fSigma_com_Ed,
                                 m_fct_fb,
                                 m_fAlpha_fb,
                                 m_fSigma_fyd_fb_1,
                                 m_fSigma_fyd_fb_2,
                                 m_fPsi_fb,
                                 m_fLambda_fb_1,
                                 m_fLambda_fb_2,
                                 m_fLambda_fb_3,
                                 m_iClass_fb,
                                 objMat.BStainlessS);

                fF_f = objGeo.m_fb * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0;
                fF_w = 2.0f * objGeo.m_fc_w * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0;

                //Table 5.2
                GetClassTab52_INT(objStr.m_fSigma_wA,
                                 objStr.m_fSigma_wB,
                                 objStr.m_fSigma_N,
                                 fF_f,
                                 fF_w,
                                 fF_f,
                                 objIFO.FN_Ed,
                                 objGeo.m_fc_w,
                                 objGeo.m_ft,
                                 objMat.m_ff_y_w / objNAD.FGamma_M0,
                                 objMat.m_fEps_w,
                                 m_iKlassif_Psi_Fix_Sigma_N,
                                 m_bKlassif_Eps_Kl3_Sigma_com,
                                 objStr.m_fSigma_com_Ed,
                                 m_fct_w,
                                 m_fAlpha_w,
                                 m_fSigma_fyd_w_1,
                                 m_fSigma_fyd_w_2,
                                 m_fPsi_w,
                                 m_fLambda_w_1,
                                 m_fLambda_w_2,
                                 m_fLambda_w_3,
                                 m_iClass_w,
                                 objMat.BStainlessS);

                m_iClass_f = Math.Max(m_iClass_fu, m_iClass_fb);
                m_iClass = Math.Max(m_iClass_f, m_iClass_w);

                if (m_iClass_fu >= m_iClass_fb)
                {
                    objStr.m_fSigma_fA = objStr.m_fSigma_fuA;
                    objStr.m_fSigma_fB = objStr.m_fSigma_fuB;
                    m_fAlpha_f = m_fAlpha_fu;
                    m_fSigma_fyd_f_1 = m_fSigma_fyd_fu_1;
                    m_fSigma_fyd_f_2 = m_fSigma_fyd_fu_2;
                    m_fPsi_f = m_fPsi_fu;
                    objMat.m_fEps_f = objMat.m_fEps_fu;
                    m_fLambda_f_1 = m_fLambda_fu_1;
                    m_fLambda_f_2 = m_fLambda_fu_2;
                    m_fLambda_f_3 = m_fLambda_fu_3;
                    m_fct_f = m_fct_fu;
                    m_iClass_f = m_iClass_fu;
                }
                else
                {
                    objStr.m_fSigma_fA = objStr.m_fSigma_fbA;
                    objStr.m_fSigma_fB = objStr.m_fSigma_fbB;
                    m_fAlpha_f = m_fAlpha_fb;
                    m_fSigma_fyd_f_1 = m_fSigma_fyd_fb_1;
                    m_fSigma_fyd_f_2 = m_fSigma_fyd_fb_2;
                    m_fPsi_f = m_fPsi_fb;
                    objMat.m_fEps_f = objMat.m_fEps_fb;
                    m_fLambda_f_1 = m_fLambda_fb_1;
                    m_fLambda_f_2 = m_fLambda_fb_2;
                    m_fLambda_f_3 = m_fLambda_fb_3;
                    m_fct_f = m_fct_fb;
                    m_iClass_f = m_iClass_fb;
                }
            }
            else
            {
                float fF_f = objGeo.m_fc_f * (objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_ft_fb * objMat.m_ff_y_fb) / objNAD.FGamma_M0;
                float fF_w = objGeo.m_fh * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0;

                //Table 5.2
                GetClassTab52_INT(objStr.m_fSigma_fuA,
                                 objStr.m_fSigma_fuB,
                                 objStr.m_fSigma_N,
                                 fF_w,
                                 fF_f,
                                 fF_w,
                                 objIFO.FN_Ed,
                                 objGeo.m_fc_f,
                                 objGeo.m_ft_fu,
                                 objMat.m_ff_y_fu / objNAD.FGamma_M0,
                                 objMat.m_fEps_fu,
                                 m_iKlassif_Psi_Fix_Sigma_N,
                                 m_bKlassif_Eps_Kl3_Sigma_com,
                                 objStr.m_fSigma_com_Ed,
                                 m_fct_fu,
                                 m_fAlpha_fu,
                                 m_fSigma_fyd_fu_1,
                                 m_fSigma_fyd_fu_2,
                                 m_fPsi_fu,
                                 m_fLambda_fu_1,
                                 m_fLambda_fu_2,
                                 m_fLambda_fu_3,
                                 m_iClass_fu,
                                 objMat.BStainlessS);

                //Table 5.2
                GetClassTab52_INT(objStr.m_fSigma_fbA,
                                 objStr.m_fSigma_fbB,
                                 objStr.m_fSigma_N,
                                 fF_w,
                                 fF_f,
                                 fF_w,
                                 objIFO.FN_Ed,
                                 objGeo.m_fc_fb,
                                 objGeo.m_ft_fb,
                                 objMat.m_ff_y_fb / objNAD.FGamma_M0,
                                 objMat.m_fEps_fb,
                                 m_iKlassif_Psi_Fix_Sigma_N,
                                 m_bKlassif_Eps_Kl3_Sigma_com,
                                 objStr.m_fSigma_com_Ed,
                                 m_fct_fb,
                                 m_fAlpha_fb,
                                 m_fSigma_fyd_fb_1,
                                 m_fSigma_fyd_fb_2,
                                 m_fPsi_fb,
                                 m_fLambda_fb_1,
                                 m_fLambda_fb_2,
                                 m_fLambda_fb_3,
                                 m_iClass_fb,
                                 objMat.BStainlessS);

                float fF_fu = objGeo.m_fb * objGeo.m_ft_fu * objMat.m_ff_y_fu / objNAD.FGamma_M0;
                fF_w = 2.0f * objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0;
                float fF_fb = objGeo.m_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb / objNAD.FGamma_M0;

                float fF_f_com, fF_f_ten;

                if (objIFO.FM_y_Ed >= 0.0f)
                {
                    fF_f_com = fF_fu;
                    fF_f_ten = fF_fb;
                }
                else
                {
                    fF_f_com = fF_fb;
                    fF_f_ten = fF_fu;
                }

                //Table 5.2
                GetClassTab52_INT(objStr.m_fSigma_wA,
                                 objStr.m_fSigma_wB,
                                 objStr.m_fSigma_N,
                                 fF_f_com,
                                 fF_w,
                                 fF_f_ten,
                                 objIFO.FN_Ed,
                                 objGeo.m_fc_w,
                                 objGeo.m_ft_w,
                                 objMat.m_ff_y_w / objNAD.FGamma_M0,
                                 objMat.m_fEps_w,
                                 m_iKlassif_Psi_Fix_Sigma_N,
                                 m_bKlassif_Eps_Kl3_Sigma_com,
                                 objStr.m_fSigma_com_Ed,
                                 m_fct_w,
                                 m_fAlpha_w,
                                 m_fSigma_fyd_w_1,
                                 m_fSigma_fyd_w_2,
                                 m_fPsi_w,
                                 m_fLambda_w_1,
                                 m_fLambda_w_2,
                                 m_fLambda_w_3,
                                 m_iClass_w,
                                 objMat.BStainlessS);

                m_iClass = Math.Max(m_iClass_fu, m_iClass_fb);
                m_iClass = Math.Max(m_iClass, m_iClass_w);
            }
        }