Schleife erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
yozan
User
Beiträge: 3
Registriert: Freitag 18. Januar 2019, 16:03

Hallo zusammen,

Ich bin was das programmieren angeht noch sehr unerfahren und muss für mein Projekt eine automatisierte Messeinrichtung erstellen.
Die Messung soll insg. 10 mal wiederholt werden, weshalb ich eine Schleife erstellen wollte, anstatt den ganzen Code 10 mal zu kopieren.
Wir kann ich z.B. für diesen vereinfachten Code eine Schleife schreiben:

pyautogui.click(1920, 1200)
pyautogui.PAUSE = 0.5
pyautogui.click(920, 1175)
pyautogui.PAUSE = 0.5

Kann mir bitte jemand damit helfen?
Education is the most powerful weapon we can use to change the world

- Nelson Mandela -
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Code: Alles auswählen

for x, y in ((1920, 1200), (920, 1175)):
       pyautogui.click(x, y)
       pyautogui.PAUSE = 0.5
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Code: Alles auswählen

pyautogui.PAUSE = 0.5
coordinates = [(1920, 1200), (920, 1175)]
for x, y in coordinates:
    pyautogui.click(x, y)
PAUSE als Konstante muss ja sicher nur einmal gesetzt werden.
Benutzeravatar
yozan
User
Beiträge: 3
Registriert: Freitag 18. Januar 2019, 16:03

Das Original ist viel länger, wie würde das dann funktionieren?
Gibt es keine Möglichkeit zu sagen "mach die nächsten 90 Zeilen 10 mal"?
Education is the most powerful weapon we can use to change the world

- Nelson Mandela -
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da wir das Original nicht kennen, haben wir nur aus dem schliessen koennen, was du hier praesentiert hast.

Und hast du auch nur 10 Minuten in ein Python-Tutorial geschaut? Fuer eine simple for-Schleife wird einem da eigentlich alles erklaert.

Code: Alles auswählen

for _ in range(10): 
     ...
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

yozan hat geschrieben: Freitag 18. Januar 2019, 16:26 Das Original ist viel länger, wie würde das dann funktionieren?
Indem du die Liste coordinates entsprechend erweiterst.
Benutzeravatar
yozan
User
Beiträge: 3
Registriert: Freitag 18. Januar 2019, 16:03

Ich hab schon viele Videos geguckt. Da geht es mehr oder weniger um die gleichen Sachen.
Entweder bin ich zu blöd oder die Videos liefern nicht wirklich eine Lösung für meine Aufgabe.
Weiter unten ist mein Code für die Automatisierung.
Nun muss ich dafür sorgen, dass nach dem Abstand mit 12s Wartezeit der Code insg. 10 mal wiederholt wird, damit ich meine Messreihe erhalte.


import pyautogui
import datetime

i = 1

screenWidth, screenHeight = pyautogui.size()

currentMouseX, currentMouseY = pyautogui.position()


pyautogui.moveTo(272, 1182)
pyautogui.PAUSE = 0.5
pyautogui.click(272, 1182)
pyautogui.PAUSE = 0.5
pyautogui.click(336, 1066) #LabVIEW öffnen
pyautogui.PAUSE = 0.5
pyautogui.moveTo(344, 382)
pyautogui.PAUSE = 0.5
pyautogui.click(344, 382) #Messen klicken
pyautogui.PAUSE = 12 #12s Wartezeit für Messung


