public static Schaftlaenge getSchaftlaenge(Schraube schraube) { //AB HIER SCHAFTLÄNGE Boolean gueltig; Boolean gueltigInnen = true; //Für die inneren Schleife Schaftlaenge s = new Schaftlaenge(schraube.metrischeGewindegroesse); //Neues Objekt Schaftlänge wird erstellt, mit der Gewindegröße als eingangsparameter um die minSchaftlänge aus der mutterhöhe berechnen zu können. do { gueltig = true; Console.WriteLine("Ist die Schaftlänge bekannt? (j/n)"); //Abfrage ob Schaftlänge bekannt string input = Console.ReadLine(); if (input.Equals("n")) //Wenn nein { do { try //Erneut try und catch zum fehler abfangen { gueltigInnen = true; Console.WriteLine("Wie lang ist die Klemmlaenge (in mm)?"); float input2 = (float)Convert.ToDouble(Console.ReadLine()); s.schaftlaenge = Schaftlaenge.berechneSchaftlaenge(schraube.metrischeGewindegroesse.mutterhoehe, input2); //Unterprogramm Schaftlänge in Schaftlaenge.cs aufrufen if (s.schaftlaenge == -1) //WEnn schaftlänge zu groß/klein kommt dieser Fehlercode wieder { gueltigInnen = false; } } catch (Exception) //Fehler werden abgefangen { Console.WriteLine("Bitte eine Zahl eingeben"); gueltigInnen = false; } } while (!gueltigInnen); return(s); } else if (input.Equals("j")) //Wenn Schaftläenge bekannt soll diese einfach eingegeben werden { do { try { Console.WriteLine("Welche Schaftlänge wird benötigt? (in mm)"); float input2 = (float)Convert.ToDouble(Console.ReadLine()); gueltigInnen = s.setSchaftlaenge(input2); //setSchaftlaenge überprüft ob die Eingabe im gültigen Bereich liegt. Berechnungen finden in Schaftlaenge.cs statt } catch (Exception) { Console.WriteLine("Bitte eine Zahl eingeben"); gueltigInnen = false; } } while (!gueltigInnen); } else //Falls falsche Eingabe { Console.WriteLine("Ungültige Eingabe!"); gueltig = false; } } while (!gueltig); return(s); }
private void txB_Klemmlaenge_LostFocus(object sender, RoutedEventArgs e) { TextBox tb = (TextBox)sender; string g = tb.Text; if (slGuelitg == true) { if (slGuelitg == true) { Schaftlaenge objSl = new Schaftlaenge(s.metrischeGewindegroesse); try //Erneut try und catch zum fehler abfangen { float kl = Convert.ToSingle(txB_Klemmlaenge.Text); objSl.schaftlaenge = Schaftlaenge.berechneSchaftlaenge(s.metrischeGewindegroesse.mutterhoehe, kl); //Unterprogramm Schaftlänge in Schaftlaenge.cs aufrufen if (objSl.schaftlaenge == -1) //WEnn schaftlänge zu groß/klein kommt dieser Fehlercode wieder { double minsl = objSl.minSchaftlaenge - 1.25 * s.metrischeGewindegroesse.mutterhoehe; minsl = Math.Round(objSl.minSchaftlaenge, 2); double maxsl = (objSl.maxSchaftlaenge - 1.25 * s.metrischeGewindegroesse.mutterhoehe); maxsl = Math.Round(maxsl, 2); lab_SchaftlaengeHinweis.Content = "Die Klemmlänge der Schraube muss zwischen " + minsl + " mm und " + maxsl + " mm liegen"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Klemmlaenge.Background = Brushes.Red; txB_Klemmlaenge.Text = ""; FinishSchaftlaenge = false; } else { lab_SchaftlaengeHinweis.Content = "Die berechnete Schaftlänge beträtgt: " + objSl.schaftlaenge + " mm"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Klemmlaenge.Background = Brushes.Green; float sl = objSl.schaftlaenge; s.schaftLaenge = objSl; //Schaftlänge der Schraube zuweisen FinishSchaftlaenge = true; hatWertSchaftlaenge = true; lab_Gewindelaenge.Visibility = Visibility.Visible; rBtn_gesamte_Schaftlaenge.Visibility = Visibility.Visible; rBtn_benutzerdefiniert.Visibility = Visibility.Visible; txB_Gewindelaenge.Background = Brushes.White; //Freigeben der Schaftlängenbox txB_Gewindelaenge.IsReadOnly = false; } } catch (Exception) //Fehler werden abgefangen { lab_SchaftlaengeHinweis.Content = "Bitte eine Zahl eingeben"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Schaftlaenge.Background = Brushes.Red; FinishSchaftlaenge = false; } } } }
private void txB_Schaftlaenge_LostFocus(object sender, RoutedEventArgs e) { Boolean gueltig = false; if (slGuelitg == true) { Schaftlaenge objSl = new Schaftlaenge(s.metrischeGewindegroesse); try { float sl = Convert.ToSingle(txB_Schaftlaenge.Text); gueltig = objSl.setSchaftlaenge(sl); //setSchaftlaenge überprüft ob die Eingabe im gültigen Bereich liegt. Berechnungen finden in Schaftlaenge.cs statt if (gueltig == true) { s.schaftLaenge = objSl; txB_Schaftlaenge.Background = Brushes.Green; lab_SchaftlaengeHinweis.Visibility = Visibility.Hidden; s.schaftLaenge.schaftlaenge = sl; //Setzen der Schaftlänge in der Scharube s FinishSchaftlaenge = true; hatWertSchaftlaenge = true; lab_Gewindelaenge.Visibility = Visibility.Visible; rBtn_gesamte_Schaftlaenge.Visibility = Visibility.Visible; rBtn_benutzerdefiniert.Visibility = Visibility.Visible; txB_Gewindelaenge.Background = Brushes.White; //Freigeben der Schaftlängenbox txB_Gewindelaenge.IsReadOnly = false; } else { lab_SchaftlaengeHinweis.Content = "Die Länge der Schraube muss zwischen " + objSl.minSchaftlaenge + " mm und " + objSl.maxSchaftlaenge + " mm liegen"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Schaftlaenge.Background = Brushes.Red; txB_Schaftlaenge.Text = ""; FinishSchaftlaenge = false; } } catch (Exception) { lab_SchaftlaengeHinweis.Content = "Bitte eine Zahl eingeben"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Schaftlaenge.Background = Brushes.Red; txB_Schaftlaenge.Text = ""; FinishSchaftlaenge = false; } } }
private void GewindegroessenErgaenzung() { slGuelitg = true; //Wird auf true gesetzt, sobald eine Gewindegröße gesetzt wird, verhindert das man eine Schaftlänge4 vor dem Gewinde setzt FinishGewindegroesse = true; grd_Schaftlaenge.Visibility = Visibility.Visible; txB_Schaftlaenge.Background = Brushes.White; //Freigeben der Schaftlängenbox txB_Schaftlaenge.IsReadOnly = false; txB_Klemmlaenge.Background = Brushes.White; //Freigeben der KLemmlängenbox txB_Klemmlaenge.IsReadOnly = false; Boolean gueltig = false; if (rBtn_SchaftlaengeJa.IsChecked == true) { Schaftlaenge objSl = new Schaftlaenge(s.metrischeGewindegroesse); try { float sl = Convert.ToSingle(txB_Schaftlaenge.Text); gueltig = objSl.setSchaftlaenge(sl); //setSchaftlaenge überprüft ob die Eingabe im gültigen Bereich liegt. Berechnungen finden in Schaftlaenge.cs statt if (gueltig == false && txB_Schaftlaenge.Text != "") //Falls die Länge nicht mehr gültig ist { lab_SchaftlaengeHinweis.Content = "Die Länge der Schraube muss zwischen " + objSl.minSchaftlaenge + " mm und " + objSl.maxSchaftlaenge + " mm liegen"; lab_SchaftlaengeHinweis.Visibility = Visibility.Visible; txB_Schaftlaenge.Background = Brushes.Red; txB_Schaftlaenge.Text = ""; FinishSchaftlaenge = false; } } catch (Exception) { lab_SchaftlaengeHinweis.Content = "Bitte eine Zahl eingeben"; FinishSchaftlaenge = false; } } else if (rBtn_SchaftlaengeNein.IsChecked == true) //WEnn eingabe immer noch gültig ist, muss dennoch die Schaftlänge neu aus der KLemmlänge berechnet werden { txB_Klemmlaenge_LostFocus(txB_Klemmlaenge, null); //Berechnung durch lostFocus funktion } }
public Gewindelaenge(Schaftlaenge s, MetrischeGewindegroesse m) //neues Objekt Gewindelänge { minGewindeLaenge = minGewindeLaengeRechnung(m.mutterhoehe); maxGewindeLaenge = maxGewindeLaengeRechnung(s.schaftlaenge); gewindeLaenge = maxGewindeLaenge; }