Exemple #1
0
        private void ParseKnotenLast(string[] lines)
        {
            var delimiters = new[] { '\t' };

            for (var i = 0; i < lines.Length; i++)
            {
                if (lines[i] != "KnotenLasten")
                {
                    continue;
                }
                FeParser.InputFound += "\nKnotenLasten";
                do
                {
                    substrings = lines[i + 1].Split(delimiters);
                    switch (substrings.Length)
                    {
                    case 3:
                    {
                        loadId     = substrings[0];
                        nodeId     = substrings[1];
                        p          = new double[1];
                        p[0]       = double.Parse(substrings[2]);
                        knotenLast = new KnotenLast(loadId, nodeId, p);
                        modell.Lasten.Add(loadId, knotenLast);
                        i++;
                        break;
                    }

                    default:
                        throw new ParseAusnahme((i + 2) + ": KnotenLasten, falsche Anzahl Parameter");
                    }
                } while (lines[i + 1].Length != 0);
                break;
            }
        }
Exemple #2
0
        private void ParseKnotenLast(IReadOnlyList <string> lines)
        {
            for (var i = 0; i < lines.Count; i++)
            {
                if (lines[i] != "Knotenlast")
                {
                    continue;
                }
                FeParser.InputFound += "\nKnotenlast";
                do
                {
                    substrings = lines[i + 1].Split(delimiters);

                    p = new double[3];
                    switch (substrings.Length)
                    {
                    case 4:
                        loadId     = substrings[0];
                        nodeId     = substrings[1];
                        p[0]       = double.Parse(substrings[2]);
                        p[1]       = double.Parse(substrings[3]);
                        knotenLast = new KnotenLast(nodeId, p[0], p[1]);
                        break;

                    case 5:
                        loadId     = substrings[0];
                        nodeId     = substrings[1];
                        p[0]       = double.Parse(substrings[2]);
                        p[1]       = double.Parse(substrings[3]);
                        p[2]       = double.Parse(substrings[4]);
                        knotenLast = new KnotenLast(nodeId, p[0], p[1], p[2]);
                        break;

                    default:
                    {
                        throw new ParseAusnahme((i + 2) + ": Fachwerk, falsche Anzahl Parameter");
                    }
                    }
                    modell.Lasten.Add(loadId, knotenLast);
                    i++;
                } while (lines[i + 1].Length != 0);
                break;
            }
        }
Exemple #3
0
        public void ParseLasten(string[] lines, FEModell feModel)
        {
            for (var i = 0; i < lines.Length; i++)
            {
                if (lines[i] != "Knotenlasten")
                {
                    continue;
                }
                modell = feModel;
                FeParser.InputFound += "\nKnotenlasten";
                do
                {
                    substrings  = lines[i + 1].Split(delimiters);
                    loadId      = substrings[0];
                    nodeId      = substrings[1];
                    NodeLoad    = new double[3];
                    NodeLoad[0] = double.Parse(substrings[2]);
                    NodeLoad[1] = double.Parse(substrings[3]);

                    switch (substrings.Length)
                    {
                    case 4:
                        knotenLast = new KnotenLast(nodeId, NodeLoad[0], NodeLoad[1]);
                        break;

                    case 5:
                    {
                        NodeLoad[2] = double.Parse(substrings[4]);
                        //var p = 4 * NodeLoad[2];
                        knotenLast = new KnotenLast(nodeId, NodeLoad[0], NodeLoad[1], NodeLoad[2]);
                        break;
                    }

                    default:
                        throw new ParseAusnahme((i + 1) + ": Knotenlasten erfordert 4 oder 5 Eingabeparameter");
                    }
                    modell.Lasten.Add(loadId, knotenLast);
                    i++;
                } while (lines[i + 1].Length != 0);
                break;
            }

            for (var i = 0; i < lines.Length; i++)
            {
                modell = feModel;
                if (lines[i] != "Linienlasten")
                {
                    continue;
                }
                FeParser.InputFound += "\nLinienlasten";
                do
                {
                    substrings = lines[i + 1].Split(delimiters);
                    if (substrings.Length == 7)
                    {
                        loadId = substrings[0];
                        var startNodeId = substrings[1];
                        NodeLoad    = new double[4];
                        NodeLoad[0] = double.Parse(substrings[2]);
                        NodeLoad[1] = double.Parse(substrings[3]);
                        var endNodeId = substrings[4];
                        NodeLoad[2] = double.Parse(substrings[5]);
                        NodeLoad[3] = double.Parse(substrings[6]);

                        linienLast = new LinienLast(startNodeId, NodeLoad[0], NodeLoad[1], endNodeId, NodeLoad[2], NodeLoad[3]);
                        modell.LinienLasten.Add(loadId, linienLast);
                        i++;
                    }
                    else
                    {
                        throw new ParseAusnahme((i + 1) + ": Linienlasten erfordert 7 Eingabeparameter");
                    }
                } while (lines[i + 1].Length != 0);
                break;
            }
        }