Seite 1 von 1

Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 16:10
von yozan
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?

Re: Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 16:17
von __deets__

Code: Alles auswählen

for x, y in ((1920, 1200), (920, 1175)):
       pyautogui.click(x, y)
       pyautogui.PAUSE = 0.5

Re: Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 16:19
von snafu

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.

Re: Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 16:26
von yozan
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"?

Re: Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 16:30
von __deets__
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): 
     ...

Re: Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 17:34
von snafu
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.

Re: Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 22:21
von yozan
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

Re: Schleife erstellen

Verfasst: Freitag 18. Januar 2019, 23:00
von pixewakb
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

Re: Schleife erstellen

Verfasst: Samstag 19. Januar 2019, 00:08
von sparrow
Ich würde keine Videos schauen, sondern das ganze lesen. Dann kann man naschlagen und ausprobieren.
Das offizielle Tutorial gibt es hier.

Re: Schleife erstellen

Verfasst: Samstag 19. Januar 2019, 14:35
von Sirius3
LabVIEW hat eine eigene Programmierschnittstelle, warum sollte man das mit pyauto machen wollen?