Toon posts:

[automator] Hulp gezocht bij het afmaken van dit script

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben kunstenares en heb vanaf 6 september in CBK (centrum beeldende kunst) Amsterdam een expositie. Het werk dat ik exposeer is in het kort gezegt een installatie met een HP printer/scanner, met op het scan-glas bewegende objecten die op de het scan glas staan.

Een kennis van mij heeft voor mij een programma/script geschreven in mijn mac-laptop, via het 'automator' programma (mogelijk kan ik je er nadien meer over vertellen). Het is geschreven om de printer/scanner op afstand te besturen via een daarop aangesloten router, zodat de printer met intervallen de opdracht krijg de bewegende objecten te registreren. Door omstandigheden is onze samenwerking gister stop gezet. De programmeur die voor mij dit programma geschreven heeft is nog voordat ik hem kon spreken naar huis gegaan, en heeft alle mogelijkheden tot communicatie af gekapt. Hij heeft alleen via de sms laten weten dat alles af was en werkte. De programma's zijn dus zo goed als klaar (af geschreven, de opdrachten in codes, ik denk Javascript), maar weet ik persoonlijk niet hoe ik ermee mijn werk moet besturen. Gisternacht heeft een kennis van mij me via skype geholpen het een en ander te onderzoeken in de codering, helaas heeft ook hij geen ervaring met automater en lukte het niet zo goed me te helpen. We zijn wel een stuk wijzer geworden.

Er zijn drie workflows geschreven in automator. 1 voor de intervals aangepast aan het uur en de dagen. 2 om een print opdracht door te sturen naar InDesign, waarin een randloos a4 opmaak word gemaakt van een afbeelding, en die wordt vervolgens naar de printer gestuurd en afgedrukt. 3 werkt niet, en heb ik ook nog niet aan de praat gekregen. Waar het niet lukt zijn de scan functie. De printer scanner krijgt nog niet de opdracht te scannen, en deze naar het desbetreffende mapje te sturen op het bureaublad. In 2 lukt het wel om uit dit mapje een afbeelding te halen en die direct af te drukken.

Volgende week donderdag, 30 augustus, dien ik het werk aan te leveren bij de galerie... maar ik ben nu noodzakelijkerwijs opzoek naar hoe ik het werk via een andere weg kan afmaken. Helaas is mijn technische kennis matig, maar zeker niet goed genoeg om dat in mijn eentje te kunnen afronden. Ik heb het script en screenshots hieronder toegevoegd.

Ik ben heel erg dankbaar als er iemand is die mij wilt en kan verder helpen in de juiste richting. Graag doe ik er iets voor terug of kijk ik of ik het op een bepaalde manier kan vergoeden.

__________________________________________________________________________________________

HIERONDER VOLGEN DE 3 VERSCHILLENDE SCRIPTS:

INTERVAL

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
global day_of_week
global hour_of_day
global interval
global b


on check_elapsed()
    
    set day_of_week to do shell script "date +%u"
    set hour_of_day to do shell script "date +%H"
    
    set_interval(day_of_week, hour_of_day)
    
end check_elapsed

on set_interval(day_of_week, hour_of_day)
    
    set sched_tue to {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0, 0}
    set sched_wed to {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0, 0}
    set sched_thu to {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0, 0}
    set sched_fri to {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0, 0}
    set sched_sat to {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0, 0}
    set sched_sun to {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0, 0}
    
    if day_of_week as string is equal to "2" then
        
        set interval to item {hour_of_day + 1} of sched_tue
        
    else if day_of_week as string is equal to "3" then
        
        set interval to item {hour_of_day + 1} of sched_wed
        
    else if day_of_week as string is equal to "4" then
        
        set interval to item {hour_of_day + 1} of sched_thu
        
    else if day_of_week as string is equal to "5" then
        
        set interval to item {hour_of_day + 1} of sched_fri
        
    else if day_of_week as string is equal to "6" then
        
        set interval to item {hour_of_day + 1} of sched_sat
        
    else if day_of_week as string is equal to "7" then
        
        set interval to item {hour_of_day + 1} of sched_sun
        
    end if
    
    display dialog "day of week: " & day_of_week & ", hour of day: " & hour_of_day & ", corresponding interval: " & interval
    
end set_interval

on run {input, parameters}
    
    check_elapsed()
    
    delay interval
    
    return input
    
end run

__________________________________________________________________________________

PRINTER-SCANNER SCRIPT 1 (voor afdrukken, aansturen van Indesign, en misschien meer)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
on run {input, parameters}
    
    tell application "System Events" to tell process "Adobe InDesign CS5.5" to set visible to true
    
    do shell script "defaults write com.apple.print.custompresets com.print.lastPresetPref printerscanner"
    
    set b to (do shell script "cd /Users/isabelleandriessen/Desktop/printerscanner/ && ls -t *jpg | head -1") as Unicode text
    set b to "Users:isabelleandriessen:Desktop:printerscanner:" & b
    
    tell application "Adobe InDesign CS5.5"
        
        activate
        
        tell script preferences
            set user interaction level to never interact
        end tell
        
        set DocPreset to document preset "printerscanner"
        set PrintDoc to make new document at beginning with properties {document preset:DocPreset}
        set PrintPreset to printer preset "printerscanner"
        
        tell PrintDoc
            
            set DocWidth to page width of DocPreset
            set DocHeight to page height of DocPreset
            set ImageFrame to make new rectangle at beginning with properties {geometric bounds:{0, 0, DocHeight, DocWidth}, stroke weight:0}
            
            tell ImageFrame to place b as alias
            
            tell ImageFrame
                
                tell image 1
                    fit given fill proportionally
                    fit given center content
                end tell
                
            end tell
            
            print using PrintPreset without print dialog
            
            
        end tell
        
        close every document saving no
        
    end tell
    
    tell application "Finder"
        
        set visible of process "Adobe InDesign CS5.5" to false
        
    end tell
    
