Formular mit Eingabefeldern, deren Werte weiter berechnet werden

Fragen zu Tkinter.
Antworten
Firlefanzus
User
Beiträge: 12
Registriert: Montag 18. November 2019, 11:22

Hallo TKinter-Pros,

als blutiger Anfänger wende ich mich hoffnungsvoll an Euch, da ich in meinen Python-Büchern zu meinem Vorhaben nichts finden konnte.
Wiederholt geht es bei Formularen um einen einzutragenden Wert, der dann beim Drücken eines bestimmten Schalters das Ergebnis der hinterlegten Rechenoperation ausspuckt.
Leider finde ich nirgends, wie durch Angabe bestimmter Start-Werte deren weiterberechnetes Ergebnis ins nächste Feld geschrieben wird (z.B. wie in Excel)

Konkret geht es um Stoßdämpfer-Federn: Deren Federrate, Federhub, Blockmaß und Kraft zu berechnen ist.

Die Berechnungen konnte ich als Python Code recht flott durchführen.

Nun wollte ich diese Aufgabe in ein benutzerfreundliches Formular mit Eingabefeldern überführen:

Ein Ausgangs-Wert (Zahl) wird in Feld 5 eingetragen.
"Nehme diesen Ausgangs-Wert, rechne damit und schreibe das Ergebnis in Feld 7."
"Nehme diesen Ausgangs-Wert, rechne damit und schreibe das Ergebnis in Feld 8."
"Nehme diesen Ausgangs-Wert, rechne damit und schreibe das Ergebnis in Feld 9."
"Nehme diesen Ausgangs-Wert, rechne damit und schreibe das Ergebnis in Feld 10."
etc.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Mein bisheriges "Werk" sieht wie folgt aus (das Formular ohne Berechnungs-Block <=Zeile 148-225> funktioniert).
Die Funktionen, jeweils mitsamt get-Methode, sollten funktionieren.
Aber wie wird darin jeweils das Problem "schreibeErgebnis(Feldxy)" gelöst?
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
from tkinter import *

master = Tk()
Label(master, text="Datum").grid(row=0, sticky='w', columnspan=1)
Label(master, text="").grid(row=1)

Label(master, text="Dämpfer-Typ").grid(row=2, sticky='w', columnspan=1)
Label(master, text="Feder-Typ").grid(row=3, sticky='w', columnspan=1)
Label(master, text="").grid(row=4)

Label(master, text="Federrate lbs/inch").grid(row=5, sticky='w', columnspan=1)
Label(master, text="").grid(row=6)

Label(master, text="Federrate kg/inch").grid(row=7, sticky='w', columnspan=1)
Label(master, text="Federrate kg/cm").grid(row=8, sticky='w', columnspan=1)
Label(master, text="Federrate N/cm").grid(row=9, sticky='w', columnspan=1)
Label(master, text="Federrate N/mm").grid(row=10, sticky='w', columnspan=1)
Label(master, text="").grid(row=11)

