private void Calc_μSd() { var lim = TabeleEC2.KofZaProracunPravougaonogPresekaEC.GetLimitKofZaProracunPravougaonogPresekaEC(beton); if (TipDim == TipDimenzionisanja.Vezano) { μSd = TabeleEC2.KofZaProracunPravougaonogPresekaEC.GetμSd(Msds, b, d, beton.fcd / 10); Kof = TabeleEC2.KofZaProracunPravougaonogPresekaEC.Get_Kof_From_μ(μSd); Steper.AddStep($"μSd=Msd[KNcm] / (b[cm] * d[cm]^2 * fcd[KNcm])= {Math.Round(Kof.μRd,3)}", "Bezdimenziona vrednost Momenta savijanja"); } else { Steper.AddStep($"μSd= {Math.Round(Kof.μRd,3)}", "Bezdimenziona vrednost Momenta savijanja odabrana za slobodno armiranje"); } if (μSd >= lim.μRd) { Steper.AddStep($"μSd ≥ μlim= {Math.Round(lim.μRd,3)}; => μSd={Math.Round(lim.μRd,3)}", "Dvojno armiranje"); Kof = lim; } else { Steper.AddStep($"μSd < μlim= {Math.Round(lim.μRd,3)}; => μSd={Math.Round(Kof.μRd,3)}", "Dvojno armiranje"); } Steper.AddStep($"{nameof(Kof.εc)}= {Math.Round(Kof.εc,2)}[‰]; {nameof(Kof.εs1)}= {Math.Round(Kof.εs1,3)}[‰]; {nameof(Kof.ω)}= {Math.Round(Kof.ω,3)}; {nameof(Kof.ζ)}= {Math.Round(Kof.ζ,3)}", "Diletacija po betonu i armaturi i mehanicki kofeficijen armiranja"); }
private void Calc_As() { As1_pot = Mrd_limit * 100 / (Kof.ζ * d * armatura.fyd) - (Nsd / armatura.fyd) + (Msds * 100 - Mrd_limit * 100) / ((d - d2) * armatura.fyd); As2_pot = (Msds * 100 - Mrd_limit * 100) / ((d - d2) * armatura.fyd); Steper.AddStep($"As1=Mrd_limit/(ζ*d*fyd)-Nsd/fyd+(Mrd_limit-Msds)/((d-d2)*fyd)= {Math.Round(Mrd_limit * 100,2)} / ({Math.Round(Kof.ζ,3)} * {d} * {Math.Round(armatura.fyd,2)}) - ({Math.Round(Nsd,2)} / {Math.Round(armatura.fyd,2)}) + ({Math.Round(Msds * 100,2)} - {Math.Round(Mrd_limit * 100,2)}) / (({d} - {d2}) * {Math.Round(armatura.fyd,2)})= {Math.Round(As1_pot,2)}[cm2];", "Potrebna armatura u zoni zatezanja"); Steper.AddStep($"As2=(Msds - Mrd_limit) / ((d - d2) * fyd)= ({Math.Round(Msds * 100,2)} - {Math.Round(Mrd_limit * 100,2)}) / (({d} - {d2}) * {Math.Round(armatura.fyd,2)})= {Math.Round(As2_pot,2)} [cm2]", "Potrebna armatura u zoni pritiska"); }
private void Calc_MsdNsd() { if (Msd != 0) { return; } Msd = 1.35 * Mg + 1.5 * Mq; Steper.AddStep($"Msd=1.35*Mg[KNm]+1.5*Mq[KNm]={Math.Round(Msd,2)}[KNm];", "Racunski momenat savijanja"); Nsd = 1.35 * Ng + 1.5 * Nq; Steper.AddStep($"Nsd=1.35*Ng[KNm]+1.5*Nq[KNm]={Math.Round(Nsd,2)}[KNm];", "Racunska normalna sila"); }
private void Calc_As_min() { As1_pot = 0.26 * beton.fctm / armatura.fyd * d * b; if (As1_pot < beton.ρ * b * d) { As1_pot = beton.ρ * b * d; } Steper.AddStep($"As1=Mrd_limit/(ζ*d*fcd)-Nsd/fyd+(Mrd_limit-Msds)/((d-d2)*fyd)= {Mrd_limit * 100} / ({Kof.ζ} * {d} * {armatura.fyd}) - ({Nsd} / {armatura.fyd}) + ({Msds * 100} - {Mrd_limit * 100}) / (({d} - {d2}) * {armatura.fyd})= {As1_pot}[cm2];", "Potrebna armatura u zoni zatezanja"); Steper.AddStep($"As2 = (Msds - Mrd_limit) / ((d - d2) * fyd)= ({Msds * 100} - {Mrd_limit * 100}) / (({d} - {d2}) * {armatura.fyd})", "Potrebna armatura u zoni pritiska"); }
private void As_validation() { ρ = (Math.Round(As1_pot, 2) + Math.Round(As2_pot, 2)) / b / h; Steper.AddStep($"ρ = (As1 + As2) / (b * h)= ({Math.Round(As1_pot,2)} + {Math.Round(As2_pot,2)}) / {b} / {h}= {ρ}; ρ_max= {Math.Round(ρ_max,2)}", "Provera maksimalnog procenta armiranja"); }
private void Calc_Mrd_lim() { Mrd_limit = (Kof.μRd * b * Math.Pow(d, 2) * beton.fcd / 10) / 100; Steper.AddStep($"Mrd_limit=μSd*b*d^2+fcd= {Math.Round(Kof.μRd,3)}*{b}*{d}^2*{Math.Round(beton.fcd / 10,2)}= {Math.Round(Mrd_limit,2) *100}[KNcm]= {Math.Round(Mrd_limit,2)}[KNm];", "Maksimalni moment savijanja koji jednostruko armirani presek moze da prihvati"); }
private void Calc_Msds() { Msds = Msd + Nsd * (h / 100 / 2 - d1 / 100); Steper.AddStep($"Msds=Msd[KNm]+Nsd[KN]*(h[m]/2-d1[m])={Math.Round(Msd,2)}+{Math.Round(Nsd,2)}*({h / 100 / 2}-{d1 / 100})[KNm]= {Math.Round(Msds,2)}[KNm];", "Racunski momenat savijanja u odnosu na teziste zategnute armature"); }
private void Calc_f() { Steper.AddStep($"fcd=0.85*fck/1.5=0.85*{beton.fck/10}[KNcm]/1.5= {Math.Round((beton.fcd/10),2)}[KNcm]", "Racunska cvrstoca pri pritisku betona"); Steper.AddStep($"fyd=fyk/1.15={Math.Round(armatura.fyk,2)}[KNcm]/1.15= {Math.Round(armatura.fyd,2)}[KNcm]", "Racunska vrednost granice razvlacenja armature"); }