コード例 #1
0
        public void Calculate(BeamUnderLoad beam)
        {
            double L = beam.Beam.Dimensions.Length;

            g = beam.CrossSectionCalculatedCharacteristics.Area * 0.0001 * beam.Beam.ConcreteParameters.RhoB;

            switch (beam.Beam.Loads.StaticSystem)
            {
            case Loads.StaticSystemTypes.jednoprzeslowa:
                momentDGK = (beam.Beam.Loads.DGLoad * Math.Pow(L, 2)) / 8;
                momentGK  = (g * Math.Pow(L, 2)) / 8;
                momentQK  = (beam.Beam.Loads.QLoad * Math.Pow(L, 2)) / 8;
                momentPK  = beam.Beam.Loads.SilaP * L / 4;
                break;

            //case Loads.StaticSystemTypes.przewieszenie:
            //    momentDGK = (beam.Beam.Loads.DGLoad * Math.Pow(L, 2)) / 8;
            //    momentGK = (g * Math.Pow(L, 2)) / 8;
            //    momentQK = (beam.Beam.Loads.QLoad * Math.Pow(L, 2)) / 8;
            //    momentPK = beam.Beam.Loads.SilaP * L / 4;
            //    break;
            case Loads.StaticSystemTypes.jednoZamocowanie:
                momentDGK = (beam.Beam.Loads.DGLoad * Math.Pow(L, 2)) * 0.0703;
                momentGK  = (g * Math.Pow(L, 2)) * 0.0703;
                momentQK  = (beam.Beam.Loads.QLoad * Math.Pow(L, 2)) * 0.0703;
                momentPK  = beam.Beam.Loads.SilaP * L * 0.156;
                break;

            case Loads.StaticSystemTypes.dwaZamocowania:
                momentDGK = (beam.Beam.Loads.DGLoad * Math.Pow(L, 2)) * 0.0417;
                momentGK  = (g * Math.Pow(L, 2)) * 0.0417;
                momentQK  = (beam.Beam.Loads.QLoad * Math.Pow(L, 2)) * 0.0417;
                momentPK  = beam.Beam.Loads.SilaP * L * 0.125;
                break;

            default:
                break;
            }

            momentDG = 1.35 * momentDGK;
            momentG  = 1.35 * momentGK;
            momentP  = 1.35 * momentPK;
            momentQ  = 1.5 * MomentQK;

            force = (beam.Beam.Loads.QLoad * beam.Beam.Dimensions.Length * beam.Beam.Dimensions.Length) / 8;

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentGK"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentG"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentDGK"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentDG"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentQK"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentQ"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentPK"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MomentP"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("G"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Force"));
        }
コード例 #2
0
        public void Calculate(BeamUnderLoad beam)
        {
            PrestressingSteelParameters           p  = beam.Beam.PrestressingSteelParameters;
            CrossSectionCalculatedCharacteristics ch = beam.CrossSectionCalculatedCharacteristics;

            p0Max = Math.Min(0.8 * p.Fpk * ch.AreaAp, 0.9 * p.Fp01k * ch.AreaAp) / 10;

            pM0Max = Math.Min(0.75 * p.Fpk * ch.AreaAp, 0.85 * p.Fp01k * ch.AreaAp) / 10;

            pMtMax = 0.65 * p.Fpk * ch.AreaAp / 10;
        }
コード例 #3
0
        public void Calculate(BeamUnderLoad beam)
        {
            lToru              = 3 * beam.Beam.Dimensions.Length + 4 * 0.2;
            deltaPs1           = (beam.Beam.DifferentData.As1 / lToru) * beam.Beam.PrestressingSteelParameters.EP * beam.CrossSectionCalculatedCharacteristics.AreaAp * 0.1;
            p0s1               = beam.MaxForcesInActiveSteel.P0Max - deltaPs1;
            technologicalLosse = deltaPs1 / beam.MaxForcesInActiveSteel.P0Max * 100;

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("LToru"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("DeltaPs1"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("P0s1"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("TechnologicalLosse"));
        }
コード例 #4
0
        public void Calculate(BeamUnderLoad beam)
        {
            hz = beam.CrossSectionCalculatedCharacteristics.Hz;
            // Moment in [kNcm]
            Double M = (beam.Forces.MomentQ + beam.Forces.MomentDG + beam.Forces.MomentG + beam.Forces.MomentP) * 100;

            x    = hz - Math.Sqrt(Math.Pow(hz, 2) - 2 * M / ((beam.Beam.ConcreteParameters.Fcd / 10) * beam.CrossSectionCalculatedCharacteristics.BNmin));
            aAp1 = beam.Beam.ConcreteParameters.Fcd / beam.Beam.PrestressingSteelParameters.Fpd * beam.CrossSectionCalculatedCharacteristics.BNmin * x;

            nMin = aAp1 / (beam.Beam.PrestressingSteelParameters.Ap / 100);

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("NMin"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Hz"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("X"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Ap1"));
        }
コード例 #5
0
        public void Calculate(BeamUnderLoad beam)
        {
            aw     = (beam.Shear.VEd - beam.Shear.VRdC) * 100 / beam.Shear.Q;
            asw    = beam.Beam.DifferentData.M * Math.Pow(beam.Beam.SteelParameters.FiS / 10, 2) * Math.PI / 4.0;
            swMax  = (asw / beam.Shear.VEdd) * beam.Shear.Z * beam.Beam.SteelParameters.Fyd / 10;
            vRds   = (asw / beam.Beam.DifferentData.Swa) * beam.Shear.Z * beam.Beam.SteelParameters.Fyd / 10;
            slMax  = 0.75 * (beam.Beam.Dimensions.DimH - beam.Beam.Dimensions.E1);
            roWmin = 0.08 * (Math.Sqrt(beam.Beam.ConcreteParameters.Fck) / beam.Beam.SteelParameters.Fyk) * 100;
            slMax2 = asw * 100 / (roWmin * beam.Beam.Dimensions.DimB);

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Aw"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Asw"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SwMax"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VRds"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SlMax"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("RoWmin"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SlMax2"));
        }
