Erstellung von Eingabedateien mit Python

Hallo,

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?

Viele Grüße
Max

Dieser Thread kann geschlossen werden, habe es hinbekommen :slight_smile:

1 Like

Hallo Max,

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? :slight_smile:

Viele Grüße
Frederik

Hi Frederik,

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. :slight_smile:

Ich werde dann sicher auch nochmal deine Hilfe brauchen. Wenn ich alles berechnet habe, muss ich die Dateien noch auswerten.

Viele Grüße
Max

1 Like

Ah ok, du änderst sozusagen nicht die TEDDY-Dateien an sich, sondern die Eingabedatei.
Guter Ansatz :smile:.

Viel Erfolg weiterhin bei deiner Arbeit.

Genau ich nutze eigentlich nur eine Eingabedatei. Die überschreibe ich jedes mal und lass sie neu berechnen.

Danke :slight_smile:

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.

LG
MAx

Im Prinzip stehen dir verschiedene Möglichkeiten zur Verfügung.

  1. Result Viewer → Tabellen
  2. Graphic → Listen
  3. 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.

1 Like

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.

Vielen Dank, dann schaue ich mir die Videos komplett an und probiere erstmal wie es am besten klappt.

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?

create table in result viewer, set the excel export for your table, in tedddy run code #include "filename.results" and thats all

2 Likes

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.

Grüße
gmay

@asiloisad, @gmay
Vielen Dank für die Hinweise habe es damit hinbekommen :slight_smile:

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.

grafik