end run


____________________________________________________________________________

PRINTER-SCANNER SCRIPT 2 (geeft een error, ik weet niet wat de functie van dit script is)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on run {input, parameters}
    
    set b to end of input
    
    set output_file to "/Users/isabelleandriessen/Desktop/printerscanner/" & b & ".jpg"
    
    tell application "System Events"
        
        keystroke "s" using {command down}
        delay 1
        keystroke output_file
        keystroke return
        delay 2
        
    end tell
    
end run


____________________________________________________________________________________

Acties:
  • 0 Henk 'm!

  • teh_twisted
  • Registratie: Oktober 2005
  • Laatst online: 30-07 23:56
Hoi, mischien kan je de 3 losse scripts in de [ code ] hier de code [ /code] (zonder de spaties tussen de haakjes!) blokjes zetten? Maakt het voor ons een hoop leesbaarder!

Het is trouwens AppleScript. Ik zie nu zo 123 niet even wat er fout is (even snel doorgekeken) maar zal er later nog wel even een werp op doen. Me helaas nooit echt heel erg bezig gehouden met AppleScript.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on run {input, parameters}

set b to end of input

set output_file to "/Users/isabelleandriessen/Desktop/printerscanner/" & b & ".jpg"

tell application "System Events"

keystroke "s" using {command down}
delay 1
keystroke output_file
keystroke return
delay 2

end tell

end run

Dit doet niet echt veel... dit doet ⌘+S (save) op een nieuwe output file (maar hoe wordt die precies gestart?)
Blijkbaar missen we hier nog een aantal dingetjes uit Automator want die ontvangt bepaalde dingen! Dit zijn alleen de scripts die in Automator zitten. Als het een Automator Workflow is kan je die dan even nog een keer opslaan en die ergens voor ons uploaden? Dan kunnen we wel zien wat er volledig gebeurt :)

PS: het idee van Automator is dat je het 3e script bv. volledig kan maken zonder een stukje code te hoeven schrijven. Volgensmij kan het eerste script ook volledig in Automator.
Wat is trouwens de reden dat er InDesign wordt geopend? Want een randloos printje maken kan Preview ook (rechtstreeks vanuit Automator).

[ Voor 61% gewijzigd door teh_twisted op 25-08-2012 15:00 ]

Tyan S7025, 1x Xeon E5520, 32GB DDR3-1333 ECC/REG, GTX275 896MB, 2x Samsung SM 2243SN, Logitech Perf MX. Laptop: MBP 10,1/6,2. Cams: Canon EOS600D+Tamron AF18-200, Sony W350. Gadgets: iPad 64GB 3G, iPhone 5 64GB, PS1-3. Auto: W211 E220CDI


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey teh_twisted,

Dank je wel voor je snelle reactie.

Het klopt dat dit script ook niets doet bij mij, behalve errors geven. Het is mij dus ook opgevallen dat dit programma nergens voor lijkt te dienen. Ik weet niet wat de opzet is van dit laatste script. Ik weet niet waarom het niet werkt. Dit is alles wat ik heb. De programmeur heeft dit achter gelaten op mijn laptop, met de windows open, meer weet ik niet te vinden. Met andere woorden, ik ben me er niet van bewust dat er nog een langer of ander script is.

De reden dat de programmeur de opdracht doorstuurt naar InDesign is inderdaad om randloos te printen. Wat dit script helaas nog niet doet, en ik weet ook niet hoe ik het moet oplossen. Goed dat het ook via preview kan! Al zou ik dat zelf dus niet in een code kunnen zetten.

Ik zal direct proberen de workflows te uploaden hier, bedankt voor de tip. Heel erg bedankt alvast voor je reactie, want ik word op deze manier stukje bij beetje wijzer in de wondere wereld van automater :-).

Kun jij er wat mee?

Heb je enig idee wat er voor nodig is om de scripts zo te schrijven, dat de printer/scanner via automater, (automatisch) wordt bestuurd binnen een kader van intervals (1 scan+afdruk van de scan in 5 min), om de scanner te activeren, deze een bestand te laten opslaan in een mapje op mijn desktop, en dat vervolgens dit juiste bestand wordt doorgestuurd naar de printer om vervolgens randloos afgedrukt te worden?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PS: ik probeer een manier te vinden om het te uploaden, maar weet niet zo goed hoe dat moet :-S. kun je me vertellen hoe ik dat moet doen?

Acties:
  • 0 Henk 'm!

Verwijderd

uploaden kan je het makkelijkst doen via een filesharing site; bijv. mediafire