Label(master, text="Feder-Länge ungespannt (freie Länge) mm").grid(row=12, sticky='w', columnspan=1)
Label(master, text="").grid(row=13)
Label(master, text="Zwischenraum 01 mm").grid(row=14, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 02 mm").grid(row=15, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 03 mm").grid(row=16, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 04 mm").grid(row=17, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 05 mm").grid(row=18, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 06 mm").grid(row=19, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 07 mm").grid(row=20, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 08 mm").grid(row=21, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 09 mm").grid(row=22, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 10 mm").grid(row=23, sticky='w', columnspan=1)
Label(master, text="Max. Feder-Hub (Summe Zwischenräume) mm").grid(row=24, sticky='w', columnspan=1)
Label(master, text="").grid(row=25)

Label(master, text="Draht-Durchmesser mm").grid(row=26, sticky='w', columnspan=1)
Label(master, text="Volle Windungen Anzahl").grid(row=27, sticky='w', columnspan=1)
Label(master, text="Windungs-Anfang oben mm").grid(row=28, sticky='w', columnspan=1)
Label(master, text="Windungs-Ende unten mm").grid(row=29, sticky='w', columnspan=1)
Label(master, text="Blockmaß mm").grid(row=30, sticky='w', columnspan=1)
Label(master, text="").grid(row=31)

Label(master, text="Daempfer-Hub mm").grid(row=32, sticky='w', columnspan=1)
Label(master, text="").grid(row=33)

Label(master, text="Max. möglicher Feder-Hub (Freie Länge-Blockmaß) mm").grid(row=34, sticky='w', columnspan=1)
Label(master, text="Max. mögliche Vorspannung mm").grid(row=35, sticky='w', columnspan=1)
Label(master, text="").grid(row=36)

Label(master, text="Max. mögliche Anfangskraft N").grid(row=37, sticky='w', columnspan=1)
Label(master, text="Max. mögliche Anfangskraft kg").grid(row=38, sticky='w', columnspan=1)
Label(master, text="").grid(row=39)

Label(master, text="Max. mögliche Endkraft N").grid(row=40, sticky='w', columnspan=1)
Label(master, text="Max. mögliche Endkraft kg").grid(row=41, sticky='w', columnspan=1)

e0 = Entry(master)
#e1 = Entry(master)
e2 = Entry(master)
e3 = Entry(master)
#e4 = Entry(master)
e5 = Entry(master)
#e6 = Entry(master)
e7 = Entry(master)
e8 = Entry(master)
e9 = Entry(master)
e10 = Entry(master)
#e11 = Entry(master)
e12 = Entry(master)
#e13 = Entry(master)
e14 = Entry(master)
e15 = Entry(master)
e16 = Entry(master)
e17 = Entry(master)
e18 = Entry(master)
e19 = Entry(master)
e20 = Entry(master)
e21 = Entry(master)
e22 = Entry(master)
e23 = Entry(master)
e24 = Entry(master)
#e25 = Entry(master)
e26 = Entry(master)
e27 = Entry(master)
e28 = Entry(master)
e29 = Entry(master)
e30 = Entry(master)
#e31 = Entry(master)
e32 = Entry(master)
#e33 = Entry(master)
e34 = Entry(master)
e35 = Entry(master)
#e36 = Entry(master)
e37 = Entry(master)
e38 = Entry(master)
#e39 = Entry(master)
e40 = Entry(master)
e41 = Entry(master)


e0.grid(row=0, column=1)
#e1.grid(row=1, column=1)
e2.grid(row=2, column=1)
e3.grid(row=3, column=1)
#e4.grid(row=4, column=1)
e5.grid(row=5, column=1)
#e6.grid(row=6, column=1)
e7.grid(row=7, column=1)
e8.grid(row=8, column=1)
e9.grid(row=9, column=1)
e10.grid(row=10, column=1)
#e11.grid(row=11, column=1)
e12.grid(row=12, column=1)
#e13.grid(row=13, column=1)
e14.grid(row=14, column=1)
e15.grid(row=15, column=1)
e16.grid(row=16, column=1)
e17.grid(row=17, column=1)
e18.grid(row=18, column=1)
e19.grid(row=19, column=1)
e20.grid(row=20, column=1)
e21.grid(row=21, column=1)
e22.grid(row=22, column=1)
e23.grid(row=23, column=1)
e24.grid(row=24, column=1)
#e25.grid(row=25, column=1)
e26.grid(row=26, column=1)
e27.grid(row=27, column=1)
e28.grid(row=28, column=1)
e29.grid(row=29, column=1)
e30.grid(row=30, column=1)
#e31.grid(row=31, column=1)
e32.grid(row=32, column=1)
#e33.grid(row=33, column=1)
e34.grid(row=34, column=1)
e35.grid(row=35, column=1)
#e36.grid(row=36, column=1)
e37.grid(row=37, column=1)
e38.grid(row=38, column=1)
#e39.grid(row=39, column=1)
e40.grid(row=40, column=1)
e41.grid(row=41, column=1)

# Runden auf 2 Kommastellen
rx = round(x,2)

# Funktion zur Umrechnung der Federrate
# In der Funktion federrate() wird die Methode get() auf das Eingabefeld e5 angewendet.
# Sie liefert die eingegebene Zeichenkette als Rückgabewert.
# Diese Zeichenkette wird in der Variablen kgproinch gespeichert.
def federrate1():
kgproinch = e5.get()
wert5 = float(kgproinch)
# Durch die Funktion float() wird die Zeichenkette in eine Zahl umgewandelt
# und in der Variablen wert5 gespeichert.
# Mit Wert5 wird gerechnet und das Ergebnis in Feld e7 geschrieben.
schreibeErgebnis(e7, rx) = wert5 * 0.454

def federrate2():
kgprocm = e5.get()
wert5 = float(kgprocm)
schreibeErgebnis(e8, rx) = wert5 / 2.54 * 0.454

def federrate3():
Nprocm = e5.get()
wert5 = float(Nprocm)
schreibeErgebnis(e9, rx) = (wert5 / 2.54 * 0.454) * 9.81

def federrate4():
Npromm = e5.get()
wert5 = float(Npromm)
schreibeErgebnis(e10, rx) = (wert5 / 2.54 * 0.454) * 9.81 / 10

def maxfederhub():
zw01 = e14.get()
zw02 = e15.get()
zw03 = e16.get()
zw04 = e17.get()
zw05 = e18.get()
zw06 = e19.get()
zw07 = e20.get()
zw08 = e21.get()
zw09 = e22.get()
zw10 = e23.get()
schreibeErgebnis(e24) = e14 + e15 + e16 + e17 + e18 + e19 + e20 + e21 + e22 + e23

def blockmass():
drahtdurchm = e26.get()
windanzahl = e27.get()
windanfang = e28.get()
windende = e29.get()
schreibeErgebnis(e30) = e26 * e27 + e28 + e29

def maxvorspannung():
freielaenge = e12.get()
blockmass = e30.get()
daempferhub = e32.get()
schreibeErgebnis(e35) = e12 - e30 - e32

def maxanfangskraftN():
maxvorspannung = e35.get()
federrateNpromm = e10.get()
schreibeErgebnis(e37) = e35 * e10

def maxanfangskraftKg():
maxvorspannung = e35.get()
federrateNpromm = e10.get()
schreibeErgebnis(e38) = e35 * e10 / 9.81

def maxendkraftmaxvorspannungN():
maxvorspannung = e35.get()
federrateNpromm = e10.get()
daempferhub = e32.get()
schreibeErgebnis(e40) = (e35 * e10) + e32 * e10

def maxendkraftmaxvorspannungKg():
maxvorspannung = e35.get()
federrateNpromm = e10.get()
daempferhub = e32.get()
schreibeErgebnis(e41) = ((e35 * e10) + e32 * e10) / 9.81

mainloop( )
--------------------------------------------------------------------------------------------------------------------------------------------

Vielleicht kann mir jemand unter die Arme greifen.
Gerne bin ich auch bereit, Euren Aufwand zu bezahlen.

Vorab schon mal besten Dank. 8)
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Die ganzen `e123`-Variablen sollten bessere Namen bekommen. Entry-Objekte haben eine `insert`-Methode, um den Inhalt zu verändern. Für die Rechnung mußt Du auch noch den Inhalt der anderen Entry-Objekte in Zahlen umwandeln, z.B:

