Пример #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);
 }
Пример #2
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);
        }
Пример #3
0
        C_NAD m_objNAD = new C_NAD(); // doriesit konstruktor a naplnenie Mat

        #endregion Fields

        #region Constructors

        public CCalcul()
        {
            // Basic Cross-section Data and Classification
            // s niektorymi objektami potrebujem pracovat aj dalej, takze by to malo byt inak :-/
            // Mat jednu triedu, vytvarat jej objekt ako clensky v tejto triede a volat rozne konštruktory podla ECrScShType ???- zbytocne vela premennych - rozne typy maju rozne dáta

            switch (m_eCrScType)
            {
                case ECrScShType1.eCrScType_I: // I and H - section
                    {
                        C_GEO___I objGeo = new C_GEO___I(m_eSym, m_eProd);
                        C_MAT___I objMat = new C_MAT___I(objGeo, m_eSym);
                        C_ADD___I objAdd = new C_ADD___I(m_objNAD, objGeo, objMat, m_objCrSc, m_eSym, m_eProd);
                        C_STR___I objStr = new C_STR___I(m_objIFO, objGeo, m_objCrSc, m_eSym);
                        C___I objClass = new C___I(objGeo, objMat,m_objIFO,m_objNAD,objStr,m_eSym,m_eProd);

                        if (objClass.m_iClass == 4)
                        {
                            C___I4 objC___I4 = new C___I4(m_objCrSc, objGeo, m_objIFO, objStr, objClass, objMat, objAdd, m_eSym);
                        }

                        break;
                    }
                case ECrScShType1.eCrScType_C:  // C and U (channel) - section
                    {
                        C_GEO___U objGeo = new C_GEO___U(m_eProd);
                        C_MAT___U objMat = new C_MAT___U(objGeo, m_eSym);
                        C_ADD___U objAdd = new C_ADD___U(m_objNAD, objGeo, objMat, m_objCrSc, m_eProd);
                        C_STR___U objStr = new C_STR___U(m_objIFO, objGeo, m_objCrSc);
                        C___U objClass = new C___U(objGeo, objMat, m_objIFO, m_objNAD, objStr);

                        if (objClass.m_iClass == 4)
                        {
                            C___U4 objC___U4 = new C___U4(m_objCrSc, objGeo, m_objIFO, objStr, objClass, objMat, objAdd);
                        }

                        break;
                    }
                case ECrScShType1.eCrScType_L:   // L (angle) - section , equal and unequal
                    {
                        C_GEO___L objGeo = new C_GEO___L(m_eSym, m_eProd);
                        C_MAT___L objMat = new C_MAT___L(objGeo, m_eSym);
                        C_ADD___L objAdd = new C_ADD___L(m_objNAD, objGeo, objMat, m_objCrSc, m_eSym, m_eProd);
                        C_STR___L objStr = new C_STR___L(m_objIFO, objGeo, m_objCrSc, m_eSym);
                        C___L objClass = new C___L(objGeo, objMat, objStr);

                        if (objClass.m_iClass == 4)
                        {
                            C___L4 objC___L4 = new C___L4(m_objCrSc, objGeo, m_objIFO, objStr, objClass, objMat, objAdd, m_eSym);
                        }

                        break;
                    }
                case ECrScShType1.eCrScType_T:   // T - section
                    {
                        /*
                        C_GEO___T objGeo = new C_GEO___I(m_eSym, m_eProd);
                        C_MAT___T objMat = new C_MAT___I(objGeo, m_eSym);
                        C_ADD___I objAdd = new C_ADD___I(m_objNAD, objGeo, objMat, m_objCrSc, m_eSym, m_eProd);
                        C_STR___I objStr = new C_STR___I(m_objIFO, objGeo, m_objCrSc, m_eSym);
                        C___I objC___I = new C___I(objGeo, objMat, m_objIFO, m_objNAD, objStr, m_eSym, m_eProd);

                        if (objC___I.m_iClass == 4)
                        {
                            C___I4 objC___I4 = new C___I4(m_objCrSc, objGeo, m_objIFO, objStr, objC___I, objMat, objAdd, m_eSym);
                        }
                        */

                        break;
                    }
                case ECrScShType1.eCrScType_HL:   // HoLLow / box - section, hollow - section (square and rectangular)
                    {
                        C_GEO__HL objGeo = new C_GEO__HL(m_eProd);
                        C_MAT__HL objMat = new C_MAT__HL(objGeo, m_eProd);
                        C_ADD__HL objAdd = new C_ADD__HL(m_objNAD, objGeo, objMat, m_objCrSc, m_eProd);
                        C_STR__HL objStr = new C_STR__HL(m_objIFO, objGeo, m_objCrSc, m_eProd);
                        C__HL objClass = new C__HL(objGeo, objMat, m_objIFO, m_objNAD, objStr, m_eSym, m_eProd);

                        if (objClass.m_iClass == 4)
                        {
                            C__HL4 objC__HL4 = new C__HL4(m_objCrSc, objGeo, m_objIFO, objStr, objClass, objMat, objAdd, m_eProd);
                        }

                        break;
                    }
                case ECrScShType1.eCrScType_FB:   // Flat Bar
                    {
                        /*
                        C_GEO___I objGeo = new C_GEO___I(m_eSym, m_eProd);
                        C_MAT___I objMat = new C_MAT___I(objGeo, m_eSym);
                        C_ADD___I objAdd = new C_ADD___I(m_objNAD, objGeo, objMat, m_objCrSc, m_eSym, m_eProd);
                        C_STR___I objStr = new C_STR___I(m_objIFO, objGeo, m_objCrSc, m_eSym);
                        C___I objC___I = new C___I(objGeo, objMat, m_objIFO, m_objNAD, objStr, m_eSym, m_eProd);

                        if (objC___I.m_iClass == 4)
                        {
                            C___I4 objC___I4 = new C___I4(m_objCrSc, objGeo, m_objIFO, objStr, objC___I, objMat, objAdd, m_eSym);
                        }
                         */
                        break;
                    }
                case ECrScShType1.eCrScType_RB:   // Round Bar
                    {
                        /*
                        C_GEO___I objGeo = new C_GEO___I(m_eSym, m_eProd);
                        C_MAT___I objMat = new C_MAT___I(objGeo, m_eSym);
                        C_ADD___I objAdd = new C_ADD___I(m_objNAD, objGeo, objMat, m_objCrSc, m_eSym, m_eProd);
                        C_STR___I objStr = new C_STR___I(m_objIFO, objGeo, m_objCrSc, m_eSym);
                        C___I objC___I = new C___I(objGeo, objMat, m_objIFO, m_objNAD, objStr, m_eSym, m_eProd);

                        if (objC___I.m_iClass == 4)
                        {
                            C___I4 objC___I4 = new C___I4(m_objCrSc, objGeo, m_objIFO, objStr, objC___I, objMat, objAdd, m_eSym);
                        }*/

                        break;
                    }
                case ECrScShType1.eCrScType_TU:   // TUbe
                    {
                        C_GEO__TU objGeo = new C_GEO__TU(m_eProd);
                        C_MAT__TU objMat = new C_MAT__TU(objGeo);
                        C_ADD__TU objAdd = new C_ADD__TU(m_objNAD, objGeo, objMat, m_objCrSc, m_eProd);
                        C_STR__TU objStr = new C_STR__TU(m_objIFO, objGeo, m_objCrSc);
                        C__TU objC__TU = new C__TU(objGeo, objMat, m_objIFO, m_objNAD, objStr);

                        if (objC__TU.m_iClass == 4)
                        {
                          //Error
                        }

                        break;
                    }
                default:
                    {

                        break;
                    }
            }

            // Cross-section Design

            // Stability Design

            // Nasleduje if / else pre urcenie spravneho posudku ktory sa ma vytvorit
            // objekty CH_10000 - CH_90000
        }
