ich bin kompletter Neuling und habe mich seit ein paar Tagen mit Python beschäftig. Mein erstes Programm habe ich bereits geschrieben.
Aktuell schaffe ich es aber nicht den Eingabewert aus dem Grafikfenster "a = entryFF1.get()" in dem 3D Plot darzustellen. Aktuell muss ich diesen direkt in Python Code integrieren a = 5.
Es soll nach dem Bestätigen der ok Taste immer der aktuelle Wert aus "entryFF1" für den 3D-Plot genutzt werden.
Zeile 175-177.
Es wäre super wenn mir jemand von den alten Hasen bei dem Problem helfen könnte.
Schon mal vielen Dank.

import matplotlib.pyplot
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection
import numpy as np
import matplotlib.animation as anim
from tkinter import *
# Fenster ok button
tk1Fensterok = Tk()
tk1Fensterok.title('load data')
tk1Fensterok.geometry('200x50')
# x-Werte Start
# x-Werte import über okButton
def read_entryFF1():
input = entryFF1.get()
a = input
print('a is repalced by')
print(a)
return a
plt.show()
# okButton
ok_button = Button(tk1Fensterok, text='ok', command=read_entryFF1)
ok_button.pack()
# Fenster Eingabe Werte
tkFenster = Tk()
tkFenster.title('Visualizer 3 Zone Triangulation - Created by Felix')
tkFenster.geometry('625x175')
# Rahmen Punkte FreshFood
frameFF = Frame(master=tkFenster, bg='blue')
frameFF.place(x=5, y=5, width=150, height=165)
# Label mit Überschrift für das Konto
labelUeberschriftFF = Label(master=frameFF,
text=' FF compartment [°C]',bg='white')
labelUeberschriftFF.place(x=5, y=5, width=140, height=20)
# Label mit Beschriftung Punkte für das Konto
labelPunkt1 = Label(master=frameFF,
text=' P1 ',bg='white')
labelPunkt1.place(x=5, y=30, width=20, height=20)
labelPunkt2 = Label(master=frameFF,
text=' P2 ',bg='white')
labelPunkt2.place(x=5, y=60, width=20, height=20)
labelPunkt3 = Label(master=frameFF,
text=' P3 ',bg='white')
labelPunkt3.place(x=5, y=90, width=20, height=20)
labelPunkt4 = Label(master=frameFF,
text=' P4 ',bg='white')
labelPunkt4.place(x=5, y=120, width=20, height=20)
# Eingabefeld1 für FreshFood
entryFF1 = Entry(master=frameFF, bg='white')
entryFF1.place(x=65, y=30, width=20, height=20)
entryFF1.insert(0, "4")
# Eingabefeld2 für FreshFood
entryFF2 = Entry(master=frameFF, bg='white')
entryFF2.place(x=65, y=60, width=20, height=20)
# Eingabefeld3 für FreshFood
entryFF3 = Entry(master=frameFF, bg='white')
entryFF3.place(x=65, y=90, width=20, height=20)
# Eingabefeld4 für FreshFood
entryFF4 = Entry(master=frameFF, bg='white')
entryFF4.place(x=65, y=120, width=20, height=20)
# Rahmen Punkte Chill
frameChill = Frame(master=tkFenster, bg='blue')
frameChill.place(x=160, y=5, width=150, height=165)
# Label mit Überschrift für das Konto
labelUeberschriftChill = Label(master= frameChill,
text=' Chill compartment [°C]',bg='white')
labelUeberschriftChill.place(x=5, y=5, width=140, height=20)
# Eingabefeld1 für Chill compartment
entryChill1 = Entry(master=frameChill, bg='white')
entryChill1.place(x=65, y=30, width=20, height=20)
# Eingabefeld2 für Chill compartment
entryChill2 = Entry(master=frameChill, bg='white')
entryChill2.place(x=65, y=60, width=20, height=20)
# Eingabefeld3 für Chill compartment
entryChill3 = Entry(master=frameChill, bg='white')
entryChill3.place(x=65, y=90, width=20, height=20)
# Eingabefeld4 für Chill compartment
entryChill4 = Entry(master=frameChill, bg='white')
entryChill4.place(x=65, y=120, width=20, height=20)
# Rahmen Punkte FZ
frameFZ = Frame(master=tkFenster, bg='blue')
frameFZ.place(x=315, y=5, width=150, height=165)
# Label mit Überschrift für das Konto
labelUeberschriftFZ = Label(master= frameFZ,
text=' FZ compartment [°C]',bg='white')
labelUeberschriftFZ.place(x=5, y=5, width=140, height=20)
# Eingabefeld1 für Zieltemperatur compartment
entryFZ1 = Entry(master=frameFZ, bg='white')
entryFZ1.place(x=65, y=30, width=20, height=20)
# Eingabefeld2 für Z compartment
entryFZ2 = Entry(master=frameFZ, bg='white')
entryFZ2.place(x=65, y=60, width=20, height=20)
# Eingabefeld3 für Z compartment
entryFZ3 = Entry(master=frameFZ, bg='white')
entryFZ3.place(x=65, y=90, width=20, height=20)
# Eingabefeld4 für Z compartment
entryFZ4 = Entry(master=frameFZ, bg='white')
entryFZ4.place(x=65, y=120, width=20, height=20)
# Rahmen Punkte Z
frameZ = Frame(master=tkFenster, bg='black')
frameZ.place(x=470, y=5, width=150, height=165)
# Label mit Überschrift für das Konto
labelUeberschriftZ = Label(master= frameZ,
text=' target temperatures [°C]',bg='white')
labelUeberschriftZ.place(x=5, y=5, width=140, height=20)
# Eingabefeld1 für Zieltemperatur
entryZ1 = Entry(master=frameZ, bg='white')
entryZ1.place(x=65, y=30, width=20, height=20)
# Eingabefeld2 für Z compartment
entryZ2 = Entry(master=frameZ, bg='white')
entryZ2.place(x=65, y=60, width=20, height=20)
# Eingabefeld3 für Z compartment
entryZ3 = Entry(master=frameZ, bg='white')
entryZ3.place(x=65, y=90, width=20, height=20)
# Label mit Beschriftung Punkte ZT für das Konto
labelPunktZT1 = Label(master=frameZ,
text=' FF ',bg='white')
labelPunktZT1.place(x=5, y=30, width=40, height=20)
labelPunktZT2 = Label(master=frameZ,
text=' Chill ',bg='white')
labelPunktZT2.place(x=5, y=60, width=40, height=20)
labelPunktZT3 = Label(master=frameZ,
text=' FZ ',bg='white')
labelPunktZT3.place(x=5, y=90, width=40, height=20)
# Triangulation-Daten P1-P4 + Zieltemperatur
a = 5
'a = entryFF1.get()'
print(a)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# vertices of a pyramid
v = np.array([[a, 1.8, -18.4], [a, 1.8, -18.4], [4, 2.9, -18], [2.1, 1.1, -16.5], [2.1, 1.1, -20.3]])
ax.scatter3D(v[:, 0], v[:, 1], v[:, 2])
ax.scatter3D(4, 2, -18, color = "red")
ax.text(4, 2, -18, "target temperature", (1, 1, 0), color='black', zorder=10)
ax.text(a, 1.8, -18.4, "point 1", (1, 1, 0), color='blue', zorder=10)
ax.text(4, 2.9, -18, "point 2", (1, 1, 0), color='blue', zorder=10)
ax.text(2.1, 1.1, -16.5, "point 3", (1, 1, 0), color='blue', zorder=10)
ax.text(2.1, 1.1, -20.3, "point 4", (1, 1, 0), color='blue', zorder=10)
# generate list of sides' polygons of our pyramid
verts = [ [v[1],v[1],v[4]], [v[0],v[3],v[4]],
[v[2],v[1],v[4]], [v[2],v[3],v[4]], [v[0],v[1],v[2],v[3]]]
# plot sides
ax.add_collection3d(Poly3DCollection(verts,
facecolors='green', linewidths=0.5, edgecolors='b', alpha=0.7))
ax.set_xlabel('FF')
ax.set_ylabel('Chill')
ax.set_zlabel('FZ')
ax.set_title('tetrahedron for 3-zone appliances')
plt.show()
tkFenster.mainloop()
tk1Fensterok.mainloop()