Code: Alles auswählen

def maxendkraftmaxvorspannungKg():
    maxvorspannung = float(e35.get())
    federrateNpromm = float(e10.get())
    daempferhub = float(e32.get())
    e41.insert(0, ((maxvorspannung * federrateNpromm) + daempferhub * federrateNpromm) / 9.81)
Firlefanzus
User
Beiträge: 12
Registriert: Montag 18. November 2019, 11:22

Vielen herzlichen Dank!

Jetzt habe ich bessere Namen vergeben, aber leider rechnet da noch nix.
So sieht das jetzt aus:

from tkinter import *

master = Tk()
Label(master, text="Datum").grid(row=0, sticky='w', columnspan=1)
Label(master, text="").grid(row=1)

Label(master, text="Dämpfer-Typ").grid(row=2, sticky='w', columnspan=1)
Label(master, text="Feder-Typ").grid(row=3, sticky='w', columnspan=1)
Label(master, text="").grid(row=4)

Label(master, text="Federrate lbs/inch").grid(row=5, sticky='w', columnspan=1)
Label(master, text="").grid(row=6)

Label(master, text="Federrate kg/inch").grid(row=7, sticky='w', columnspan=1)
Label(master, text="Federrate kg/cm").grid(row=8, sticky='w', columnspan=1)
Label(master, text="Federrate N/cm").grid(row=9, sticky='w', columnspan=1)
Label(master, text="Federrate N/mm").grid(row=10, sticky='w', columnspan=1)
Label(master, text="").grid(row=11)

