Beispiel #1
0
        public TransverzalneSileEC2(
            double b,
            double h,
            BetonModelEC beton,
            ReinforcementTypeModelEC armatura,
            ReinforcementModelEC As1_model,
            double Vg,
            double Vq,
            double d1,
            double Ng = 0,
            double Nq = 0
            )
        {
            InitValidations(b, h, beton, armatura, As1_model, d1);
            this.b        = b;
            this.h        = h;
            this.beton    = beton;
            this.armatura = armatura;
            as1_Model     = As1_model;
            As1           = as1_Model.cm2_total;
            this.Vg       = Vg;
            this.Vq       = Vq;
            this.d1       = d1;
            this.Ng       = Ng;
            this.Nq       = Nq;

            Validations();
            Calc_Vrd_c();

            //if (Errors.Count() != 0)
            //return;
            GetS();
            GetSp();
            GetListOfM();

            if (Ved <= Vrd_c && Errors.Count() == 0)
            {
                minArmatura();
                CalAdditionalTransverseReinforcement();
            }
        }
        public SavijanjePravougaonogPresekaEC2_V2(double b, double h,
                                                  double d1, double d2,
                                                  BetonModelEC beton, ReinforcementTypeModelEC armatura,
                                                  double Msd, double Nsd = 0, KofZaProracunPravougaonogPresekaModelEC kof = null)
        {
            this.b = b;
            this.h = h;
            if (h == 0)
            {
                TipDim = TipDimenzionisanja.Slobodno;
            }
            this.d1       = d1;
            this.d2       = d2;
            this.beton    = beton;
            this.armatura = armatura;
            this.Msd      = Msd;
            this.Nsd      = Nsd;
            Kof           = kof;

            InitValidation();
            //Calc();
        }
Beispiel #3
0
 public SavijanjeTPresekaEC2(
     double b_w, double b_eff,
     double h, double h_f,
     double d1, double Mg,
     double Mq, BetonModelEC beton,
     ReinforcementTypeModelEC armatura,
     double d2 = 0, double Ng = 0,
     double Nq = 0,
     KofZaProracunPravougaonogPresekaModelEC kof = null)
 {
     this.b_w   = b_w;
     this.b_eff = b_eff;
     this.h     = h;
     this.h_f   = h_f;
     this.d1    = d1;
     this.d2    = d2;
     this.Msd   = 1.35 * Mg + 1.5 * Mq;
     this.Nsd   = 1.35 * Ng + 1.5 * Nq;
     this.Msds  = Msd + Nsd * (h / 100 / 2 - d1 / 100);
     if (kof != null)
     {
         KofZaProracunPravougaonogPreseka = kof; μSd = kof.μRd;
     }
 }
Beispiel #4
0
        public TransversalReinf_EC2ViewModel(double Vg, double Vq, double b, double h, double d1, ReinforcementTypeModelEC armatura, BetonModelEC beton, ReinforcementModelEC Longitud_As1)
        {
            this.Vg           = Vg;
            this.Vq           = Vq;
            this.b            = b;
            this.h            = h;
            this.d1           = d1;
            this.armatura     = armatura;
            this.beton        = beton;
            this.Longitud_As1 = Longitud_As1;

            CalculateCommand    = new CommandHandler(async() => await Calculate());
            CalculateArmCommand = new CommandHandler(async() => await CalculateArm());
        }
Beispiel #5
0
        private static void ec2_TacnPostupak()
        {
            double Msd = 180;
            double Mu;
            double Du    = 0;
            double b_eff = 20;
            double b_w   = 20;
            double h_f   = 15;
            double d     = 44;
            double s;
            double δ  = h_f / d;
            double Nu = 0;
            double bi = 0;

            BetonModelEC             beton = BetonClasses.GetBetonClassListEC().Single(b => b.name == "C25/30");
            ReinforcementTypeModelEC arm   = ReinforcementType.GetArmatura().Single(a => a.name == "B500B");
            //var fcd = 2.05;
            double As = (Du - Nu) / arm.fyd;

            KofZaProracunPravougaonogPresekaModelEC kof1 = new KofZaProracunPravougaonogPresekaModelEC();
            KofZaProracunPravougaonogPresekaModelEC kof2 = new KofZaProracunPravougaonogPresekaModelEC();

            bool done = false;

            s = δ;
            int i        = 0;
            var x        = 0.0;
            var s_add    = 0.1;
            var μSd      = (Msd * 100) / (b_eff * Math.Pow(d, 2) * beton.fcd / 10);
            var kof_test = KofZaProracunPravougaonogPresekaEC.Get_Kof_From_μ(μSd);

            if (kof_test.ξ <= s)
            {
                var kof = kof_test;
                x  = kof.ξ * d;
                As = (Msd * 100) / (kof.ζ * d * arm.fyd);
            }
            do
            {
                i++;
                kof1.SetByξ(s);
                x = s * d;
                var Du1 = kof1.αv * b_eff * s * d * beton.fcd / 10;
                var zb1 = d * (1 - kof1.ka * s);
                var Ebd = ((s - δ) / s) * kof1.εc;
                kof2.SetByEcEs1(Ebd, 20);

                var Du2 = kof2.αv * (b_eff - b_w) * (x - h_f) * beton.fcd / 10;
                var zb2 = d - h_f - kof2.ka * (x - h_f);

                Mu = Du1 * zb1 / 100 - Du2 * zb2 / 100;

                if (i > 30)
                {
                    break;
                }


                if (Mu * 1.0005 < Msd)
                {
                    s += s_add; continue;
                }
                if (Mu > Msd * 1.001)
                {
                    s_add = s_add / 2; s -= s_add; continue;
                }

                if (Mu * 1.0005 >= Msd && Mu <= Msd * 1.001)
                {
                    Du = Du1 - Du2; As = (Du - Nu) / arm.fyd; done = true;
                }
            } while (!done);
            if (i > 30 && done == false)
            {
                Console.WriteLine("Can't calculate!");
                Console.ReadKey();
                return;
            }
            bi = Mu / (kof1.μRd * Math.Pow(d, 2) * beton.fcd / 10);
            As = (Du - Nu) / arm.fyd;
            x  = kof1.ξ * d;
            Console.WriteLine("n= " + i);
            Console.WriteLine("As= " + As);
            Console.WriteLine("x= " + x);
            Console.WriteLine("Mu= " + Mu);
            Console.ReadKey();

            GC.Collect();
        }