コード例 #6
0
ファイル: SGU.cs プロジェクト: nwenat/BeamCalculator
        public void Calculate(BeamUnderLoad beam)
        {
            q = beam.Beam.Loads.DGLoad + beam.Beam.Loads.QLoad + beam.Forces.G;

            eCeff = beam.Beam.ConcreteParameters.ECm * 1000 / (1 + beam.DelayedLosses.Fi8T0);

            //u = (5 * (q/100) * Math.Pow(beam.Beam.Dimensions.Length * 100, 4)) / (384 * (eCeff/10) * beam.CrossSectionCalculatedCharacteristics.IXCS);

            double l3EI = Math.Pow(beam.Beam.Dimensions.Length * 100, 3) / ((eCeff / 10) * beam.CrossSectionCalculatedCharacteristics.IXCS);

            switch (beam.Beam.Loads.StaticSystem)
            {
            case Loads.StaticSystemTypes.jednoprzeslowa:
                u = (5.0 / 384.0) * (q / 100) * beam.Beam.Dimensions.Length * 100 * l3EI + (1 / 48.0) * beam.Beam.Loads.SilaP * l3EI;
                break;

            //case Loads.StaticSystemTypes.przewieszenie:
            //    u = 0.0;
            //    break;
            case Loads.StaticSystemTypes.jednoZamocowanie:
                u = 0.00541 * (q / 100) * beam.Beam.Dimensions.Length * 100 * l3EI + 0.00933 * beam.Beam.Loads.SilaP * l3EI;
                break;

            case Loads.StaticSystemTypes.dwaZamocowania:
                u = 0.0026 * (q / 100) * beam.Beam.Dimensions.Length * 100 * l3EI + 0.00521 * beam.Beam.Loads.SilaP * l3EI;
                break;

            default:
                break;
            }



            s         = (-1.0 / 8.0) * (beam.DelayedLosses.Pmt * beam.AdHocLosses.Zcp * Math.Pow(beam.Beam.Dimensions.Length * 100, 2) / ((eCeff / 10) * beam.CrossSectionCalculatedCharacteristics.IXCS));
            uU        = u + s;
            condition = beam.Beam.Dimensions.Length * 100 / 250;

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ECeff"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("S"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("U"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("UU"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Condition"));
        }
