private void ElastizitätsErgebnisseVisualisieren(object sender, RoutedEventArgs e) { if (!berechnet) { if (modell == null) { _ = MessageBox.Show("Modelldaten für Elastizitätsberechnung sind noch nicht spezifiziert", "Elastizitätsberechnung"); return; } analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; } if (modell.SpatialDimension == 2) { var tragwerk = new Elastizitätsberechnung.Ergebnisse.StatikErgebnisseVisualisieren(modell); tragwerk.Show(); } else if (modell.SpatialDimension == 3) { var tragwerk = new Elastizitätsberechnung.Ergebnisse.StatikErgebnisse3DVisualisieren(modell); tragwerk.Show(); } else { _ = MessageBox.Show(sb.ToString(), "falsche Raumdimension, muss 2 oder 3 sein"); } }
private void StatikErgebnisseVisualisieren(object sender, RoutedEventArgs e) { if (!berechnet) { analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; } _ = new Tragwerksberechnung.Ergebnisse.StatikErgebnisseVisualisieren(modell); }
private void StatikErgebnisseAnzeigen(object sender, EventArgs e) { if (!berechnet) { analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; } var ergebnisse = new Tragwerksberechnung.Ergebnisse.StatikErgebnisseAnzeigen(modell); ergebnisse.Show(); }
private void TragwerksdatenBerechnen(object sender, EventArgs e) { if (tragwerksDaten) { analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; _ = MessageBox.Show("Systemgleichungen erfolgreich gelöst", "statische Tragwerksberechnung"); } else { _ = MessageBox.Show("Tragwerksdaten müssen zuerst eingelesen werden", "statische Tragwerksberechnung"); } }
private void ElastizitätsberechnungErgebnisse(object sender, EventArgs e) { if (!berechnet) { if (modell == null) { _ = MessageBox.Show("Modelldaten für Elastizitätsberechnung sind noch nicht spezifiziert", "Elastizitätsberechnung"); return; } analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; } var ergebnisse = new Elastizitätsberechnung.Ergebnisse.StatikErgebnisseAnzeigen(modell); ergebnisse.Show(); }
private void DynamischeBerechnung(object sender, EventArgs e) { if (zeitintegrationDaten) { if (!berechnet) { analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; } analysis.TimeIntegration2NdOrder(); zeitintegrationBerechnet = true; } else { _ = MessageBox.Show("Daten für Zeitintegration sind noch nicht spezifiziert", "Tragwerksberechnung"); } }
private void WärmeberechnungErgebnisseVisualisieren(object sender, RoutedEventArgs e) { if (wärmeDaten) { if (!berechnet) { analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; } var wärmeModell = new Wärmeberechnung.Ergebnisse.StationäreErgebnisseVisualisieren(modell); wärmeModell.Show(); } else { _ = MessageBox.Show("Modelldaten für Wärmeberechnung sind noch nicht spezifiziert", "Wärmeberechnung"); } }
private void InstationäreBerechnung(object sender, RoutedEventArgs e) { if (zeitintegrationDaten) { if (!berechnet) { analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; } analysis.TimeIntegration1StOrder(); zeitintegrationBerechnet = true; _ = MessageBox.Show("Zeitintegration erfolgreich durchgeführt", "instationäre Wärmeberechnung"); } else { _ = MessageBox.Show("Daten für Zeitintegration sind noch nicht spezifiziert", "Wärmeberechnung"); } }
private void ElastizitätsdatenBerechnen(object sender, EventArgs e) { if (modell == null) { _ = MessageBox.Show("Modelldaten für Elastizitätsberechnung sind noch nicht spezifiziert", "Elastizitätsberechnung"); return; } try { analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); berechnet = true; _ = MessageBox.Show("Systemgleichungen erfolgreich gelöst", "Elastizitätsberechnung"); } catch (BerechnungAusnahme) { throw new BerechnungAusnahme("Abbruch: Fehler bei Lösung der Systemgleichungen"); } }
public void VerformteGeometrie() { if (!StartFenster.berechnet) { var analysis = new Berechnung(modell); analysis.ComputeSystemMatrix(); analysis.ComputeSystemVector(); analysis.SolveEquations(); StartFenster.berechnet = true; } //int überhöhung = 1; //const int rotationÜberhöhung = 1; var pathGeometry = new PathGeometry(); IEnumerable <AbstraktElement> Elements() { foreach (var item in modell.Elemente) { if (item.Value is AbstraktElement element) { yield return(element); } } } foreach (var element in Elements()) { //element.ElementState = element.ComputeElementState(); var pathFigure = new PathFigure(); switch (element) { case Element2D3 _: { if (modell.Knoten.TryGetValue(element.NodeIds[0], out knoten)) { } var start = TransformVerformtenKnoten(knoten, auflösung, maxY); pathFigure.StartPoint = start; for (var i = 1; i < element.NodeIds.Length; i++) { if (modell.Knoten.TryGetValue(element.NodeIds[i], out knoten)) { } var end = TransformVerformtenKnoten(knoten, auflösung, maxY); pathFigure.Segments.Add(new LineSegment(end, true)); } break; } } if (element.NodeIds.Length > 2) { pathFigure.IsClosed = true; } pathGeometry.Figures.Add(pathFigure); } // alle Elemente werden der GeometryGroup tragwerk hinzugefügt var tragwerk = new GeometryGroup(); tragwerk.Children.Add(pathGeometry); Shape path = new Path() { Stroke = Red, StrokeThickness = 1, Data = tragwerk }; // setz oben/links Position zum Zeichnen auf dem Canvas SetLeft(path, RandLinks); SetTop(path, randOben); // zeichne Shape visualErgebnisse.Children.Add(path); Verformungen.Add(path); }