pyautogui.moveTo(900, 586)
pyautogui.PAUSE = 0.5
pyautogui.rightClick(900, 586) #Rechtsklick auf Druckkurve
pyautogui.PAUSE = 3
pyautogui.moveTo(940, 600)
pyautogui.PAUSE = 0.5
pyautogui.moveTo(940, 800) #exportieren
pyautogui.PAUSE = 0.5
pyautogui.moveTo(1100, 800)
pyautogui.PAUSE = 0.5
pyautogui.click(1100, 800) #Daten in Zwischenablage exportieren
pyautogui.PAUSE = 0.5
pyautogui.moveTo(400, 1180)
pyautogui.PAUSE = 0.5
pyautogui.click(400, 1180) #Excel öffnen
pyautogui.PAUSE = 0.5
pyautogui.moveTo(80, 220)
pyautogui.PAUSE = 0.5
pyautogui.click(80, 220) #Feld 1A wählen
pyautogui.Pause = 0.5
pyautogui.hotkey('ctrl', 'v')
pyautogui.PAUSE = 1 #Zwischenablage einfügen
pyautogui.moveTo(66, 460)
pyautogui.PAUSE = 0.5
pyautogui.click(66, 460) #Feld 13A auswählen
pyautogui.PAUSE = 0.5
currenttime=datetime.datetime.now()
pyautogui.typewrite(currenttime.strftime('%y.%m.%d. %H:%M:%S')) #Aktuelle Uhrzeit und Datum einfügen
pyautogui.click(666, 666)
pyautogui.PAUSE = 0.5
pyautogui.hotkey('ctrl', 'F11') #Neues Blatt hinzufügen
pyautogui.PAUSE = 0.5
pyautogui.moveTo(330, 1180)
pyautogui.PAUSE = 0.5
pyautogui.click(330, 1180)
pyautogui.PAUSE = 0.5
pyautogui.moveTo(400, 1100)
pyautogui.PAUSE = 0.5
pyautogui.click(400, 1100) #VR Viewer öffnen
pyautogui.PAUSE = 0.5
pyautogui.moveTo(1250, 95)
pyautogui.PAUSE = 0.5
pyautogui.click(1250, 95)
pyautogui.PAUSE = 15 #fokussieren
pyautogui.moveTo(1770, 1120)
pyautogui.PAUSE = 0.5
pyautogui.click(1770, 1120)
pyautogui.PAUSE = 30 #Linsenkrümmung messen
#Mit neuer Linse Vorlage erstellen und diese automatisch starten!
pyautogui.moveTo(330, 1180)
pyautogui.PAUSE = 0.5
pyautogui.click(330, 1180)
pyautogui.PAUSE = 0.5
pyautogui.moveTo(400, 1100)
pyautogui.PAUSE = 0.5
pyautogui.click(400, 1100)
pyautogui.PAUSE = 0.5
pyautogui.moveTo(1770, 1120)
pyautogui.PAUSE = 0.5
pyautogui.click(1770, 1120)
pyautogui.PAUSE = 2 #VR zurückstellen
pyautogui.moveTo(280, 1180)
pyautogui.PAUSE = 0.5
pyautogui.click(280, 1180)
pyautogui.PAUSE = 0.5
pyautogui.moveTo(370, 1080)
pyautogui.PAUSE = 0.5
pyautogui.click(370, 1080) #LabVIEW öffnen
pyautogui.PAUSE = 0.5
pyautogui.moveTo(247, 323)
pyautogui.PAUSE = 0.5
pyautogui.click(247, 323) #Druckniveau um 1 erhöhen
Education is the most powerful weapon we can use to change the world

- Nelson Mandela -
Benutzeravatar
pixewakb
User
Beiträge: 1407
Registriert: Sonntag 24. April 2011, 19:43

Du solltest mal schauen, weil Du Bilder (Ausschnitte aus einem Screenshot) auf dem Bildschirm (Screenshot) von pyautogui suchen kannst. Damit kannst Du dann Deinen Quellcode etwas dynamisieren. So mache ich das.

Du solltest Deinen Quellcode mal in Funktionen aufteilen, so dass Du einzelne Aufgaben bei Bedarf einfügen oder herausnehmen kannst. Ferner solltest Du bitte ein Tutorial durcharbeiten oder eine Einführung in die Arbeit mit Python lesen, das ist sonst wenig erfolgversprechend...

Code: Alles auswählen

>>> for i in range(10):
	print(i)

	
0
1
2
3
4
5
6
7
8
9
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Ich würde keine Videos schauen, sondern das ganze lesen. Dann kann man naschlagen und ausprobieren.
Das offizielle Tutorial gibt es hier.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

LabVIEW hat eine eigene Programmierschnittstelle, warum sollte man das mit pyauto machen wollen?
Antworten