Esempio n. 1
0
        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");
            }
        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 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");
     }
 }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
 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");
     }
 }
Esempio n. 7
0
 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");
     }
 }
Esempio n. 8
0
 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");
     }
 }
Esempio n. 9
0
 private void EigenlösungTragwerkBerechnen(object sender, RoutedEventArgs e)
 {
     if (modell != null)
     {
         if (!berechnet)
         {
             analysis = new Berechnung(modell);
             analysis.ComputeSystemMatrix();
         }
         // default = 2 Eigenstates, falls nicht anders spezifiziert
         if (modell.Eigenstate == null)
         {
             modell.Eigenstate = new Eigenzustand("default", 2);
         }
         analysis.Eigenstates();
         _ = MessageBox.Show("Eigenfrequenzen erfolgreich ermittelt", "Tragwerksberechnung");
     }
     else
     {
         _ = MessageBox.Show("Modelldaten sind noch nicht spezifiziert", "Tragwerksberechnung");
     }
 }
Esempio n. 10
0
        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");
            }
        }
Esempio n. 11
0
 private void EigenlösungTragwerkVisualisieren(object sender, RoutedEventArgs e)
 {
     if (modell != null)
     {
         if (!berechnet)
         {
             analysis = new Berechnung(modell);
             analysis.ComputeSystemMatrix();
             // default = 2 Eigenstates, falls nicht anders spezifiziert
             if (modell.Eigenstate == null)
             {
                 modell.Eigenstate = new Eigenzustand("default", 2);
             }
         }
         analysis.Eigenstates();
         var visual = new Tragwerksberechnung.Ergebnisse.EigenlösungVisualisieren(modell);
         visual.Show();
     }
     else
     {
         _ = MessageBox.Show("Modelldaten sind noch nicht spezifiziert", "Tragwerksberechnung");
     }
 }
Esempio n. 12
0
 private void EigenlösungWärmeAnzeigen(object sender, RoutedEventArgs e)
 {
     if (modell != null)
     {
         if (!berechnet)
         {
             analysis = new Berechnung(modell);
             analysis.ComputeSystemMatrix();
             // default = 2 Eigenstates, falls nicht anders spezifiziert
             if (modell.Eigenstate == null)
             {
                 modell.Eigenstate = new Eigenzustand("default", 2);
             }
         }
         analysis.Eigenstates();
         var eigen = new Eigenlösung.Eigenlösung(modell);
         eigen.Show();
     }
     else
     {
         _ = MessageBox.Show("Modelldaten sind noch nicht spezifiziert", "Wärmeberechnung");
     }
 }
Esempio n. 13
0
        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);
        }