コード例 #7
0
ファイル: SGN.cs プロジェクト: nwenat/BeamCalculator
        public void Calculate(BeamUnderLoad beam)
        {
            betaCC = Math.Pow(Math.E, 0.2 * (1 - Math.Sqrt(28 / beam.Beam.DifferentData.TSGN)));
            fCmT   = betaCC * beam.Beam.ConcreteParameters.Fcm;
            fCkT   = fCmT - 8;
            fCtmT  = betaCC * beam.Beam.ConcreteParameters.Fctm;

            pKSup  = 1.05 * beam.AdHocLosses.PMo;
            sig2F0 = ((pKSup / beam.CrossSectionCalculatedCharacteristics.AreaAcs) - ((pKSup * beam.AdHocLosses.Zcp) / beam.CrossSectionCalculatedCharacteristics.WCSg) + (beam.Forces.MomentGK * 100 / beam.CrossSectionCalculatedCharacteristics.WCSg)) * 10;
            sig1F0 = ((pKSup / beam.CrossSectionCalculatedCharacteristics.AreaAcs) + ((pKSup * beam.AdHocLosses.Zcp) / beam.CrossSectionCalculatedCharacteristics.WCSd) - (beam.Forces.MomentGK * 100 / beam.CrossSectionCalculatedCharacteristics.WCSd)) * 10;
            pD1    = 1.2 * beam.AdHocLosses.PMo;
            sig2F1 = ((pD1 / beam.CrossSectionCalculatedCharacteristics.AreaAcs) - ((pD1 * beam.AdHocLosses.Zcp) / beam.CrossSectionCalculatedCharacteristics.WCSg) + (beam.Forces.MomentG * 100 / beam.CrossSectionCalculatedCharacteristics.WCSg)) * 10;
            sig1F1 = ((pD1 / beam.CrossSectionCalculatedCharacteristics.AreaAcs) + ((pD1 * beam.AdHocLosses.Zcp) / beam.CrossSectionCalculatedCharacteristics.WCSd) - (beam.Forces.MomentG * 100 / beam.CrossSectionCalculatedCharacteristics.WCSd)) * 10;
            pD2    = 1.0 * beam.AdHocLosses.PMo;

            Double moment = beam.Forces.MomentG + beam.Forces.MomentDG + beam.Forces.MomentQ + beam.Forces.MomentP;

            sig2F2 = ((pD2 / beam.CrossSectionCalculatedCharacteristics.AreaAcs) - ((pD2 * beam.AdHocLosses.Zcp) / beam.CrossSectionCalculatedCharacteristics.WCSg) + (moment * 100 / beam.CrossSectionCalculatedCharacteristics.WCSg)) * 10;
            sig1F2 = ((pD2 / beam.CrossSectionCalculatedCharacteristics.AreaAcs) + ((pD2 * beam.AdHocLosses.Zcp) / beam.CrossSectionCalculatedCharacteristics.WCSd) - (moment * 100 / beam.CrossSectionCalculatedCharacteristics.WCSd)) * 10;
            fck06  = beam.Beam.ConcreteParameters.Fck * 0.6;

            allLossValue = (beam.TechnologicalLosses.DeltaPs1 + beam.AdHocLosses.DeltaPr + beam.AdHocLosses.DeltaPel + beam.DelayedLosses.DeltaPt) * 100 / beam.MaxForcesInActiveSteel.P0Max;

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BetaCC"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("FCmT"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("FCkT"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("FCtmT"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("PKSup"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Sig2F0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Sig1F0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("PD1"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Sig2F1"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Sig1F1"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("PD2"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Sig2F2"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Sig1F2"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Fck06"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Fckt06"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AllLossValue"));
        }
