habt ihr schon mal eine Eingabedatei (.dat Format) mit Python erstellt und könnt mir sagen wie das funktioniert?
Ich muss eine Berechnung automatisieren und dafür muss ich mehrere Eingabekombinationen erstellen und berechnen lassen. Dies sollte mit Python möglich sein, oder?
mich persönlich würde deine finale Lösung einmal interessieren.
Wie bist du denn in Python vorgegangen? Hast du vlt. ein kleines Beispiel, sodass ich es einmal nachvollziehen kann?
Ich habe mittels Python-Pandas die erstellte Excel Datei eingelesen. Auf diese kann dann in Python mit iloc[zeile,spalte] zugegriffen werden. Dann werden iterativ die Daten ausgelesen.
Ich weiß leider nicht wie man diesen Quellcode Textblock erstellt, aber hier ist der Code:
for i in xlx_data.index: #index Überprüfung Dateilänge
#Wenn mehrere Dateien erstellt werden sollen
filename = "parameters_" + str(i) + ".dat" #Erstellung mehrerer .dat files
file = open(filename, "w")
#Wenn eine Datei erstellt werden soll
file = open("parameters.dat", "w")
file.writelines(["$ Parameters\n", "\n"])
#Parameter Bodenplatte Allgemein
file.writelines(["STO#BP-W_MatBet ", str(xlx_data.iloc[i,1]), "[-]", "\n"])
file.writelines(["STO#BP - W_MatSta ", str(xlx_data.iloc[i,2]), "[-]", "\n"])
file.writelines(["STO#BP - W_Bettung_V ", str(xlx_data.iloc[i,3]), " $[kN / m³]", "\n"])
file.writelines(["STO#BP - W_Bettung_H ", str(xlx_data.iloc[i,4]), " $[kN / m³]", "\n"])
file.close
# call SPS.exe via Python
p = subprocess.Popen(r'"{1}" "{0}"'.format(dat_file, SPS_PATH), cwd=SOF_2023_DIR)
# Wait to finish the subprocess
p.wait()
Die Berechnung rufe ich dann auch aus der Schleife heraus aus. Und in Teddy lass ich meine Variablen einfach mit #includeXXX übergeben.
Ich werde dann sicher auch nochmal deine Hilfe brauchen. Wenn ich alles berechnet habe, muss ich die Dateien noch auswerten.
Genau ich nutze eigentlich nur eine Eingabedatei. Die überschreibe ich jedes mal und lass sie neu berechnen.
Danke
Ach was ich noch wissen wollte. Gibt es eine Übersicht, bzw. Beschreibung wie man in Teddy Ergebnisse exportiert? Ich werde nach der Bemessung sicher Schnittkräfte und Bewehrungsmengen in eine Excel übergeben müssen, damit ich diese dann Auswerten kann. Weiß aber leider nicht wie das funktioniert.
Im Prinzip stehen dir verschiedene Möglichkeiten zur Verfügung.
Result Viewer → Tabellen
Graphic → Listen
CDB Zugriff via @KEY (relativ komplex)
Für die Einarbeitung in die ersten zwei Programme kann ich dir die Brückenbau-Schulungsvideos empfehlen. Dort wird auf die von SOFiSTiK empfohlene Vorgehenweisen eingegangen.
Die Schulungsvideos 13 und 14 in der folgenden Playlst sind für die Ergebnisauswerung relevant.
Okay verstehe, gibt es auch die Option direkt im Teddy-Skript oder mit Python zu definieren, welche Ergebnisse in eine Excel geschrieben werden sollen?
Ich muss die Ergebnis Dokumentation auch automatisieren, deswegen werden die Optionen 1 und 2 wahrscheinlich nicht funktionieren.
Also die Optionen 1 und 2 können schon funktionieren, da man dort eine “leere” Tabelle erzeugen kann und diese dann auf die unterschiedlichen CDBs (-> Eingabedateien) anwenden kann.
Wenn du nicht mit einem extra Programm arbeiten möchtest, kannst du den Code für die Result Viewer oder Wingraf-Dateien auch direkt in den TEDDY einfügen.
Diese Vorgehensweise wird meines Wissens auch in der Videoserie erklärt.
Ich habe mir die Videos angesehen und sie haben nur bedingt geholfen.
Mein Problem ist hier, das ich nur eine Teddy Datei habe die immer wieder aufgerufen wird.
Gibt es die Option in Teddy eine neue excel Datei erstellen zu lassen (wenn die schon vorhanden ist neue Nummer also: Schnittgrößen_00, 01,…) und darin Ergebnisse aus der Berechnung zu speichern?
Eine Möglichkeit wäre eine Zählervariable mit STO#XXX in der cdb zu speichern und bei jedem Durchlauf zu erhöhen. Diese Variable kann dann dafür verwendet werden, die Ergebnisse in unterschiedliche Dateien zu speichern.
@asiloisad, @gmay
Vielen Dank für die Hinweise habe es damit hinbekommen
Habe es mit #include gelöst und dann mit Python eine Ergebnisstabelle erstellt, die für jede Eingabe eine separates Ergebnis-Sheet in Excel erstellt.
Das einzige was jetzt noch stört sind die vielen Nachkommastellen. Ich habe versucht mit den Befehl DBO ‘*’ ND 2 anzupassen, aber leider hatte das keine Auswirkung.