Label(master, text="Feder-Länge ungespannt (freie Länge) mm").grid(row=12, sticky='w', columnspan=1)
Label(master, text="").grid(row=13)
Label(master, text="Zwischenraum 01 mm").grid(row=14, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 02 mm").grid(row=15, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 03 mm").grid(row=16, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 04 mm").grid(row=17, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 05 mm").grid(row=18, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 06 mm").grid(row=19, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 07 mm").grid(row=20, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 08 mm").grid(row=21, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 09 mm").grid(row=22, sticky='w', columnspan=1)
Label(master, text="Zwischenraum 10 mm").grid(row=23, sticky='w', columnspan=1)
Label(master, text="Max. Feder-Hub (Summe Zwischenräume) mm").grid(row=24, sticky='w', columnspan=1)
Label(master, text="").grid(row=25)

Label(master, text="Draht-Durchmesser mm").grid(row=26, sticky='w', columnspan=1)
Label(master, text="Volle Windungen Anzahl").grid(row=27, sticky='w', columnspan=1)
Label(master, text="Windungs-Anfang oben mm").grid(row=28, sticky='w', columnspan=1)
Label(master, text="Windungs-Ende unten mm").grid(row=29, sticky='w', columnspan=1)
Label(master, text="Blockmaß mm").grid(row=30, sticky='w', columnspan=1)
Label(master, text="").grid(row=31)

Label(master, text="Daempfer-Hub mm").grid(row=32, sticky='w', columnspan=1)
Label(master, text="").grid(row=33)

Label(master, text="Max. möglicher Feder-Hub (Freie Länge-Blockmaß) mm").grid(row=34, sticky='w', columnspan=1)
Label(master, text="Max. mögliche Vorspannung mm").grid(row=35, sticky='w', columnspan=1)
Label(master, text="").grid(row=36)

Label(master, text="Max. mögliche Anfangskraft N").grid(row=37, sticky='w', columnspan=1)
Label(master, text="Max. mögliche Anfangskraft kg").grid(row=38, sticky='w', columnspan=1)
Label(master, text="").grid(row=39)

Label(master, text="Max. mögliche Endkraft N").grid(row=40, sticky='w', columnspan=1)
Label(master, text="Max. mögliche Endkraft kg").grid(row=41, sticky='w', columnspan=1)


datum = Entry(master)
#zeile1_leerAbstand = Entry(master)
daempferTyp = Entry(master)
federTyp = Entry(master)
#zeile4_leerAbstand = Entry(master)
federrateLbsproinch = Entry(master)
#zeile6_leerAbstand = Entry(master)
federrateKgproinch = Entry(master)
federrateKgprocm = Entry(master)
federrateNprocm = Entry(master)
federrateNpromm = Entry(master)
#zeile11_leerAbstand = Entry(master)
federLaengeungespannt = Entry(master)
#zeile13_leerAbstand = Entry(master)
zwischenraum01 = Entry(master)
zwischenraum02 = Entry(master)
zwischenraum03 = Entry(master)
zwischenraum04 = Entry(master)
zwischenraum05 = Entry(master)
zwischenraum06 = Entry(master)
zwischenraum07 = Entry(master)
zwischenraum08 = Entry(master)
zwischenraum09 = Entry(master)
zwischenraum10 = Entry(master)
summeZwischenraeume = Entry(master)
#zeile25_leerAbstand = Entry(master)
drahtDurchmessermm = Entry(master)
volleWindungenanzahl = Entry(master)
windungsAnfangoben = Entry(master)
windungsAnfangunten = Entry(master)
blockMassmm = Entry(master)
#zeile31_leerAbstand = Entry(master)
daempferHubmm = Entry(master)
#zeile33_leerAbstand = Entry(master)
maxFederhubmm = Entry(master)
maxVorspannungmm = Entry(master)
#zeile36_leerAbstand = Entry(master)
maxAnfangskraftN = Entry(master)
maxAnfangskraftkg = Entry(master)
#zeile39_leerAbstand = Entry(master)
maxEndkraftN = Entry(master)
maxEndkraftkg = Entry(master)

