Ejemplo n.º 1
0
        public void Calculate_Program(string file_name)
        {
            frmCurve f_c = null;

            StreamWriter sw = new StreamWriter(new FileStream(file_name, FileMode.Create));


            #region TechSOFT Banner
            sw.WriteLine();
            sw.WriteLine();
            sw.WriteLine("\t\t**********************************************");
            sw.WriteLine("\t\t*                 ASTRA Pro                  *");
            sw.WriteLine("\t\t*        TechSOFT Engineering Services       *");
            sw.WriteLine("\t\t*                                            *");
            sw.WriteLine("\t\t*           DESIGN OF DECK SLAB              *");
            sw.WriteLine("\t\t*          FOR T-BEAM RCC BRIDGE             *");
            sw.WriteLine("\t\t**********************************************");
            sw.WriteLine("\t\t----------------------------------------------");
            sw.WriteLine("\t\tTHIS RESULT CREATED ON " + System.DateTime.Now.ToString("dd.MM.yyyy  AT HH:mm:ss") + " ");
            sw.WriteLine("\t\t----------------------------------------------");

            #endregion


            try
            {
                #region USER DATA

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("USER'S DATA");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine(" Panel Length [L]= {0} m", L, "Marked as (C) in the Drawing");
                sw.WriteLine(" Spacing of main Girders [B] = {0} m", B, "Marked as (A) in the Drawing");

                //sw.WriteLine(" Width of Carriage way = {0:f3} m", width_carrage_way);
                //sw.WriteLine(" Effective Span of Tee Beam = {0} m", effe_span);
                sw.WriteLine(" Concrete Grade = M {0:f0} ", concrete_grade);
                sw.WriteLine(" Steel Grade = Fe {0:f0} ", steel_grade);
                sw.WriteLine(" Permissible Stress in Concrete [σ_cb] = {0} N/sq.m", sigma_cb);
                sw.WriteLine(" Permissible Stress in Steel [σ_st] = {0} N/sq.m", sigma_st);
                //sw.WriteLine(" No. Of Main girders = {0:f0} ", no_main_girder);
                //sw.WriteLine(" Width of Cross Girders = {0} mm {1,40}", width_cross_girders, "Marked as (D) in the Drawing");
                //sw.WriteLine(" Width of Long Girders = {0} mm {1,40}", width_long_girders, "Marked as (B) in the Drawing");
                sw.WriteLine(" Modular ratio [m] = {0} ", m);
                sw.WriteLine(" Lever arm factor [j] = {0} ", j);
                sw.WriteLine(" Moment factor [Q] = {0} ", Q);

                sw.WriteLine(" Minimum Cover = {0:f3} mm", minimum_cover);

                sw.WriteLine(" Load = {0:f3} kN", load);
                sw.WriteLine(" Width of Load [a]= {0:f3} m", width);
                sw.WriteLine(" Length of Load [b]= {0:f3} m", length);
                sw.WriteLine(" Impact Factor [IF]= {0:f3} ", impact_factor);
                sw.WriteLine(" Continuity Factor [CF]= {0:f3} ", continuity_factor);
                sw.WriteLine(" Constant [µ] = {0:f3} ", mu);

                sw.WriteLine(" Thickness of concrete Deck Slab [Ds] = {0} mm ", Ds, "Marked as (F) in the Drawing");
                sw.WriteLine(" Unit weight of concrete Deck Slab [γ_c]= {0} kN/cu.m", gamma_c);
                sw.WriteLine(" Thickness of Asphalt Wearing Course [Dwc] = {0} mm ", Dwc, "Marked as (E) in the Drawing");
                sw.WriteLine(" Unit weight of Asphalt Wearing Course [γ_wc] = {0} kN/cu.m", gamma_wc);

                sw.WriteLine();
                sw.WriteLine();
                #endregion

                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("DESIGN CALCULATIONS");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 1 : DEAD LOAD ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine("Self weight of slab = Ds * γ_c = {0} * {1} = {2} kN/sq.m.",
                             (Ds / 1000),
                             gamma_c,
                             self_weight_slab);
                sw.WriteLine();
                sw.WriteLine("Self weight of wearing course = Dwc * γ_wc ");

                sw.WriteLine("                              = {0} * {1}", (Dwc / 1000), gamma_wc);
                sw.WriteLine("                              = {0} kN/sq.m.", self_weight_wearing_cource);

                sw.WriteLine();
                sw.WriteLine("            Total weight = tw = {0} + {1}", self_weight_slab, self_weight_wearing_cource);
                sw.WriteLine("                              = {0} kN/sq.m.", tw);

                double wd;
                wd = B * L * tw;
                sw.WriteLine();
                sw.WriteLine("Total Permanent Load on Slab Panel = Wd = B * L * tw");
                sw.WriteLine("                                   = {0} * {1} * {2}",
                             B,
                             L,
                             tw);
                sw.WriteLine("                                   = {0} kN", wd);

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Full slab Panel is Loaded with uniformly distributed load");
                double k;
                k = B / L;

                sw.WriteLine("k = B / L = {0:f2} / {1:f2} = {2:f2}",
                             B,
                             L,
                             k);
                sw.WriteLine("1/k = 1 / {0} = {1}",
                             k,
                             (1 / k));

                f_c    = new frmCurve(k, 0.0, 0.0, LoadType.FullyLoad);
                f_c.m1 = 0.045;
                f_c.m2 = 0.004;
                f_c.ShowDialog();
                double m1, m2, MB1, ML1;

                m1 = f_c.m1;
                m2 = f_c.m2;
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Select m1 and m2 from Pigeaud's curve");
                sw.WriteLine(" m1 = {0}    and      m2 = {1}", m1, m2);
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("The Permanent Load Bending Moments are obtained by");
                sw.WriteLine("applying continuity Factor (CF) as, ");
                sw.WriteLine();

                MB1 = wd * (m1 + mu * m2);
                sw.WriteLine("MB1 = wd * (m1 + mu * m2)");

                sw.WriteLine("    = {0:f3} * ({1:f3} + {2:f3} * {3:f3})", wd, m1, mu, m2);
                MB1 = continuity_factor * MB1;

                sw.WriteLine("    = {0:f3} kN-m", MB1);
                sw.WriteLine();

                sw.WriteLine("Taking Continuity into effect = MB1 = {0:f3} * {1:f3}", continuity_factor, MB1);
                sw.WriteLine("                                    = {0:f3} ", continuity_factor, MB1);

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("ML1 = (CF * Wd) * (m2 + µm1)");

                sw.WriteLine("    = ({0:f2} * {1:f2}) * ({2:f4} + {3:f4} * {4:f4})",
                             continuity_factor,
                             wd,
                             m2,
                             mu,
                             m1);
                ML1 = (continuity_factor * wd) * (m2 + mu * m1);
                sw.WriteLine("   = {0:f3} kN-m", ML1);

                //sw.WriteLine();
                //sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 2 : Calculations for Bending Moments for Imposed Load ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();

                //double B = 2.5;
                //double L = 4.0;

                //m1 0.0049  0.081  m2 0.015  0.022
                //m1 0.049  0.081  m2 0.015  0.022
                double _k = B / L;
                sw.WriteLine(" B = {0:f3} m.", B);
                sw.WriteLine(" L = {0:f3} m.", L);
                sw.WriteLine();
                sw.WriteLine(" k = B / L = {0:f2} / {1:f2} = {2:f2} m.",
                             B,
                             L,
                             _k);
                double a = 0.84;
                double b = 4.57;

                double u, v;
                u = a + 2.0 * (Dwc / 1000.0);
                sw.WriteLine();
                sw.WriteLine("u = a + 2 * Dwc = {0} + 2 * {1} = {2:f2} m",
                             a,
                             (Dwc / 1000),
                             u);

                v = b + 2.0 * (Dwc / 1000.0);
                sw.WriteLine("v = b + 2 * Dwc = {0} + 2 * {1} = {2:f2} m",
                             b,
                             (Dwc / 1000),
                             v);
                double _v = 0.0;
                _v = v;
                if (v > L)
                {
                    v = L;
                }

                double u_by_B = u / B;
                double v_by_L = v / L;

                if (k < 0.4)
                {
                    k = 0.4;
                }
                if (k > 1.0)
                {
                    k = 1.0;
                }
                f_c    = new frmCurve(k, u_by_B, v_by_L, LoadType.PartialLoad);
                f_c.m1 = 0.085;
                f_c.m2 = 0.009;
                f_c.ShowDialog();
                double _m1, _m2;
                _m1 = f_c.m1;
                _m2 = f_c.m2;

                sw.WriteLine();
                sw.WriteLine("u/B = {0} / {1} = {2:f2}",
                             u,
                             B,
                             u_by_B);
                sw.WriteLine("v/L = {0} / {1} = {2:f2}",
                             v,
                             L,
                             v_by_L);
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Select m1 & m2 from Pigeaud's curves");
                sw.WriteLine("Corresponding to k = {0:f3}, u/B = {1:f2} and v/L = {2:f2}",
                             _k,
                             u_by_B,
                             v_by_L);
                sw.WriteLine("m1 = {0} and m2 = {1}",
                             _m1,
                             _m2);

                double total_impact_load;
                total_impact_load = impact_factor * load;

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Total Load per track including impact");
                sw.WriteLine("   = IF * load");
                sw.WriteLine("   = {0:f2} * {1:f2}", impact_factor, load);
                sw.WriteLine("   = {0:f2} N", total_impact_load);

                double w2 = total_impact_load * (L / _v);
                sw.WriteLine();
                sw.WriteLine("Effective load on slab Panel = w2");
                sw.WriteLine("    = {0:f2} * ({1:f2}/{2:f2})", total_impact_load, L, b);
                sw.WriteLine("    = {0:f2} kN", w2);
                sw.WriteLine();
                sw.WriteLine("Moment along Shorter span ");

                double _MB = w2 * (_m1 + mu * _m2);
                sw.WriteLine("       = MB2 = w2 * (m1 + µ*m2)");
                sw.WriteLine("       = {0:f3} * ({1:f3} + {2:f3}*{3:f3}", w2, _m1, mu, _m2);
                sw.WriteLine("       = {0:f3} kN", _MB);

                double _ML = w2 * (_m2 + mu * _m1);
                sw.WriteLine();
                sw.WriteLine("       = ML2 = w2 * (m2 + µ*m1)");
                sw.WriteLine("       = {0:f3} * ({1:f3} + {2:f3} * {3:f3}", w2, m2, mu, m1);
                sw.WriteLine("       = {0:f3} kN", _ML);

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("The Slab is designed as Continuous,");
                sw.WriteLine("The Imposed Load Bending Moment are obtained");
                sw.WriteLine("by applying Continuity Factor(CF) as");
                sw.WriteLine();
                sw.WriteLine("MB2 = CF * MB2 = {0:f3} * {1:f3} = {2:f3} kN-m",
                             continuity_factor, _MB,
                             (continuity_factor * _MB));
                _MB = continuity_factor * _MB;

                sw.WriteLine("ML2 = CF * ML2 = {0:f3} * {1:f3} = {2:f3} kN-m",
                             continuity_factor, _ML,
                             (continuity_factor * _ML));
                _ML = continuity_factor * _ML;

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Final Design Bending Moments for the Slab ");
                sw.WriteLine("Short Span B.N. = MB = {0:f3} + {1:f3} = {2:f3} kN-m",
                             MB1, _MB,
                             (MB1 + _MB));
                MB1 += _MB;
                sw.WriteLine("Long Span B.M. = ML = {0:f3} + {1:f3} = {2:f3} kN-m",
                             ML1, _ML,
                             (ML1 + _ML));
                ML1 += _ML;
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 3 : Calculations for Effective Depth ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();

                double d;

                d = (MB1 * 10E5) / (Q * 1000);
                d = Math.Sqrt(d);

                sw.WriteLine("d = √((MB * 10E+5)/(Q * 1000))");
                sw.WriteLine("  = √(({0:f3} * 10E+5)/({1:f3} * 1000)) ", MB1, Q);
                sw.WriteLine("  = {0:f3} mm", d);

                d = (int)(d / 10.0);
                d = d + 1;
                d = d * 10;

                sw.WriteLine("  = {0:f3} mm", d);

                double d1, d2;
                d1 = 12;

                //sw.WriteLine();
                //sw.WriteLine("Using {0:f0} mm dia bars", d1);
                double overall_depth = 0.0;
                overall_depth = d + minimum_cover;

                sw.WriteLine();
                sw.WriteLine("Overall depth of Deck slab = {0:f3} + {1:f3}", d, minimum_cover);

                sw.WriteLine("                           = {0:f3} mm", overall_depth);

                //double _over_dep;
                //_over_dep = overall_depth / 100;
                //_over_dep = (double)(int)_over_dep;
                sw.WriteLine();
                //sw.WriteLine("{0:f3} / 100 = {1:f3} = {2:f0}",
                //    overall_depth,
                //    (overall_depth / 100),
                //    _over_dep);

                //double _o_depth;
                //_o_depth = _over_dep * 100 + 50;
                sw.WriteLine();
                if (Ds > overall_depth)
                {
                    sw.WriteLine("Provided Overall Depth = {0:f2} > {1:f2}, So OK", Ds, overall_depth);
                }
                if (Ds < overall_depth)
                {
                    sw.WriteLine("Provided Overall Depth = {0:f2} > {1:f2}, So NOT OK", Ds, overall_depth);
                }

                sw.WriteLine();

                double eff_depth;
                eff_depth = Ds - minimum_cover;
                sw.WriteLine();
                sw.WriteLine("Provided Effective depth = d1 = {0:f3} - {1:f3} = {2:f3} mm",
                             Ds,
                             minimum_cover,
                             eff_depth);

                //double adopt_eff_depth;
                //adopt_eff_depth = (int)(eff_depth / 10);
                //adopt_eff_depth *= 10;

                //sw.WriteLine();
                //sw.WriteLine("Adopt Eff. Depth  = {0:f3} mm", adopt_eff_depth);

                double Ast1 = (MB1 * 10E5) / (sigma_st * j * eff_depth);
                //S = S / 10;
                //S = (int)S;

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 4 : Calculations for Reinforcement along shorter span ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine("Short Span Moment = MB = {0:f3} kN-m", MB1);
                sw.WriteLine();
                sw.WriteLine("Ast1 = (Mb * 10E5)/(σ_st * j * d)");
                sw.WriteLine("     = ({0:f3} * 10E5)/({1:f3} * {2:f3}* {3:f3})", MB1, sigma_st, j, eff_depth);
                sw.WriteLine("     = {0:f0} sq.mm", Ast1);
                double S = (1000 * (Math.PI * d1 * d1 / 4)) / Ast1;
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("spacing of Bars = S = (1000 * (π * 12 * 12/4))/ Ast1");
                sw.WriteLine("                    = {0:f0} mm", S);
                sw.WriteLine("                    = {0:f0} /10 = {1:f3} = {1:f0}", S, (S / 10.0));

                if (S > 145)
                {
                    S = 150;
                }
                else
                {
                    S = (int)(S / 10.0);
                    S = (S * 10.0);
                }
                sw.WriteLine("                    = {0:f0} * 10 = {1:f0} mm", (S / 10.0), S);

                sw.WriteLine();
                sw.WriteLine("Adopt T12 bars @{0:f0} mm c/c", S, "Marked as (1) in the Drawing");

                _sp1 = S;
                _bd1 = 12;



                d2 = 10;
                double res_eff_depth;
                res_eff_depth = eff_depth - (d1 / 2) - (d2 / 2);
                double Ast2;
                Ast2 = (ML1 * 10E5) / (sigma_st * j * res_eff_depth);

                //S = (1000.0 * (Math.PI * 12.0 * 12.0 / 4.0)) / Ast2;
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 5 : Calculations for Reinforcement along longer span ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine("Use 10 mm dia bars,");
                sw.WriteLine("Respective effective depth = {0} - {1} = {2} mm",
                             eff_depth,
                             (d2 / 2).ToString("0"),
                             res_eff_depth);

                sw.WriteLine();
                sw.WriteLine("Ast2 = (ML * 10E5)/(σ_st * j* d)");
                sw.WriteLine("     = ({0:f3} * 10E5)/({1:f2} * {2:f2}* {3:f2})",
                             ML1, sigma_st, j, res_eff_depth);
                sw.WriteLine("     = {0:f2} sq.mm", Ast2);
                sw.WriteLine();
                sw.WriteLine("Minimum Required Reinforcement = 0.12% of Slab Section");
                sw.WriteLine("                               = (0.12/100)*({0}*1000) of Slab Section", Ds);


                double val = (0.12 / 100) * (Ds * 1000);
                sw.WriteLine("                               = {0:f3} sq.mm", val);
                sw.WriteLine();
                sw.WriteLine();


                double spacing_bars;
                spacing_bars = (1000 * Math.PI * d2 * d2) / (4 * Ast2);



                sw.WriteLine();
                sw.WriteLine("spacing of Bars = S = (1000 * (π * 10 * 10/4))/ Ast2");
                sw.WriteLine("                    = {0:f3} mm", spacing_bars);
                //sw.WriteLine("                    = {0:f3}/10 = {1:f3} = {1:f0} ", spacing_bars,
                //(spacing_bars/10));

                double _spacing_bars = (int)(spacing_bars / 10);
                _spacing_bars = _spacing_bars * 10;

                sw.WriteLine("                    = {0:f0} mm", _spacing_bars);



                if (_spacing_bars > 200)
                {
                    _spacing_bars = 200;
                }
                else
                {
                    _spacing_bars = (int)(_spacing_bars / 10.0);
                    _spacing_bars = _spacing_bars * 10;
                }

                _sp2 = _spacing_bars;
                _bd2 = 10;
                sw.WriteLine();
                sw.WriteLine("Provide T10 bars @{0:f0} mm c/c at Top & Bottom", _spacing_bars, "Marked as (2) in the Drawing");
                sw.WriteLine();
                Ast2 = (Math.PI * 10 * 10 / 4.0) * (1000 / S);
                sw.WriteLine("Ast2 = (π * 10 * 10/4)* (1000/{0})", S);
                sw.WriteLine("     = {0:f3} sq.mm", Ast2);
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("---------------------------------------------------------------------------");
                sw.WriteLine("---------------------       END OF REPORT        --------------------------");
                sw.WriteLine("---------------------------------------------------------------------------");
            }
            catch (Exception ex)
            {
            }
            finally
            {
                sw.Flush();
                sw.Close();
            }
        }