コード例 #8
0
        public void Calculate(BeamUnderLoad beam)
        {
            q        = ((beam.Beam.Loads.DGLoad + beam.Forces.G) * 1.35 + beam.Beam.Loads.QLoad * 1.5);
            vEd      = q * beam.Beam.Dimensions.Length * 0.5 + beam.Beam.Loads.SilaP * 0.5;
            vEdd     = vEd - q * beam.Beam.DifferentData.D / 100;
            sXCS     = beam.CrossSectionCalculatedCharacteristics.SxCS2;
            sigmaCp  = (beam.DelayedLosses.Pmt / beam.CrossSectionCalculatedCharacteristics.AreaAcs) * 10;
            vRdC     = (beam.CrossSectionCalculatedCharacteristics.IXCS * beam.CrossSectionCalculatedCharacteristics.BShear / sXCS) * Math.Sqrt(Math.Pow(beam.Beam.ConcreteParameters.Fctd, 2) + (1 * sigmaCp * beam.Beam.ConcreteParameters.Fctd)) / 10;
            sigmaCp2 = Math.Min(10 * beam.DelayedLosses.Pmt / beam.CrossSectionCalculatedCharacteristics.Area, 0.2 * beam.Beam.ConcreteParameters.Fcd);
            alfaC    = 0.0;
            if (sigmaCp2 < 0.25 * beam.Beam.ConcreteParameters.Fcd)
            {
                alfaC = 1 + sigmaCp2 / beam.Beam.ConcreteParameters.Fcd;
            }

            z = 0.9 * beam.CrossSectionCalculatedCharacteristics.Hz;
            double v1 = 0.6 * (1.0 - beam.Beam.ConcreteParameters.Fck / 250.0);


            int m = 1;

            while (m < 20)
            {
                m = m + 1;
            }


            vRdMax = (alfaC * beam.CrossSectionCalculatedCharacteristics.BShear * z * v1 * beam.Beam.ConcreteParameters.Fcd) / 20;

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VEd"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VEdd"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SXCS"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SigmaCp"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VRdC"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SigmaCp2"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AlfaC"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VRdMax"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Q"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Z"));
        }