datum.grid(row=0, column=1)
#zeile1_leerAbstand.grid(row=1, column=1)
daempferTyp.grid(row=2, column=1)
federTyp.grid(row=3, column=1)
#zeile4_leerAbstand.grid(row=4, column=1)
federrateLbsproinch.grid(row=5, column=1)
#zeile6_leerAbstand.grid(row=6, column=1)
federrateKgproinch.grid(row=7, column=1)
federrateKgprocm.grid(row=8, column=1)
federrateNprocm.grid(row=9, column=1)
federrateNpromm.grid(row=10, column=1)
#zeile11_leerAbstand.grid(row=11, column=1)
federLaengeungespannt.grid(row=12, column=1)
#zeile13_leerAbstand.grid(row=13, column=1)
zwischenraum01.grid(row=14, column=1)
zwischenraum02.grid(row=15, column=1)
zwischenraum03.grid(row=16, column=1)
zwischenraum04.grid(row=17, column=1)
zwischenraum05.grid(row=18, column=1)
zwischenraum06.grid(row=19, column=1)
zwischenraum07.grid(row=20, column=1)
zwischenraum08.grid(row=21, column=1)
zwischenraum09.grid(row=22, column=1)
zwischenraum10.grid(row=23, column=1)
summeZwischenraeume.grid(row=24, column=1)
#zeile25_leerAbstand.grid(row=25, column=1)
drahtDurchmessermm.grid(row=26, column=1)
volleWindungenanzahl.grid(row=27, column=1)
windungsAnfangoben.grid(row=28, column=1)
windungsAnfangunten.grid(row=29, column=1)
blockMassmm.grid(row=30, column=1)
#zeile31_leerAbstand.grid(row=31, column=1)
daempferHubmm.grid(row=32, column=1)
#zeile33_leerAbstand.grid(row=33, column=1)
maxFederhubmm.grid(row=34, column=1)
maxVorspannungmm.grid(row=35, column=1)
#zeile36_leerAbstand.grid(row=36, column=1)
maxAnfangskraftN.grid(row=37, column=1)
maxAnfangskraftkg.grid(row=38, column=1)
#zeile39_leerAbstand.grid(row=39, column=1)
maxEndkraftN.grid(row=40, column=1)
maxEndkraftkg.grid(row=41, column=1)

# Runden auf 2 Kommastellen
# rx = round(x,2)

# Funktion zur Umrechnung der Federrate
# In der Funktion federrate() wird die Methode get() auf das Eingabefeld federrateLbsproinch angewendet.
# Sie liefert die eingegebene Zeichenkette als Rückgabewert.
# Diese Zeichenkette wird in der Variablen kgproinch gespeichert.

def federrate1():
kgproinch = float(federrateLbsproinch.get())
federrateKgproinch.insert(0, kgproinch * 0.454)

def federrate2():
kgprocm = float(federrateLbsproinch.get())
federrateKgprocm.insert(0, kgprocm / 2.54 * 0.454)

def federrate3():
Nprocm = float(federrateLbsproinch.get())
federrateNprocm.insert(0, (Nprocm / 2.54 * 0.454) * 9.81)

def federrate4():
Npromm = float(federrateLbsproinch.get())
federrateNpromm.insert(0, (Npromm / 2.54 * 0.454) * 9.81 / 10)

def maxfederhub():
zw01 = float(zwischenraum01.get())
zw02 = float(zwischenraum02.get())
zw03 = float(zwischenraum03.get())
zw04 = float(zwischenraum04.get())
zw05 = float(zwischenraum05.get())
zw06 = float(zwischenraum06.get())
zw07 = float(zwischenraum07.get())
zw08 = float(zwischenraum08.get())
zw09 = float(zwischenraum09.get())
zw10 = float(zwischenraum10.get())
summeZwischenraeume.insert(0, zw01 + zw02 + zw03 + zw04 + zw05 + zw06 + zw07 + zw08 + zw09 + zw10)

def blockmass():
drahtdurchm = float(drahtDurchmessermm.get())
windanzahl = float(volleWindungenanzahl.get())
windanfang = float(windungsAnfangoben.get())
windende = float(windungsAnfangunten.get())
blockMassmm.insert(0, drahtdurchm * windanzahl + windanfang + windende)

def maxvorspannung():
freielaenge = float(federLaengeungespannt.get())
blockmass = float(blockMassmm.get())
daempferhub = float(daempferHubmm.get())
maxVorspannungmm.insert(0, freielaenge - blockmass - daempferhub)

