public BeamShearResults Calculate(double d, double b, double fck, double n, double powAs, double fyd, double pow, double as1, double vEd, double ctgt = 1) { gammaC = 1.4; gammaS = 1.15; crdc = 0.18 / gammaC; z = 0.9 * d; tgt = 1; k = Math.Min((1 + (Math.Sqrt(200 / d))), 2); romin = Math.Min(0.02, (as1 / (b * d * 0.01))); v = 0.6 - (fck / 250); vMin = 0.035 * (Math.Sqrt(k * k * k * fck)); pom1 = 100 * romin * fck; pom2 = Math.Pow(pom1, 0.333); //vRdc1 = crdc * k * pom2 * b * d * 0.001; //vRdcmin = vMin * b * d * 0.001; vRdc = Math.Max((crdc * k * pom2 * b * d * 0.001), (vMin * b * d * 0.001)); vRdc = Math.Round(vRdc, 2); sRozstaw = Math.Round((n * powAs * fyd * z * 0.01 * ctgt) / (vEd), 2); sRozstawFloor = Math.Floor(sRozstaw); vRds = Math.Round(((n * powAs * fyd * z * 0.01 * ctgt) / (sRozstawFloor)), 2); vRdmax = Math.Round((b * v * (fck / gammaC) * z * 0.001) / (ctgt + tgt), 2); roStrzemion = Math.Round((n * powAs) / (sRozstawFloor * b * 0.01), 3); roMin = Math.Round(0.08 * ((Math.Pow(fck, 0.5)) / (fyd * gammaS)), 3); BeamShearResults result = new BeamShearResults { VRdc = vRdc, VRds = vRds, VRdmax = vRdmax, RoStrzemion = roStrzemion, RoMin = roMin, RozstawFloor = sRozstawFloor, }; return(result); }
private void ButtonScinanieObliczenia_Click(object sender, EventArgs e) { //otrzymanie wartości z pól var b = double.Parse(TextBoxShearB.Text); var h = double.Parse(TextBoxShearH.Text); var a = double.Parse(TextBoxShearA.Text); var aS = double.Parse(TextBoxShearAs.Text); var v = Math.Abs(double.Parse(TextBoxShearV.Text)); var n = double.Parse(ComboBoxShearN.Text); var fi = double.Parse(ComboBoxShearFi.Text); string nameConcrete = ComboBoxShearConcrete.Text; string nameSteele = ComboBoxShearSteele.Text; double d, pow, powAs, fck, fcd, fyd, fyk, fctm; double vRdc, vRds, vRdmax, roStrzemion, roMin, sRozstawFloor; //string warning; var ctgt = 1; // Cotangens teta od 1 do 2 d = (h - a); pow = b * h / 100; powAs = Math.Round((fi * fi * 3.14 / 400), 3); d = (h - a); pow = b * h / 100; //Obiekty betonu i stali oraz parametry var concrete = new ConcreteProps(nameConcrete); var steele = new SteeleProps(nameSteele); //wytrzymalosci dla betonu betonu var concretePropResult = concrete.ConcretePropResult(); fctm = concretePropResult.Fctm; fck = concretePropResult.Fck; //wytrzymalosci dla stali var steelePropResult = steele.StleelePropResult(); fyk = steelePropResult.Fyk; fcd = Math.Round((fck / 1.4), 2); fyd = Math.Round((fyk / 1.15), 2); //obiekty BeamShear BeamShearCalculation bsc = new BeamShearCalculation(); BeamShearResults result = bsc.Calculate(d, b, fck, n, powAs, fyd, pow, aS, v); vRdc = result.VRdc; vRds = result.VRds; vRdmax = result.VRdmax; roStrzemion = result.RoStrzemion; roMin = result.RoMin; sRozstawFloor = result.RozstawFloor; labelShearCtgt.Text = ctgt + ""; labelShearVrdc.Text = vRdc + ""; labelShearVrds.Text = vRds + ""; labelShearVrdmax.Text = vRdmax + ""; labelShearFcd.Text = fcd + ""; labelShearFyd.Text = fyd + ""; labelShearRomin.Text = roMin + ""; labelShearRow.Text = roStrzemion + ""; if (v < vRdc) { labelShearWarn.Text = "Ved < Vrdc : strzemiona dobrać konstrukcyjnie"; labelShearResult.Text = "konstrukcyjne"; } else { labelShearWarn.Text = ""; labelShearResult.Text = "Φ" + fi + " co: " + sRozstawFloor + " cm"; } }