Пример #1
0
        public HarjaterasRyhma LaskeSopivinHarjaterasryhma(int vaadittuTeras)
        {
            HarjaterasRyhma palautus = new HarjaterasRyhma();

            foreach (int i in Enum.GetValues(typeof(HarjaterasRyhma.TerasKoot)))
            {
                if (i < asetukset.MinTerasKoko)
                {
                    continue;
                }
                palautus.Koko = i;
                palautus.Jako = 200;

                if (palautus.PintaAlaMetrille > vaadittuTeras)
                {
                    if (asetukset.TukiRaudJako == 150)
                    {
                        continue;
                    }
                    return(palautus);
                }
                palautus.Jako = 150;
                if (palautus.PintaAlaMetrille > vaadittuTeras)
                {
                    if (asetukset.TukiRaudJako == 200)
                    {
                        continue;
                    }
                    return(palautus);
                }
            }
            return(null);
        }
Пример #2
0
        /// <summary>
        /// Laskee tukiraudoitukset tietylle kentälle kaikkiin suuntiin
        /// </summary>
        /// <param name="kentta">Kenttä, jolle tukiraudoitukset lasketaan</param>
        public void LaskeTukiraudoituksetKentalle(Kentta kentta)
        {
            #region Virheenkorjaus
            string[] vaaditutRaudoitukset = new string[8];
            int      i = 0;
            #endregion

            foreach (string suunta in kentta.HaeTasatutTukimomentit().Keys)
            {
                double          momentti          = kentta.HaeTasattuTukimomentti(suunta);
                int             vaadittuRaudoitus = LaskeVaadittuRaudoitusPintaAla(momentti * 1000);
                HarjaterasRyhma sopivaRyhma       = LaskeSopivinHarjaterasryhma(vaadittuRaudoitus);
                AsetaHarjaterasryhmalleAlkuJaLoppupiste(kentta, suunta, sopivaRyhma);
                sopivaRyhma.TankojenPituus = 1000;
                sopivaRyhma.Tyyppi         = "A500HW";
                if (kentta.Tukiraudat.ContainsKey(suunta))
                {
                    kentta.Tukiraudat[suunta] = sopivaRyhma;
                }
                else
                {
                    kentta.Tukiraudat.Add(suunta, sopivaRyhma);
                }
                #region Virheenkorjaus
                vaaditutRaudoitukset[i] = vaadittuRaudoitus.ToString();
                i++;
                #endregion
            }
            #region Virheenkorjaus
            if (VirheenkorjausTukiraudat)
            {
                StringBuilder debug = new StringBuilder();
                i = 0;
                foreach (string suunta in kentta.Tukiraudat.Keys)
                {
                    debug.Append("Suunta: " + suunta + "\n");
                    debug.Append("Koko: " + kentta.HaeTukiraudat(suunta).Koko + "\n");
                    debug.Append("Jako: " + kentta.HaeTukiraudat(suunta).Jako + "\n");
                    debug.Append("Raudoituksen pinta-ala metrille: " + (int)kentta.HaeTukiraudat(suunta).PintaAlaMetrille + "\n");
                    debug.Append("Vaadittu pinta-ala: " + vaaditutRaudoitukset[i] + "\n\n");
                    i++;
                }
                System.Windows.Forms.MessageBox.Show(debug.ToString(), "Kenttä " + kentta.Numero);
            }
            #endregion
        }
Пример #3
0
        /// <summary>
        /// Asettaa ryhmälle alku- ja loppupisteet suunnan ja kentän mittojen perusteella
        /// </summary>
        ///  <param name="kentta">Kenttä, jonka mittojen mukaan pisteet asetetaan</param>
        /// <param name="suunta">Mihin suuntaan tuki osoittaa kenttään nähden</param>
        /// <param name="ryhma">Harjateräsryhmä, johon suuntapisteet asetetaan</param>
        private void AsetaHarjaterasryhmalleAlkuJaLoppupiste(Kentta kentta, string suunta, HarjaterasRyhma ryhma)
        {
            switch (suunta)
            {
            case "vasen":
                ryhma.SijaintiAlku  = kentta.VasenAlanurkka;
                ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000));
                break;

            case "ylos":
                ryhma.SijaintiAlku  = new System.Drawing.Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000));
                ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000));
                break;

            case "oikea":
                ryhma.SijaintiAlku  = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000));
                ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y);
                break;

            case "alas":
                ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y);
                ryhma.SijaintiAlku  = kentta.VasenAlanurkka;
                break;
            }
        }