def maxanfangskraftN():
maxvorspannung = float(maxVorspannungmm.get())
federrateNmm = float(federrateNpromm.get())
maxAnfangskraftN.insert(0, maxvorspannung * federrateNmm)

def maxanfangskraftKg():
maxvorspannung = float(maxVorspannungmm.get())
federrateNmm = float(federrateNpromm.get())
maxAnfangskraftkg.insert(0, maxvorspannung * federrateNmm / 9.81)

def maxendkraftmaxvorspannungN():
maxvorspannung = float(maxVorspannungmm.get())
federrateNmm = float(federrateNpromm.get())
daempferhub = float(daempferHubmm.get())
maxEndkraftN.insert(0, (maxvorspannung * federrateNmm) + daempferhub * federrateNmm)

def maxendkraftmaxvorspannungKg():
maxvorspannung = float(maxVorspannungmm.get())
federrateNmm = float(federrateNpromm.get())
daempferhub = float(daempferHubmm.get())
maxEndkraftkg.insert(0, ((maxvorspannung * federrateNmm) + daempferhub * federrateNmm) / 9.81)

mainloop( )


Vielleicht kannst Du ja nochmal drüberschaun.
Gerne spende ich Dir 'was via Paypal
Vielen Dank schon mal!
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Du mußt auch noch Deine Funktionen aufrufen. Wann soll denn das passieren?
Firlefanzus
User
Beiträge: 12
Registriert: Montag 18. November 2019, 11:22

Sobald ich die Mess-Werte eingetragen habe, soll's anhand der hinterlegten Formeln losgehen, wie in Excel.
Gerne auch mit einem Start-Button.

In Spyder trage ich die bekannten sowie die gemessenen Werte ein und drücke den "Ausführen"-Button, dann rechnet's alles prompt durch:

Code: Alles auswählen

print()
print()
print()
# Datum letzte Aenderung
datelastchange = "2019-10-19"

# Daempfer-Typ
shocktype = "FOX Vanilla LSC, 241 x 76 mm, Propain Rage Finn"

# Feder-Typ
springtype = "Oehlins 18073-14 / 96 (548) / 76 | 36/143/96 (di/l/Rate N/mm)"

# FEDERRATE

# SpringRate
# springrate_lbsproinch = int(input("Federrate in lbs/inch: "))
springrate_lbsproinch = 548

springrate_kgproinch = springrate_lbsproinch * 0.454
springrate_kgprocm = springrate_lbsproinch / 2.54 * 0.454
springrate_Nprocm = (springrate_lbsproinch / 2.54 * 0.454) * 9.81
springrate_Npromm = (springrate_lbsproinch / 2.54 * 0.454) * 9.81 / 10

print("Datum: ", datelastchange)
print("Daempfer-Typ: ", shocktype)
print()
print("Feder-Typ: ", springtype)
print()
print("FEDERRATE:")
print()
print("Federrate (lbs/inch): ", springrate_lbsproinch)
print("Federrate (kg/inch): ", round(springrate_kgproinch, 2))
print()
print("Federrate (kg/cm): ", round(springrate_kgprocm, 2))
print("Federrate (N/cm): ", round(springrate_Nprocm, 2))
print("Federrate (N/mm): ", round(springrate_Npromm, 2))
print()
print()
# VERMESSEN DER FEDER

# Freie, ungespannte Laenge der Feder
# springfreelength = int(input("Freie, ungespannte Länge der Feder in mm: "))
springfreelength = 143

# MaxHubMessung

# via ZwischenRaeume
# ZwR01 = float(input("Zwischenraum 01 in mm: "))
ZwR01 = 7.0
# ZwR02 = float(input("Zwischenraum 02 in mm: "))
ZwR02 = 14.5
# ZwR03 = float(input("Zwischenraum 03 in mm: "))
ZwR03 = 14.5
# ZwR04 = float(input("Zwischenraum 04 in mm: "))
ZwR04 = 14.5
# ZwR05 = float(input("Zwischenraum 05 in mm: "))
ZwR05 = 14.5
# ZwR06 = float(input("Zwischenraum 06 in mm: "))
ZwR06 = 13.0
# ZwR07 = float(input("Zwischenraum 07 in mm: "))
ZwR07 = 0
# ZwR08 = float(input("Zwischenraum 08 in mm: "))
ZwR08 = 0
# ZwR09 = float(input("Zwischenraum 09 in mm: "))
ZwR09 = 0
# ZwR10 = float(input("Zwischenraum 10 in mm: "))
ZwR10 = 0

