private void ParseLinienLast(IReadOnlyList <string> lines) { for (var i = 0; i < lines.Count; i++) { if (lines[i] != "Linienlast") { continue; } FeParser.InputFound += "\nLinienlast"; do { // Linenlast definiert durch p0, p1, p2, p3 mit optionalem inElementCoordinateSystem: default= true // mit lokalen Koordinaten p0N, p0Q, p1N, p1Q für inElementCoordinateSystem = true // mit globalen Koordinaten p0x, p0y, p1x, p1y, inElementCoordinateSystem = false substrings = lines[i + 1].Split(delimiters); p = new double[4]; AbstraktLinienlast linienLast; switch (substrings.Length) { case 6: loadId = substrings[0]; elementId = substrings[1]; p[0] = double.Parse(substrings[2]); p[1] = double.Parse(substrings[3]); p[2] = double.Parse(substrings[4]); p[3] = double.Parse(substrings[5]); linienLast = new LinienLast(elementId, p[0], p[1], p[2], p[3]); // inElementCoordinateSystem = true modell.ElementLasten.Add(loadId, linienLast); i++; break; case 7: loadId = substrings[0]; elementId = substrings[1]; p[0] = double.Parse(substrings[2]); p[1] = double.Parse(substrings[3]); p[2] = double.Parse(substrings[4]); p[3] = double.Parse(substrings[5]); inElementCoordinateSystem = bool.Parse(substrings[6]); linienLast = new LinienLast(elementId, p[0], p[1], p[2], p[3], inElementCoordinateSystem); //inElementCoordinateSystem = input modell.ElementLasten.Add(loadId, linienLast); i++; break; default: throw new ParseAusnahme((i + 2) + ": Linienlast, falsche Anzahl Parameter"); } } while (lines[i + 1].Length != 0); break; } }
private void ParseLinienLast(string[] lines) { var delimiters = new[] { '\t' }; for (var i = 0; i < lines.Length; i++) { if (lines[i] != "LinienLasten") { continue; } FeParser.InputFound += "\nLinienLasten"; do { substrings = lines[i + 1].Split(delimiters); switch (substrings.Length) { case 5: { loadId = substrings[0]; startNodeId = substrings[1]; endNodeId = substrings[2]; p = new double[2]; p[0] = double.Parse(substrings[3]); p[1] = double.Parse(substrings[4]); linienLast = new LinienLast(loadId, startNodeId, endNodeId, p); modell.LinienLasten.Add(loadId, linienLast); i++; break; } default: throw new ParseAusnahme((i + 2) + ": LinienLasten, falsche Anzahl Parameter"); } } while (lines[i + 1].Length != 0); break; } }
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; } }