Пример #4
0
        public C_MAT__HL(C_GEO__HL objGeo, ECrScPrType1 eProd)
        {
            if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm)
            {
                Ff_y = GetfykForT(objGeo.m_ft);
                Ff_u = GetfukForT(objGeo.m_ft);

                if (Ff_y <= 0.0f || Ff_u <= 0.0f)
                {
                    /*

                    return FALSE;

                      continue;
                     * */
                }

                m_ff_y_f = m_ff_y_fu = m_ff_y_fb = Ff_y;
                m_ff_y_w = Ff_y;

                m_ff_u_f = m_ff_u_fu = m_ff_u_fb = Ff_u;
                m_ff_u_w = Ff_u;

                FEps = GetEpsForF(Ff_y);
                m_fEps_fu = m_fEps_fb = m_fEps_f = FEps;
                m_fEps_w = FEps;
            }
            else
            {
                // Upper Flange
                m_ff_y_fu = GetfykForT(objGeo.m_ft_fu);
                m_ff_u_fu = GetfukForT(objGeo.m_ft_fu);

                if (m_ff_y_fu <= 0.0f || m_ff_u_fu <= 0.0f)
                {
                    // Exception
                    //return FALSE;

                    //continue;
                }

                m_fEps_fu = GetEpsForF(m_ff_y_fu);

                // Bottom Flange
                m_ff_y_fb = GetfykForT(objGeo.m_ft_fb);
                m_ff_u_fb = GetfukForT(objGeo.m_ft_fb);

                if (m_ff_y_fb <= 0.0f || m_ff_u_fb <= 0.0f)
                {
                    // Exception
                    //return FALSE;

                    //continue;
                }

                m_fEps_fb = GetEpsForF(m_ff_y_fb);

                // Minimum for flanges
                m_ff_y_f = Math.Min(m_ff_y_fu, m_ff_y_fb);
                m_ff_u_f = Math.Min(m_ff_u_fu, m_ff_u_fb);

                m_fEps_f = GetEpsForF(m_ff_y_f);

            // Web
            m_ff_y_w = GetfykForT(objGeo.m_ft_w);
            m_ff_u_w = GetfukForT(objGeo.m_ft_w);

            if (m_ff_y_w <= 0.0f || m_ff_u_w <= 0.0f)
            {
                // Exception
                //return FALSE;

                //continue;
            }

            m_fEps_w = GetEpsForF(m_ff_y_w);

            // Main Material Parameters - minimum for all parts
            Ff_y = Math.Min(m_ff_y_f, m_ff_y_w);
            Ff_u = Math.Min(m_ff_u_f, m_ff_u_w);
            FEps = GetEpsForF();

            }
        }
Пример #5
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);
        }
Пример #6
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;
            }
        }
Пример #7
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);
            }
        }