maxfederhub = ZwR01 + ZwR02 + ZwR03 + ZwR04 + ZwR05 + ZwR06 + ZwR07 + ZwR08 + ZwR09 + ZwR10

# Blockmass

# via Drahtdicke x Anzahl Windungen
# drahtdurchmesser = float(input("Draht-Durchmesser in mm: "))
drahtdurchmesser = 9.5
# windanfangoben = float(input("Windungs-Anfang oben, Höhe in mm: "))
windvoll = 5
# windanfangunten = float(input("Windungs-Ende unten, Höhe in mm: "))
windanfangoben = 8.5
# windvoll = float(input("Volle Windungs-Anzahl: "))
windendeunten = 9.0

windblockmass = drahtdurchmesser * windvoll + windanfangoben + windendeunten

print("VERMESSUNG DER FEDER:")
print()
print("Freie Feder-Laenge <mm>: ", springfreelength)
print("Max. Feder-Hub, Ermittlung ueber Zwischenraeume <mm>: ", round(maxfederhub, 2))
print("Blockmass der Feder, (= Freie Laenge - Max. Feder-Hub) <mm>: ", round(springfreelength - maxfederhub, 2))
print("Blockmass der Feder, Ermittlung ueber Drahtdurchmesser x Anzahl Windungen <mm>: ", round(windblockmass, 2))
print("Max. moeglicher Feder-Hub bei 0 mm Vorspannung (= Freie Laenge - Blockmass) <mm>: ", round(springfreelength - windblockmass, 2))
print()
print()
# MAXIMAL MOEGLICHE VORSPANNUNG DER FEDER IM DAEMPFER

# SpringMaxPrestress
shockstroke = 76

print("MAXIMAL MOEGLICHE VORSPANNUNG DER FEDER IM DAEMPFER:")
print()
print("Daempfer-Hub <mm>: ", shockstroke)
print()
print("Max. moegliche Vorspannung der Feder (Feder-Hub - Daempfer-Hub) <mm>: ", round(springfreelength - windblockmass - shockstroke, 2))
print("Gespannte Laenge der Feder im Daempfer MINDESTENS, NICHT UNTERSCHREITEN!! <mm>: ", round(springfreelength - (springfreelength - windblockmass - shockstroke), 2))
print()

# MAXIMAL MOEGLICHE ANFANGSKRAFT DER FEDER IM DAEMPFER
maxanfangskraft_N = (springfreelength - windblockmass - shockstroke) * springrate_Npromm
maxanfangskraft_kg = ((springfreelength - windblockmass - shockstroke) * springrate_Npromm) / 9.81

print ("Max. moegliche Anfangskraft <N>: ", round(maxanfangskraft_N, 2))
print ("Max. moegliche Anfangskraft <kg>: ", round(maxanfangskraft_kg, 2))
print()

# MAXIMAL MOEGLICHE ENDKRAFT DER FEDER IM DAEMPFER BEI MAX. MOEGLICHER ANFANGSKRAFT = MAX. MOEGLICHER VORSPANNUNG
maxendkraft_N = ((springfreelength - windblockmass - shockstroke) * springrate_Npromm) + shockstroke * springrate_Npromm
maxendkraft_kg = (((springfreelength - windblockmass - shockstroke) * springrate_Npromm) + shockstroke * springrate_Npromm) / 9.81

print ("Max. moegliche Endkraft bei max. moeglicher Anfangskraft (= max. moeglicher Vorspannung) <N>: ", round(maxendkraft_N, 2))
print ("Max. moegliche Endkraft bei max. moeglicher Anfangskraft (= max. moeglicher Vorspannung) <kg>: ", round(maxendkraft_kg, 2))

----------------------------------
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte nutze die Code-Tags (</>-Knopf im vollstaendigen Editor) um deinen Code hier lesbar und insbesondere unter Beibehaltung der in Python relevanten Einrueckungen darzustellen. Ich hab' das jetzt mal fuer dich gemacht, aber in Zukunft bitte selbst machen.
Firlefanzus
User
Beiträge: 12
Registriert: Montag 18. November 2019, 11:22

Oh, sorry.
Vielen Dank!
Antworten