コード例 #9
0
        public void Calculate(BeamUnderLoad beam)
        {
            Dimensions d = beam.Beam.Dimensions;

            switch (d.BeamType)
            {
            case Dimensions.BeamTypes.prostokatny:
                area = d.PrH * d.PrB;
                sC   = 0.5 * d.PrB * Math.Pow(d.PrH, 2);
                yC   = sC / area;
                iXC  = d.PrB * Math.Pow(d.PrH, 3) / 12;
                break;

            case Dimensions.BeamTypes.dwuteowy:
                area = d.DimB * (d.DimH - d.DimD1 - d.DimD2)
                       + d.DimD1 * d.DimBD1 + d.DimD2 * d.DimBD2;

                sC = (d.DimBD1 * d.DimD1 * d.DimD1) / 2
                     + d.DimB * (d.DimH - d.DimD1 - d.DimD2)
                     * ((d.DimH - d.DimD1 - d.DimD2) / 2 + d.DimD1)
                     + d.DimBD2 * d.DimD2 * (d.DimH - d.DimD2 / 2);

                yC = sC / area;

                iXC = d.DimB * Math.Pow((d.DimH - d.DimD1 - d.DimD2), 3) / 12
                      + d.DimB * (d.DimH - d.DimD1 - d.DimD2) * Math.Pow((yC - (d.DimH + d.DimD1 - d.DimD2) / 2), 2)
                      + d.DimBD2 * Math.Pow(d.DimD2, 3) / 12
                      + d.DimBD2 * d.DimD2 * Math.Pow((yC - d.DimH + d.DimD2 / 2), 2)
                      + d.DimBD1 * Math.Pow(d.DimD1, 3) / 12 + d.DimBD1 * d.DimD1 * Math.Pow((yC - d.DimD1 / 2), 2);
                break;

            case Dimensions.BeamTypes.skrzynkowy:
                area = d.SB1 * d.SH1 + d.SB2 * d.SH2 + 2 * d.SB3 * (d.SH - d.SH1 - d.SH2);
                sC   = d.SB1 * d.SH1 * (d.SH - 0.5 * d.SH1) + 0.5 * d.SB2 * Math.Pow(d.SH2, 2) + 2 * (d.SB3 * (d.SH - d.SH1 - d.SH2) * (d.SH2 + 0.5 * (d.SH - d.SH1 - d.SH2)));
                yC   = sC / area;

                iXC = d.SB1 * Math.Pow(d.SH1, 3) / 12 + d.SB1 * d.SH1 * Math.Pow(d.SH - 0.5 * d.SH1 - yC, 2) + d.SB2 * Math.Pow(d.SH2, 3) / 12 + d.SB2 * d.SH2 * Math.Pow(yC - d.SH2, 2)
                      + 2 * (d.SB3 * Math.Pow((d.SH - d.SH1 - d.SH2), 3) / 12 + d.SB3 * (d.SH - d.SH1 - d.SH2) * Math.Pow(yC + d.SH2 - 0.5 * (d.SH - d.SH1 - d.SH2), 2));
                break;

            case Dimensions.BeamTypes.belkatt:
                area = d.TtHf * d.TtB + 2 * (d.TtH - d.TtHf) * d.TtB1;
                sC   = d.TtHf * d.TtB * (d.TtH - d.TtHf / 2) + d.TtB1 * Math.Pow(d.TtH - d.TtHf, 2);
                yC   = sC / area;
                iXC  = d.TtB * Math.Pow(d.TtHf, 3) / 12 + d.TtB * d.TtHf * Math.Pow(d.TtH - d.TtHf / 2 - yC, 2)
                       + 2 * (d.TtB1 * Math.Pow(d.TtH - d.TtHf, 3) / 12 + d.TtB1 * (d.TtH - d.TtHf) * Math.Pow((d.TtH - d.TtHf) / 2 - yC, 2));
                break;

            default:
                area = 1.1;
                sC   = 1.1;
                yC   = 1.1;
                iXC  = 1.1;
                break;
            }

            alfaP   = beam.Beam.PrestressingSteelParameters.EP / beam.Beam.ConcreteParameters.ECm;
            areaAp  = beam.Beam.PrestressingSteelParameters.N * beam.Beam.PrestressingSteelParameters.Ap / 100;
            areaAcs = area + (alfaP - 1) * areaAp;

            sCS = sC + (alfaP - 1) * areaAp * d.E1;

            yCS = sCS / areaAcs;

            iXCS = iXC + area * Math.Pow(yCS - yC, 2) + (alfaP - 1) * areaAp * Math.Pow(yCS - d.E1, 2);

            wCSd = iXCS / yCS;

            switch (d.BeamType)
            {
            case Dimensions.BeamTypes.prostokatny:
                wCSg   = iXCS / (d.PrH - yCS);
                sxCS2  = 0.5 * d.PrB * Math.Pow(d.PrH - yCS, 2);
                hz     = d.PrH - d.E1;
                bNmin  = d.PrB;
                bShear = d.PrB;
                u      = 2 * d.PrH + d.PrB;
                break;

            case Dimensions.BeamTypes.dwuteowy:
                wCSg   = iXCS / (d.DimH - yCS);
                sxCS2  = d.DimBD2 * d.DimD2 * (d.DimH - yCS - 0.5 * d.DimD2) + 0.5 * d.DimB * Math.Pow(d.DimH - yCS - d.DimD2, 2);
                hz     = d.DimH - d.E1;
                bNmin  = d.DimBD2;
                bShear = d.DimB;
                u      = 2 * d.DimH + d.DimBD1;
                break;

            case Dimensions.BeamTypes.skrzynkowy:
                wCSg   = iXCS / (d.SH - yCS);
                sxCS2  = d.SB1 * d.SH1 * (d.SH - yCS - 0.5 * d.SH1) + d.SB3 * Math.Pow(d.SH - d.SH1 - yCS, 2);
                hz     = d.SH - d.E1;
                bNmin  = d.SB1;
                bShear = d.SB3 * 2;
                u      = 4 * d.SH + d.SB2;
                break;

            case Dimensions.BeamTypes.belkatt:
                wCSg   = iXCS / (d.TtH - yCS);
                sxCS2  = d.TtB * Math.Pow(d.TtHf, 3) / 12 + d.TtB * d.TtHf * Math.Pow(d.TtH - d.TtHf / 2 - yCS, 2) + 2 * (d.TtB1 * Math.Pow(d.TtH - d.TtHf - yCS, 3) / 12 + 0.5 * d.TtB1 * Math.Pow(d.TtH - d.TtHf - yCS, 2));
                hz     = d.TtH - d.E1;
                bNmin  = d.TtB;
                bShear = 2 * d.TtB1;
                u      = 4 * d.TtH + 2 * d.TtB1;
                break;

            default:
                wCSg  = 1.1;
                sxCS2 = 1.1;
                hz    = 1.1;
                break;
            }

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Area"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SC"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IXC"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SCS"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IXCS"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("WCSd"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("WCSg"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AlfaP"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AreaAcs"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AreaAp"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SxCS2"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Hz"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BNmin"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BShear"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("U"));
        }
