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(); }
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; } }
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()); }
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(); }