Ejemplo n.º 2
0
        public void Calculate_Program()
        {
            frmCurve     f_c = null;
            StreamWriter sw  = new StreamWriter(new FileStream(rep_file_name, FileMode.Create));

            try
            {
                #region TechSOFT Banner
                sw.WriteLine("\t\t***********************************************");
                sw.WriteLine("\t\t*            ASTRA Pro Release 21              *");
                sw.WriteLine("\t\t*        TechSOFT Engineering Services        *");
                sw.WriteLine("\t\t*                                             *");
                sw.WriteLine("\t\t*      DESIGN OF HYDRAULIC CALCULATIONS       *");
                sw.WriteLine("\t\t*         FOR RCC BRIDGE FOUNDATION           *");
                sw.WriteLine("\t\t***********************************************");
                sw.WriteLine("\t\t----------------------------------------------");
                sw.WriteLine("\t\tTHIS RESULT CREATED ON " + System.DateTime.Now.ToString("dd.MM.yyyy  AT HH:mm:ss") + " ");
                sw.WriteLine("\t\t----------------------------------------------");

                #endregion

                #region USER DATA

                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("USER'S DATA");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine("High Flood Level [HFL] = {0} m", HFL);
                sw.WriteLine("Low Water Level [LWL] = {0} m", LWL);
                sw.WriteLine("Lowest Bed Level [LBL] = {0} m", LBL);
                sw.WriteLine("Scour Depth Observed [SDO] = {0} m", SDO);
                sw.WriteLine("Oberved Velocity [V1] = {0} m/sec", V1);
                sw.WriteLine("Slope of River [S] = {0}", S);
                sw.WriteLine("Value of n = {0}", n);
                sw.WriteLine("Factor for Discharge for Foundation Depth [F1] = {0}", F1);
                sw.WriteLine("Proposed Water way [L] = {0}", L);
                sw.WriteLine("Silt Factor [Ksb] = {0}", Ksb);
                sw.WriteLine("Factor for Foundation depth over Scour Depth [F2] = {0}", F2);
                #endregion

                #region DESIGN CALCULATIONS
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("DESIGN CALCULATIONS");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();
                #endregion



                #region STEP 1
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 1 : ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();

                //sw.WriteLine("{0,5:f3} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",


                sw.WriteLine("{0,6:f3} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "SL. N", "Distance from", "Reduced", "Depth of", "Mean Depth", "Distance", "Diffence", "Sectional", "X*X", "Y*X", "X*X", "Wetted");

                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "Reference Point", "Levels", "Water", "of Water", "Between", "of Levels", "Area", "", "", "+ ", "Perimeter");

                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "to Various", "of the", "from HFL", "between", "two", "between", "Ai=Xi*Di", "", "", "Y*Y", "√(X*X+Y*Y)");

                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "Points across", "River", "to LBL", "two", " adjacent", "two", "(sq.m)", "", "", "", "(m)");

                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "cross Section", "Bed", "", "adjacent", "Points", " adjacent", "", "", "", "", "");

                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "at Bridge", "LBL", "", " Points", "= Xi (m)", "Points", "", "", "", "", "");

                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "Location", "(m)", "", "= Di (m)", "", "= Yi(m)", "", "", "", "", "");

                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "(m)", "", "", "", "", "", "", "", "", "", "");


                sw.WriteLine("-------------------------------------------------------------------------------------------------------------------------------------");
                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K");
                sw.WriteLine("-------------------------------------------------------------------------------------------------------------------------------------");

                sw.WriteLine("-------------------------------------------------------------------------------------------------------------------------------------");
                sw.WriteLine("{0,6} {1,15:f3} {2,10:f3} {3,10:f3} {4,10:f3} {5,10:f3} {6,10:f3} {7,10:f3} {8,10:f3} {9,10:f3} {10,10:f3} {11,10:f3}",
                             "", "A", "B", "(HFL-B)", "(C1+C2)/2", "(A2-A1)", "(B1-B2)", "(E*F)", "(E*E)", "(F*F)", "(H+I)", "√J");
                sw.WriteLine("-------------------------------------------------------------------------------------------------------------------------------------");


                sw.WriteLine();

                for (int i = 0; i < HR_COL.Count; i++)
                {
                    sw.WriteLine(HR_COL[i].ToString());
                }
                sw.WriteLine("-------------------------------------------------------------------------------------------------------------------------------------");
                sw.WriteLine(HR_COL.ToString());
                sw.WriteLine("-------------------------------------------------------------------------------------------------------------------------------------");

                #endregion

                #region STEP 2
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 2  ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Total Area = A = {0} sq.m", A);
                sw.WriteLine();
                sw.WriteLine("Total Perimeter = P = {0} sq.m", P);
                sw.WriteLine();
                sw.WriteLine("Water spread at HFL between the banks");

                lst_dist.Sort();

                double water_spread = lst_dist[lst_dist.Count - 1] - lst_dist[0];
                water_spread = double.Parse(water_spread.ToString("0.000"));
                sw.WriteLine();
                sw.WriteLine("    = {0} - {1}", lst_dist[lst_dist.Count - 1], lst_dist[0]);
                sw.WriteLine("    = {0:f3} m", water_spread);
                sw.WriteLine();

                double R = A / P;
                R = double.Parse(R.ToString("0.000"));

                sw.WriteLine("R = A / P = {0} / {1}", A, P);
                sw.WriteLine();

                double V2 = (1 / n) * Math.Pow(R, (2.0 / 3.0)) * Math.Pow(S, 0.5d);
                V2 = double.Parse(V2.ToString("0.000"));
                sw.WriteLine("Mannings Velocity = V2 = (1/n) * R**(2/3) * S**(1/2)");
                sw.WriteLine("                  = (1/{0}) * {1}^(2/3) * {2}^(1/2)", n, R, S);
                sw.WriteLine("                  = {0} m/sec", V2);
                sw.WriteLine();


                #endregion

                #region STEP 3
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 3 : ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Discharge at Bridge Site");
                sw.WriteLine();

                double area_vel_mth = A * V1;
                area_vel_mth = double.Parse(area_vel_mth.ToString("0.000"));
                sw.WriteLine("Area Velocity method = A * V1");
                sw.WriteLine("                     = {0} * {1}", A, V1);
                sw.WriteLine("                     = {0} cu.m/sec", area_vel_mth);
                sw.WriteLine();

                double Manning_vel_mth = A * V2;
                Manning_vel_mth = double.Parse(Manning_vel_mth.ToString("0.000"));
                sw.WriteLine("Manning's Velocity method = A * V2");
                sw.WriteLine("                          = {0} * {1}", A, V2);
                sw.WriteLine("                          = {0} cu.m/sec", Manning_vel_mth);
                sw.WriteLine();

                double discharge_adopt = Math.Max(area_vel_mth, Manning_vel_mth);
                sw.WriteLine("Discharge Adopted for water way = Q = {0} cu.m/sec", discharge_adopt);
                sw.WriteLine();

                double foundation_dep = F1 * discharge_adopt;
                foundation_dep = double.Parse(foundation_dep.ToString("0.000"));
                sw.WriteLine("Discharge adopted for Foundation depth");
                sw.WriteLine();
                sw.WriteLine("           = F1 * {0}", discharge_adopt);
                sw.WriteLine("           = {0} * {1}", F1, discharge_adopt);
                sw.WriteLine("           = {0} cu.m/sec", foundation_dep);
                sw.WriteLine();

                double Lw = 4.8 * Math.Sqrt(discharge_adopt);
                Lw = double.Parse(Lw.ToString("0.000"));
                sw.WriteLine("Lacy's with = Lw = 4.8 * √Q");
                sw.WriteLine("            = 4.8 * √{0:f3}", discharge_adopt);
                sw.WriteLine("            = {0:f3} m", Lw);
                sw.WriteLine();


                sw.WriteLine("Water spread at H.F.L between Banks = {0:f3} m", water_spread);
                sw.WriteLine();
                sw.WriteLine("Proposed Waterway = L = {0:f3} m", L);
                sw.WriteLine();

                double Db = foundation_dep / L;
                Db = double.Parse(Db.ToString("0.000"));
                sw.WriteLine("Discharge per metre width = Db = {0} / {1}", foundation_dep, L);
                sw.WriteLine("                          = {0} cu.m/sec/m", Db);
                sw.WriteLine();

                double d2 = 1.34 * Math.Pow(((Db * Db) / Ksb), (1.0 / 3.0));
                d2 = double.Parse(d2.ToString("0.000"));
                sw.WriteLine("Mean Scour Depth = d2 = 1.34 * ((Db*Db)/Ksb)^(1/3)");
                sw.WriteLine("                 = 1.34 * (({0}*{0})/{1})^(1/3)", Db, Ksb);
                sw.WriteLine("                 = {0} m", d2);
                sw.WriteLine();

                double D = 1.272 * d2;
                D = double.Parse(D.ToString("0.000"));
                Max_Scour_Depth = D;
                sw.WriteLine("Maximum Scour Depth adopted = D = 1.272 * d2");
                sw.WriteLine("                            = 1.272 * {0}", d2);
                sw.WriteLine("                            = {0} m", D);
                sw.WriteLine();

                #endregion

                #region STEP 4
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 4 : ");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();

                double min_deg_fond_dep = F2 * D;
                min_deg_fond_dep = double.Parse(min_deg_fond_dep.ToString("0.000"));
                sw.WriteLine("Minimum design Foundation depth = F2 * D");
                sw.WriteLine("                                = {0} * {1}", F2, D);
                sw.WriteLine("                                = {0} m", min_deg_fond_dep);
                sw.WriteLine();

                double min_deg_Fond_Lvl = HFL - min_deg_fond_dep;
                min_deg_Fond_Lvl = double.Parse(min_deg_Fond_Lvl.ToString("0.000"));
                sw.WriteLine("Minimum design Foundation Level = HFL - {0}", min_deg_fond_dep);
                sw.WriteLine("                                = {0} - {1}", HFL, min_deg_fond_dep);
                sw.WriteLine("                                = {0} m", min_deg_Fond_Lvl);
                sw.WriteLine();

                double dep = LWL - min_deg_Fond_Lvl;
                dep = double.Parse(dep.ToString("0.000"));
                sw.WriteLine("Depth from LWL to minimum Foundation Level");
                sw.WriteLine("            = LWL - {0}", min_deg_Fond_Lvl);
                sw.WriteLine("            = {0} - {1}", LWL, min_deg_Fond_Lvl);
                sw.WriteLine("            = {0} m", dep);
                sw.WriteLine();

                dep = LBL - min_deg_Fond_Lvl;
                dep = double.Parse(dep.ToString("0.000"));
                min_foundation_Level = dep;
                sw.WriteLine("Depth from LBL to minimum Foundation Level");
                sw.WriteLine("            = LBL - {0}", min_deg_Fond_Lvl);
                sw.WriteLine("            = {0} - {1}", LBL, min_deg_Fond_Lvl);
                sw.WriteLine("            = {0} m", dep);
                sw.WriteLine();
                #endregion

                #region END OF REPORT
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("---------------------------------------------------------------------------");
                sw.WriteLine("---------------------       END OF REPORT        --------------------------");
                sw.WriteLine("---------------------------------------------------------------------------");
                #endregion
            }
            catch (Exception ex) { }
            finally
            {
                sw.Flush();
                sw.Close();
            }
        }