コード例 #10
0
 public CrossSectionCalculatedCharacteristics(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #11
0
 public Ranges(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #12
0
 public Conditions(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #13
0
 public Stirrups(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #14
0
        public void Calculate(BeamUnderLoad beam)
        {
            if (beam.MaxForcesInActiveSteel.PMtMax > beam.DelayedLosses.Pmt)
            {
                pmtPmtmax = true;
            }
            else
            {
                pmtPmtmax = false;
            }

            if (beam.SGN.Sig2F0 > -beam.SGN.FCtmT)
            {
                ns2f0 = true;
            }
            else
            {
                ns2f0 = false;
            }

            if (beam.SGN.Sig1F0 <= beam.SGN.Fckt06)
            {
                ns1f0 = true;
            }
            else
            {
                ns1f0 = false;
            }

            if (beam.SGN.Sig2F1 > -beam.SGN.FCtmT)
            {
                ns2f1 = true;
            }
            else
            {
                ns2f1 = false;
            }

            if (beam.SGN.Sig1F1 <= beam.SGN.Fckt06)
            {
                ns1f1 = true;
            }
            else
            {
                ns1f1 = false;
            }

            if (beam.SGN.Sig2F2 <= 0.6 * beam.Beam.ConcreteParameters.Fck)
            {
                ns2f2 = true;
            }
            else
            {
                ns2f2 = false;
            }

            if (beam.SGN.Sig1F2 > -beam.Beam.ConcreteParameters.Fctm)
            {
                ns1f2 = true;
            }
            else
            {
                ns1f2 = false;
            }

            if (beam.Shear.VRdC > beam.Shear.VEdd)
            {
                vrdcVedd = true;
            }
            else
            {
                vrdcVedd = false;
            }

            if (beam.Shear.VRdMax > beam.Shear.VEdd)
            {
                vrdmaxVedd = true;
            }
            else
            {
                vrdmaxVedd = false;
            }

            if (beam.Stirrups.VRds > beam.Shear.VEdd)
            {
                vrdsVedd = true;
            }
            else
            {
                vrdsVedd = false;
            }

            if (beam.SGU.UU < beam.SGU.Condition)
            {
                uLeff = true;
            }
            else
            {
                uLeff = false;
            }

            if (beam.Beam.Dimensions.BeamType == Dimensions.BeamTypes.prostokatny)
            {
                isProstokat = true;
            }
            else
            {
                isProstokat = false;
            }

            if (beam.Beam.Dimensions.BeamType == Dimensions.BeamTypes.skrzynkowy)
            {
                isSkrzynkowy = true;
            }
            else
            {
                isSkrzynkowy = false;
            }

            if (beam.Beam.Dimensions.BeamType == Dimensions.BeamTypes.dwuteowy)
            {
                isTeowy = true;
            }
            else
            {
                isTeowy = false;
            }

            if (beam.Beam.Dimensions.BeamType == Dimensions.BeamTypes.belkatt)
            {
                isTT = true;
            }
            else
            {
                isTT = false;
            }

            if (beam.Beam.Loads.StaticSystem == Loads.StaticSystemTypes.jednoprzeslowa)
            {
                isZwykla = true;
            }
            else
            {
                isZwykla = false;
            }

            //if (beam.Beam.Loads.StaticSystem == Loads.StaticSystemTypes.przewieszenie)
            //{
            //    isPrzewieszona = true;
            //}
            //else
            //{
            //    isPrzewieszona = false;
            //}

            if (beam.Beam.Loads.StaticSystem == Loads.StaticSystemTypes.jednoZamocowanie)
            {
                is1Utwierdzenie = true;
            }
            else
            {
                is1Utwierdzenie = false;
            }

            if (beam.Beam.Loads.StaticSystem == Loads.StaticSystemTypes.dwaZamocowania)
            {
                is2Utwierdzenia = true;
            }
            else
            {
                is2Utwierdzenia = false;
            }

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("TestP"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("TestF"));

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("PmtPmtmax"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Ns2f0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Ns1f0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Ns2f1"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Ns1f1"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Ns2f2"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Ns1f2"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VrdcVedd"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VrdmaxVedd"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("VrdsVedd"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ULeff"));

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsProstokat"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsTeowy"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsSkrzynkowy"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsTT"));

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsZwykla"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsPrzewieszona"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Is1Utwierdzenie"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Is2Utwierdzenia"));
        }
コード例 #15
0
 public MaxForcesInActiveSteel(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #16
0
 public DelayedLosses(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #17
0
ファイル: SGN.cs プロジェクト: nwenat/BeamCalculator
 public SGN(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #18
0
 public Forces(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #19
0
        public void Calculate(BeamUnderLoad beam)
        {
            sigmaCg  = -1000 * (beam.Forces.MomentGK + beam.Forces.MomentDGK + beam.Forces.MomentPK) * beam.AdHocLosses.Zcp / beam.CrossSectionCalculatedCharacteristics.IXCS;
            sigmaCp0 = ((beam.AdHocLosses.PMo / beam.CrossSectionCalculatedCharacteristics.AreaAcs) + ((beam.AdHocLosses.PMo * Math.Pow(beam.AdHocLosses.Zcp, 2)) / beam.CrossSectionCalculatedCharacteristics.IXCS)) * 10;
            sigmaPi  = ((beam.AdHocLosses.PMo / beam.CrossSectionCalculatedCharacteristics.AreaAp) + (((beam.Forces.MomentGK + beam.Forces.MomentDGK + beam.Forces.MomentPK) * 100 * beam.AdHocLosses.Zcp) / beam.CrossSectionCalculatedCharacteristics.IXCS)
                        * beam.CrossSectionCalculatedCharacteristics.AlfaP) * 10;
            mi           = sigmaPi / beam.Beam.PrestressingSteelParameters.Fpk;
            deltaSigmaPr = 0.66 * sigmaPi * 2.5 * Math.Pow(Math.E, 9.1 * mi) * Math.Pow(500, 0.75 * (1 - mi)) * Math.Pow(10, -5);

            betaAsT    = 1 - Math.Pow(Math.E, -0.2 * Math.Sqrt(beam.Beam.DifferentData.TOpoznione * 365));
            epsilonCa8 = 2.5 * (beam.Beam.ConcreteParameters.Fck - 10) * Math.Pow(10, -6);
            epsilonCaT = betaAsT * epsilonCa8;
            u          = beam.CrossSectionCalculatedCharacteristics.U;
            h0         = (2 * beam.CrossSectionCalculatedCharacteristics.Area) / u;
            kh         = 0.7 + Math.Pow(Math.E, -(h0 / 100));

            deltaT    = beam.Beam.DifferentData.TOpoznione * 365 - beam.Beam.DifferentData.TsOpoznione;
            betaDsTTs = deltaT / (deltaT + 0.4 * Math.Sqrt(Math.Pow(h0, 2)));

            setAlfaFromKlasaCem(beam.Beam.DifferentData.KlasaCem);
            epsilonCd0 = 1.318 * (220 + 110 * alfaDs1) * (1 - Math.Pow(0.01 * beam.Beam.DifferentData.RH, 3)) * Math.Pow(Math.E, -0.1 * alfaDs2 * beam.Beam.ConcreteParameters.Fcm) * Math.Pow(10, -6);
            epsilonCdT = betaDsTTs * kh * epsilonCd0;
            epsilonCs  = epsilonCaT + epsilonCdT;

            alfa1    = Math.Pow(35 / beam.Beam.ConcreteParameters.Fcm, 0.7);
            alfa2    = Math.Pow(35 / beam.Beam.ConcreteParameters.Fcm, 0.2);
            alfa3    = Math.Sqrt(35 / beam.Beam.ConcreteParameters.Fcm);
            fiRH     = alfa2 * (1 + alfa1 * (1 - 0.01 * beam.Beam.DifferentData.RH) / (0.1 * Math.Pow(h0, 0.333)));
            t0       = beam.Beam.DifferentData.TsOpoznione * Math.Pow((9 / (2 + Math.Pow(beam.Beam.DifferentData.TsOpoznione, 1.2))) + 1, alfa);
            betaT0   = 1 / (0.1 + Math.Pow(t0, 0.2));
            fi0      = (16.8 / Math.Sqrt(beam.Beam.ConcreteParameters.Fcm)) * fiRH * betaT0;
            betaH    = 1.5 * (1 + Math.Pow(0.012 * beam.Beam.DifferentData.RH, 18)) * h0 + 250 * alfa3;
            betaC8T0 = Math.Pow((beam.Beam.DifferentData.TOpoznione * 365 - beam.Beam.DifferentData.TsOpoznione) / (betaH + beam.Beam.DifferentData.TOpoznione * 365 - beam.Beam.DifferentData.TsOpoznione), 0.3);
            fi8T0    = fi0 * betaC8T0;

            deltaSigmaPCSR = (epsilonCs * beam.Beam.PrestressingSteelParameters.EP * 1000 + 0.8 * DeltaSigmaPr + beam.CrossSectionCalculatedCharacteristics.AlfaP * fi8T0 * (sigmaCg + sigmaCp0))
                             / (1 + beam.CrossSectionCalculatedCharacteristics.AlfaP * (beam.CrossSectionCalculatedCharacteristics.AreaAp / beam.CrossSectionCalculatedCharacteristics.Area)
                                * (1 + (beam.CrossSectionCalculatedCharacteristics.AreaAcs / beam.CrossSectionCalculatedCharacteristics.IXCS) * Math.Pow(beam.AdHocLosses.Zcp, 2))
                                * (1 + 0.8 * fi8T0));

            deltaPt = beam.CrossSectionCalculatedCharacteristics.AreaAp * deltaSigmaPCSR * 0.1;
            pmt     = beam.AdHocLosses.P0 - beam.AdHocLosses.DeltaPel - deltaPt;


            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SigmaCg"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SigmaCp0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SigmaPi"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Mi"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("DeltaSigmaPr"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BetaAsT"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("EpsilonCa8"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("EpsilonCaT"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Kh"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BetaDsTTs"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("EpsilonCd0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("EpsilonCdT"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("EpsilonCs"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("FiRH"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("T0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BetaT0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Fi0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BetaH"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BetaC8T0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Fi8T0"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("DeltaSigmaPCSR"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("DeltaPt"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Pmt"));
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Alfa"));
        }
コード例 #20
0
 public Shear(BeamUnderLoad beam)
 {
     Calculate(beam);
 }
コード例 #21
0
 public TechnologicalLosses(BeamUnderLoad beam)
 {
     Calculate(beam);
 }