private void crtanjeGrafikaIPopunjavanje()
        {
            string oznakaPlocice = reznePlociceCheckedListBox.SelectedItem.ToString();

            prepRezimiSt.ChooseElement(oznakaPlocice);
            rezimi  = PrepRezimiStorage.IzabraniRezimiO.RezimObr;
            plocica = PrepRezimiStorage.IzabraniRezimiO.ReznaPl;
            racunanjeBrzina(rezimi, plocica);
            racunanjeTacakaZaDijagramPostojanostProizvodnost();
            racunanjeTacakaZaDijagramBrzinaPostojanost();
        }
        public Form1()
        {
            InitializeComponent();

            if (System.IO.File.Exists("config.txt"))
            {
                string[] lines = System.IO.File.ReadAllLines("config.txt");
                if (lines.Length == 0)
                {
                    MessageBox.Show("Configuration file config.txt is empty");
                    this.Enabled = false;
                }
                else
                {
                    connString = lines[0];
                }
            }
            else
            {
                MessageBox.Show("Configuration file doesn't exist");
                this.Enabled = false;
            }

            ConnToDB.ConnectionString = connString;
            materijaliSt                     = new MaterijaliStorage();
            vrstaObradeSt                    = new VrstaObradeStorage();
            tipObradeSt                      = new TipObradeStorage();
            oblikPlociceSt                   = new ObliciPlocicaStorage();
            kvalitetObradeSt                 = new KvalitetObradeStorage();
            dodaciSt                         = new DodaciStorage();
            pripremaciSt                     = new PripremciStorage();
            kvalitetiRPlSt                   = new KvalitetiReznihPlocicaStorage();
            prepRezimiSt                     = new PrepRezimiStorage();
            drzaciSt                         = new DrzaciAlataStorage();
            masineSt                         = new MasineDataStorage();
            preporukeISOPSt                  = new PreporukeISOPStorage();
            gradacijeObradeSt                = new GradacijeObradaStorage();
            interpolacijaBrzina              = new InterpolacijaBrzina();
            filterPlocica                    = new FilterReznihPlocica();
            listaPlocica                     = new List <ReznaPlocica>();
            graphDrawBrzinaProizvodnost      = new GraphDrawing();
            graphDrawPostojanostProizvodnost = new GraphDrawing();
            graphDrawBrzinaPostojanost       = new GraphDrawing();
            preporukeZaPostojanost           = new PreporukeZaPostojanostAlataStorage();
            slikeZaFormuSt                   = new SlikeZaFormuStorage();
            listaTacaka                      = new List <PointCoordinates>();
            rezimi                     = new RezimiObrade();
            plocica                    = new ReznaPlocica();
            izracunatiRezimi           = new IzracunatiRezimi();
            izracunatiPrepRezimi       = new IzracunatiPreporuceniRezimi();
            preporuceniRezim           = new PreporuceniRezim();
            granicnaVrednostDubine     = new GranicnaVrednostDubneRezanja();
            racunanjeParametaraRezanja = new RacunanjeParametaraRezanja();

            graphDrawBrzinaProizvodnost.SetNamesOfAxisAndLabels("Brzina rezanja v (m/min)", "Proizvodnost Q (cm³/min)", "v", "Q", brzinaProizvodnostChart);
            graphDrawPostojanostProizvodnost.SetNamesOfAxisAndLabels("Postojanost alata T (min)", "Proizvodnost Q (cm³/min)", "T", "Q", postojanostProizvodnostChart);
            graphDrawBrzinaPostojanost.SetNamesOfAxisAndLabels("Brzina rezanja v (m/min)", "Postojanost alata T (min)", "v", "T", brzinaPostojanostChart);

            maxSerijeCheckBox.Checked         = true;
            preporuceneSerijeCheckBox.Checked = true;
            minSerijeCheckBox.Checked         = true;
            ukljanjanjeLabelaCheckBox.Checked = true;

            fillComboBoxAndSetToDropDownList(materialComBox, materijaliSt.ListOfDictElements);
            fillComboBoxAndSetToDropDownList(vrstaObradeComboBox, vrstaObradeSt.ListOfDictElements);
            fillComboBoxAndSetToDropDownList(klasaKvalitetaComboBox, kvalitetObradeSt.ListOfDictElements);



            granicnaVrednostDubine.ListaGradacijaObrade = gradacijeObradeSt.ListaGradacija;
        }
        private void racunanjeBrzina(RezimiObrade rezimi, ReznaPlocica plocica)
        {
            interpolacijaBrzina.Rezimi = rezimi;
            double vMax  = Math.Round(interpolacijaBrzina.vMax, 0, MidpointRounding.AwayFromZero);
            double vPrep = Math.Round(interpolacijaBrzina.vPrep, 0, MidpointRounding.AwayFromZero);
            double vMin  = Math.Round(interpolacijaBrzina.vMin, 0, MidpointRounding.AwayFromZero);

            double sMax  = rezimi.SMax;
            double sPrep = rezimi.SPrep;
            double sMin  = rezimi.SMin;
            double aMax  = rezimi.AMax;
            double aPrep = rezimi.APrep;
            double aMin  = rezimi.AMin;

            izracunatiPrepRezimi.MaxRezim.Brzina  = vMax;
            izracunatiPrepRezimi.MaxRezim.Pomak   = sMin;
            izracunatiPrepRezimi.MaxRezim.Dubina  = aMin;
            izracunatiPrepRezimi.PrepRezim.Brzina = vPrep;
            izracunatiPrepRezimi.PrepRezim.Pomak  = sPrep;
            izracunatiPrepRezimi.PrepRezim.Dubina = aPrep;
            izracunatiPrepRezimi.MinRezim.Brzina  = vMin;
            izracunatiPrepRezimi.MinRezim.Pomak   = sMax;
            izracunatiPrepRezimi.MinRezim.Dubina  = aMax;

            List <double> brzine = new List <double> {
                vMin, vPrep, vMax
            };
            List <double> pomaci = new List <double> {
                sMax, sPrep, sMin
            };
            List <double> dubine = new List <double> {
                aMax, aPrep, aMin
            };

            izracunatiRezimi.Brzine = brzine;
            izracunatiRezimi.Pomaci = pomaci;
            izracunatiRezimi.Dubine = dubine;

            double brzina       = 0;
            double pomak        = 0;
            double dubina       = 0;
            string oznakaSerije = "";

            for (int dubinaIndex = 0; dubinaIndex < izracunatiRezimi.Dubine.Count; dubinaIndex++)
            {
                for (int listIndex = 0; listIndex < izracunatiRezimi.Brzine.Count; listIndex++)
                {
                    PointCoordinates point = new PointCoordinates();
                    brzina            = izracunatiRezimi.Brzine[listIndex];
                    pomak             = pomaci[listIndex];
                    dubina            = dubine[dubinaIndex];
                    point.XCoordinate = brzina;
                    point.YCoordinate = Math.Round(brzina * pomak * dubina, 1, MidpointRounding.AwayFromZero);
                    listaTacaka.Add(point);
                }
                oznakaSerije = plocica.OznakaPlocice + "\n" + "a = " + dubina + "   s = " + pomak;
                graphDrawBrzinaProizvodnost.DrawGraph(listaTacaka, oznakaSerije, plocica.OznakaPlocice, 0);
                listaTacaka.Clear();
                prikazSerija();
            }

            oznakaRPlTBox.Text         = plocica.OznakaPlocice;
            oblikRPlTBox.Text          = plocica.Oblik.OblikPloc.ToString();
            ledjniUgaoTBox.Text        = plocica.LedjniUgao.ToString();
            tolerancijaTBox.Text       = plocica.Tolerancija.ToString();
            tipPlTBox.Text             = plocica.TipPlocice.ToString();
            duzinaRezneIviceTBox.Text  = plocica.DuzinaRezneIvice.ToString();
            debljinaPlTBox.Text        = plocica.Debljina.ToString();
            radijusPlTBox.Text         = plocica.Radijus.ToString();
            kvalitetObradeTextBox.Text = plocica.KvalitetObrade.OznakaKvalitetaPlocice.ToString();

            vMaxTextBox.Text  = vMax.ToString();
            vPrepTextbox.Text = vPrep.ToString();
            vMinTextBox.Text  = vMin.ToString();
            sMaxTextBox.Text  = rezimi.SMax.ToString();
            sPrepTextBox.Text = rezimi.SPrep.ToString();
            sMinTextBox.Text  = rezimi.SMin.ToString();
            aMaxTextBox.Text  = rezimi.AMax.ToString();
            aPrepTextBox.Text = rezimi.APrep.ToString();
            aMinTextBox.Text  = rezimi.AMin.ToString();

            granicnaVrednostPomaka                      = racunanjeGranicneVrednostiPomaka(plocica.Radijus, KvalitetObradeStorage.IzabraniKvalitet.RaMax);
            izabraniPomakNumericUpDown.Maximum          = (decimal)granicnaVrednostPomaka;
            izabraniPomakNumericUpDown.Value            = (decimal)granicnaVrednostPomaka;
            pomakUFunkcijiOdRaTextBox.Text              = granicnaVrednostPomaka.ToString();
            dubinaUzavisnostiOdDodatkaTBox.Text         = granicnaVrednostDubine.GranicnaVrednostDubine.ToString();
            izabranaDubinaNumericUpDown.Value           = (decimal)granicnaVrednostDubine.GranicnaVrednostDubine;
            granicnaVrednostBrzine                      = racunanjeGranicneVrednostiBrzine();
            izabranaBrzinaNumericUpDown.Value           = (decimal)granicnaVrednostBrzine;
            brzinaUZavisnostiOdPostojanostiTextBox.Text = granicnaVrednostBrzine.ToString();
            racunanjeParametaraRezanja.Radijus          = plocica.Radijus;
            unosBrzinePomakaIDubine();
            popunjavanjeParametaraRezanjaIPotrebnihUslova();
        }