Ejemplo n.º 3
0
        public void Calculate_Program()
        {
            frmCurve     f_c = null;
            StreamWriter sw  = new StreamWriter(new FileStream(rep_file_name, FileMode.Create));

            try
            {
                #region TechSOFT Banner
                sw.WriteLine("\t\t***********************************************");
                sw.WriteLine("\t\t*            ASTRA Pro Release 21              *");
                sw.WriteLine("\t\t*        TechSOFT Engineering Services        *");
                sw.WriteLine("\t\t*                                             *");
                sw.WriteLine("\t\t*       DESIGN OF RCC WELL FOUNDATION         *");
                sw.WriteLine("\t\t*                                             *");
                sw.WriteLine("\t\t***********************************************");
                sw.WriteLine("\t\t----------------------------------------------");
                sw.WriteLine("\t\tTHIS RESULT CREATED ON " + System.DateTime.Now.ToString("dd.MM.yyyy  AT HH:mm:ss") + " ");
                sw.WriteLine("\t\t----------------------------------------------");

                #endregion

                #region USER DATA

                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("USER'S DATA");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine("Internal Diameter of Well [Di] = {0} m           Marked as (Di) in the Drawing", txt_di.Text);
                _inner_dia = Di.ToString() + " m";

                sw.WriteLine("Depth of Well below Bed Level [L] = {0} m        Marked as (L) in the Drawing", txt_L.Text);
                sw.WriteLine("Concrete Grade [fck] = {0} N/sq.mm", txt_fck.Text);
                sw.WriteLine("Steel Grade [fy] = {0} N/sq.mm", txt_fy.Text);
                sw.WriteLine("Diameter of Main Reinforcement Steel bars [D1] = {0} mm", txt_D1.Text);
                sw.WriteLine("Diameter of Main Hoop Steel bars [D2] = {0} mm", txt_D2.Text);
                sw.WriteLine("Depth of Curb [Lc] = {0} mm", txt_Lc.Text);
                sw.WriteLine("Thickness of Curb at bottom [Tc] = {0} mm        Marked as (Tc) in the Drawing", txt_Tc.Text);
                sw.WriteLine();
                sw.WriteLine("{0}  K = {1:f3}", cmb_K.Text, K);
                //sw.WriteLine("K = {0}", K);
                #endregion

                #region DESIGN CALCULATIONS
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("DESIGN CALCULATIONS");
                sw.WriteLine("------------------------------------------------------------");
                #endregion

                #region STEP 1 : THICKNESS OF STEINING
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 1 : THICKNESS OF STEINING");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("Minimum thickness of steining is given by");
                sw.WriteLine();
                sw.WriteLine("    h = K * (Di + 2*h)*√L");
                sw.WriteLine("Or, h = (K * Di * √L) + (K * 2*h * √L)");
                sw.WriteLine();
                sw.WriteLine("Or, h * (1 - K * 2 * √L) = (K * Di * √L) ");

                double h = ((K * Di * Math.Sqrt(L)) / ((1 - (K * 2 * Math.Sqrt(L)))));
                h = double.Parse(h.ToString("0.000"));
                sw.WriteLine("Or, h = ((K * Di * √L)/(1 - K * 2 * √L))");
                sw.WriteLine("Or, h = (({0} * {1} * √{2})/(1 - {0} * 2 * √{2}))", K, Di, L);
                sw.WriteLine();
                sw.WriteLine("Or, h = {0} m = {1} mm", h, (h * 1000));

                double Ts = (int)(h * 10.0);
                Ts = Ts * 100;

                if (Ts < 500)
                {
                    Ts = 500;
                }

                sw.WriteLine();
                sw.WriteLine("Adopt a steining of {0} mm", Ts);

                #endregion

                #region STEP 2 : REINFORCEMENT IN STEINING
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 2 : REINFORCEMENT IN STEINING");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();
                double De = (Di + (2 * (Ts / 1000.0)));
                De = double.Parse(De.ToString("0.000"));

                _outer_dia = string.Format("Di + 2 x {0} = {1} m", (Ts / 1000.0), De);

                sw.WriteLine("De = (Di + (2 * (Ts / 1000.0)))");
                sw.WriteLine("   = ({0} + (2 * ({1} / 1000.0)))", Di, Ts);
                sw.WriteLine("   = {0} m", De);
                sw.WriteLine();

                sw.WriteLine("For RCC wells, Minimum longitudinal reinforcement");
                sw.WriteLine();
                sw.WriteLine("Asc = 0.2% of gross cross sectional area");
                sw.WriteLine();


                double Asc = (0.2 / 100) * ((Math.PI / 4.0) * (((Di + (2 * (Ts / 1000.0))) * (Di + (2 * (Ts / 1000.0)))) - (Di * Di))) * 10E5;
                Asc = double.Parse(Asc.ToString("0"));
                sw.WriteLine();
                sw.WriteLine("   = (0.2/100)*[(π/4)*(De*De - Di*Di)]*10^6");
                sw.WriteLine("   = (0.2/100)*[(π/4)*({0}*{0} - {1}*{1})]*10^6", De, Di);
                sw.WriteLine();
                double Asc_by_2 = Asc / 2.0;
                Asc_by_2 = double.Parse(Asc_by_2.ToString("0"));
                sw.WriteLine("   = {0} sq.mm for both faces or {1} sq.mm for eachfaces.", Asc, Asc_by_2);
                sw.WriteLine();
                sw.WriteLine("Use {0:f0} mm diameter bars at 300 mm centres on both faces.      Marked as (A) in the Drawing", D1);

                // For drawing
                _bars_A = string.Format("Use {0:f0} mm diameter bars at 300 mm centres on both faces.", D1);

                sw.WriteLine();
                sw.WriteLine("Hoop reinforcement ≥ 0.04% of volume / unit length");

                double H_r = (0.04 / 100) * ((Math.PI / 4.0) * (De * De - Di * Di));
                H_r = double.Parse(H_r.ToString("0.0000000"));
                sw.WriteLine("                   ≥ (0.04/100)[(π/4)*(De*De - Di*Di)]");
                sw.WriteLine("                   ≥ (0.04/100)[(π/4)*({0}*{0} - {1}*{1})]", De, Di);
                sw.WriteLine("                   ≥ {0} cu.m/m", H_r);

                double H_r_1 = H_r * 7200.0;
                H_r_1 = double.Parse(H_r_1.ToString("0.000"));
                sw.WriteLine("                   ≥ {0} * 7200 kg/m", H_r);
                sw.WriteLine("                   ≥ {0} kg/m", H_r_1);

                sw.WriteLine();
                sw.WriteLine("Using {0} mm diameter bars", D2);
                sw.WriteLine();

                double avg_cir_hoop = Math.PI * 3.1;
                avg_cir_hoop = double.Parse(avg_cir_hoop.ToString("0.000"));


                double avg_dia = 3.1;
                sw.WriteLine("Using hoops of average diameter = {0} m", avg_dia);
                sw.WriteLine("Average circumference of the hoop = π * 3.1 = {0} m", avg_cir_hoop);
                //sw.WriteLine("                                  = {0} m", avg_cir_hoop);
                double wt_one_hoop = (0.62 * avg_cir_hoop);
                wt_one_hoop = double.Parse(wt_one_hoop.ToString("0"));
                sw.WriteLine();
                sw.WriteLine("Weight of one hoop = (0.62 * {0}) = {1} kg.", avg_cir_hoop, wt_one_hoop);
                sw.WriteLine();

                double no_hp_per_mtr = H_r_1 / wt_one_hoop;
                no_hp_per_mtr = double.Parse(no_hp_per_mtr.ToString("0.00"));
                sw.WriteLine("No of hoops per metre = ({0}/{1}) = {2}", H_r_1, wt_one_hoop, no_hp_per_mtr);
                sw.WriteLine();

                double spcng_hoop = (1000.0 / no_hp_per_mtr);
                spcng_hoop = double.Parse(spcng_hoop.ToString("0"));
                sw.WriteLine("So, Spacing of hoops = (1000/{0}) = {1} mm", no_hp_per_mtr, spcng_hoop);
                sw.WriteLine();
                sw.WriteLine("Use {0} diameter hoops at {1} mm centres on both faces.       Marked as (B) in the Drawing", D2, Ts);

                // For drawing
                _bars_B = string.Format("Use {0:f0} diameter hoops at {1} mm centres on both faces.", D2, Ts);

                sw.WriteLine();

                #endregion

                #region STEP 3 : WELL CURB
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine("STEP 3 : WELL CURB");
                sw.WriteLine("------------------------------------------------------------");
                sw.WriteLine();
                sw.WriteLine();

                double min_renf = 72;
                sw.WriteLine("Minimum reinforcement = {0} kg/cu.m", min_renf);
                sw.WriteLine();
                sw.WriteLine("Proving a curb, {0} mm deep with a bottom width of {1} mm.", Lc, Tc);
                sw.WriteLine();

                double f12 = ((Ts / 1000) - 0.15);
                f12 = double.Parse(f12.ToString("0.000"));
                double f13 = (Di + 0.15);
                f13 = double.Parse(f13.ToString("0.000"));
                double vol_con_curb = ((Math.PI / 4.0) * (De * De - Di * Di))
                                      - (0.5 * f12 * 0.85 * Math.PI * f13);
                vol_con_curb = double.Parse(vol_con_curb.ToString("0.000"));

                sw.WriteLine("Volume of concrete in curb");
                sw.WriteLine("   = (π/4)*((De*De - Di*Di)) - (0.5 * ((Ts/1000) - 0.15)*0.85*(Di+0.15))");
                sw.WriteLine("   = (π/4)*(({0}*{0} - {1}*{1})) - (0.5 * (({2}/1000) - 0.15)*0.85*({1}+0.15))", De, Di, Ts);
                sw.WriteLine("   = {0} cu.m", vol_con_curb);
                sw.WriteLine();

                double tot_qnty_stl = min_renf * vol_con_curb;
                tot_qnty_stl = double.Parse(tot_qnty_stl.ToString("0"));


                // (C3/4)*(F9*F9-F10*F10)-(F7*F11*F12*C3*F13)
                sw.WriteLine("Total quantity of steel in Curb = {0} * {1} = {2} kg", min_renf, vol_con_curb, tot_qnty_stl);
                sw.WriteLine();
                sw.WriteLine("Using hoops of average diameter = {0} m", avg_dia);
                sw.WriteLine();
                sw.WriteLine("Weight of one hoop of 20 mm diameter = (π * 3.1 * 2.47) = 24 kg       Marked as (C) in the Drawing");

                double val1, val2;

                val1 = tot_qnty_stl / 2.0;

                val2 = val1 / 24.0;
                val2 = 1000.0 / val2;
                val2 = (int)((val2 / 10) + 1);
                val2 = (val2 * 10);

                //Weight of one hoop of 20 mm diameter  = (π * (Di+2x0.300) * 2.47) = (π * 3.1 * 2.47) = 24 kg, and Spacing = 160 mm c/c

                _C = string.Format("Weight of one hoop of 20 mm diameter = (π * (Di+2x0.300) * 2.47) = (π * 3.1 * 2.47) = 24 kg, and Spacing = {0:f0} mm c/c", val2);


                sw.WriteLine("Weight of one hoop of 16 mm diameter = (π * 3.1 * 1.58) = 15.38 kg   Marked as (D) in the Drawing");
                val2 = val1 / 15.38;
                val2 = 1000.0 / val2;
                val2 = (int)((val2 / 10) + 1);
                val2 = (val2 * 10);
                //Weight of one hoop of 16 mm diameter  = (π * (Di+2x0.300) * 1.58) = (π * 3.1 * 1.58) = 15.38 kg, and Spacing = 110 mm c/c
                _D = string.Format("Weight of one hoop of 16 mm diameter = (π * (Di+2x0.300) * 1.58) = (π * 3.1 * 1.58) = 15.38 kg, and Spacing={0:f0} mm c/c", val2);

                sw.WriteLine("Weight of one tie of 8 mm diameter 3 m long = (3 * 0.39) = 1.17 kg   Marked as (E) in the Drawing");
                //val2 = val1 / 15.38;
                _E1 = string.Format("Weight of one tie of 8 mm diameter 3 m long = (3 * 0.39) = 1.17 kg");

                sw.WriteLine();
                sw.WriteLine("Adopting a spacing of 300 mm for ties");
                _E2 = string.Format("Adopting a spacing of 300 mm for ties");

                sw.WriteLine();
                sw.WriteLine("Number of ties required = (π*3.1/0.3) = 33");
                sw.WriteLine();
                sw.WriteLine("Weight of ties = (33 * 1.17) = 39 kg");
                sw.WriteLine("Weight of 8 hoops of 20 mm diameter = (8 * 24) = 192 kg");
                sw.WriteLine("Weight of 6 hoops of 16 mm diameter = (6 * 15.38) = 92 kg");
                sw.WriteLine();
                if (tot_qnty_stl < 323)
                {
                    sw.WriteLine("Total quantity of steel provided in the Curb = (39 + 192 + 92)");
                    sw.WriteLine("                                             = 323 kg > {0} kg, OK", tot_qnty_stl);
                }
                else
                {
                    sw.WriteLine("Total quantity of steel provided in the Curb = (39 + 192 + 92)");
                    sw.WriteLine("                                             = 323 kg < {0} kg, NOT OK", tot_qnty_stl);
                }
                sw.WriteLine();

                #endregion


                #region END OF REPORT
                sw.WriteLine();
                sw.WriteLine();
                sw.WriteLine("---------------------------------------------------------------------------");
                sw.WriteLine("---------------------       END OF REPORT        --------------------------");
                sw.WriteLine("---------------------------------------------------------------------------");
                #endregion
            }
            catch (Exception ex) { }
            finally
            {
                sw.Flush();
                sw.Close();
            }
        }