Connect failed: Connection timed out

[GastForen Programmierung/Entwicklung AppleScript Indesign steigt aus unter 10.4

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Indesign steigt aus unter 10.4

Anonym
Beiträge gesamt: 22827

19. Okt 2006, 11:24
Beitrag # 1 von 15
Bewertung:
(2979 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallihallo liebe Scriptergemeinde,

kennt jemand das Phänomen, dass Indesign CS2 unter 10.4 auf Macintosh Quicksilver 800 Mhz nach Ausführung von AppleScripts sich nicht anständig beenden lässt bzw. was noch schlimmer ist, während das Script läuft aussteigt.

Anscheinend ist der Ausstieg zeitlich relativ willkürlich, da die Abarbeitung des Scripts unterschiedlich forangeschritten war.

Das Script lief meiner Ansicht nach bisher unter 10.3.9 tadellos.

I am not very amused!

Gruß
Jürgen
X

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

19. Okt 2006, 11:45
Beitrag # 2 von 15
Beitrag ID: #421225
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

nein, dieses Phänomen kenne ich nicht. Ich habe in den letzten Wochen
AppleScripts unter Mac OS 10.4.4 enwickelt und intensiv getestet.
Und auch JavaScripts unter Windows XP.

Abstürze waren sehr selten. Und wenn, dann war ein nicht korrekter
Befehl die Ursache.

Was führt denn das Script aus? Könntest Du es mir zustellen? Vielleicht
komme ich dem Problem auf die Spur.

Gruss, Hans


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Anonym
Beiträge gesamt: 22827

19. Okt 2006, 13:00
Beitrag # 3 von 15
Beitrag ID: #421226
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

ja das Script, was es macht? Alles und manchmal gar nix, ;-)

Also es schreibt die Seitenbereiche z.B. 1001-1099 in den Kopf. Ebenso die Seitenanzahl, dann wird der Kolumnentitel rechts geändert. Außerdem generiert es das Erscheinungsdatum, die Daten stammen aus einer txt-Datei. Zuguterletzt wird ein pdf mit der gewünschten Dateibezeichnung exportiert.

Ich habe es jetzt schon für einige Dutzend Dateien erfolgreich genutzt, die Probleme die ich jetzt habe, waren mir mit 10.3.9 echt unbekannt. Seit neuem setze ich Suitcase Fusion ein, glaub allerdings nicht dass es damit zusammenhängt.

Dass Indesign 4.04 nicht mehr über Befehl-Q beenden möchte, geschieht mir bei allen, sogar den einfach gestrickten Scripts.
Komischerweise ging es vorhin wenigstens bei der einen Datei nach Neustart ohne Programmausstieg.
Bei der anderen hielt sich das Problem hartnäckig.
Das Script ist durchgelaufen und ist beim Export des pdf ausgestiegen.
Das pdf selbst hatte ein falsches icon und 0 k Inhalt.

Hans, schon mal Vielen Dank für Deine Unterstützung, Script kommt gleich, hab leider selbst grad nicht die Zeit zum Testen.

Gruß Jürgen

P.S.:
Auch gibt es in Zusammenhang mit der Indesign-Scripterei jetzt Probleme mit der Icondarstellung von Indesing-Dokumenten, was mir bisher bei Mac OS X fremd gewesen ist.


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

19. Okt 2006, 13:30
Beitrag # 4 von 15
Beitrag ID: #421227
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

bitte lass Dir ruhig Zeit. Ich kann mir die Sache nicht vor
heute Abend ansehen. Zudem wäre ich dankbar für einfache
Testdokumente und klare Anweisungen, damit die
Voraussetzungen einigermassen vorbeitet werden können.

Wenn auch einfache Scripts Probleme bereiten, dann sollte
man vielleicht damit beginnen. Auch hier bitte eine kurze
Beschreibung: Was macht das Script. Was ist das Problem.

Danke im voraus.

Gruss, Hans


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Anonym
Beiträge gesamt: 22827

19. Okt 2006, 17:30
Beitrag # 5 von 15
Beitrag ID: #421228
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ich glaube die Ursache gefunden zu haben, habe jetzt jedem Handleraufruf ein "my" verpasst.
Jetzt sind alle zwölf Dateien ohne Ausstieg abgearbeitet worden. Die Ausstiege waren wirklich willkürlich, mal bei diesem, mal bei jenem File. Irgenwie immer noch schleierhaft, aber Hauptsache jetzt funktionierts.

property MonthList : {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}

on open filesList
   tell application "Adobe InDesign CS2"
      set user interaction level of script preferences to never interact
   end tell
   repeat with Dokument in filesList
      tell application "Finder" to set folderPath to (container of file Dokument) as Unicode text
      tell application "Adobe InDesign CS2"
         --activate
         open Dokument as alias
      end tell
      my MakeOLFDate(MonthList)
      my MakeAction(folderPath)   
   end repeat
   tell application "Adobe InDesign CS2"
      set user interaction level of script preferences to interact with all
   end tell
   beep 5
end open


Gruß Jürgen


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

19. Okt 2006, 20:50
Beitrag # 6 von 15
Beitrag ID: #421229
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

gut, dass Du ein Mittel gegen die Abstürze gefunden hast. Dann muss ich ja
das Script nicht unbedingt zum Laufen brigen ...

Doch beim Überfliegen des Codes sind mir ein paar Dinge aufgefallen, welche
optimiert werden sollten.

Ganz allgemein: Es kann nicht schaden, alle Aktionen (ob kritisch oder nicht)
mit einem try-Wickel zu umgeben. Zum Beispiel:
---
try
   override page item 2 of page 1 of master spread 1 destination page page 1
end try
---

Zu den Suchen/Ersetzen-Läufen: Wie schon vor genau zwei Monaten erwähnt,
sollten zu Beginn und am Ende des Scripts die Find- und Change-Vorgaben
geleert werden, damit es weder mit dem Script, noch bei späteren, manuellen
Aktionen falsche Ergebnisse gibt:
---
tell application "Adobe InDesign CS2"
   activate
   set find preferences to nothing
   set change preferences to nothing
---

Die Suchen- und Ersetzen-Strings würde ich zuerst zusammensetzen ...
---
set searchString to "Abcedf" & return
set replaceString to "Abcedf (2006) " & FirstSeite & "–" & LastSeite & return & ¬
   "1234-5678/06/" & Issue & FirstSeite & "-" & AnzahlSeiten
---
... und erst dann in den Befehl einfügen:
---
search for searchString replacing with replaceString
---
Ungefähr so, wie man in Ruhe einen Brief schreibt, in einen Umschlag steckt,
diesen adressiert und ein Marke darauf klebt, bevor man damit zur Post geht.
Klar könnte man auch während des Ganges zur Post etwas schreiben, das Papier
zusammenfalten und so weiter. Aber die Gefahr, dass etwas schief läuft, wäre
viel grösser, als mit der ordentlichen Vorbereitung.

Im Handler MakeOLFDate(MonthList) befindet sich ein überflüssiger
tell-Finder-Block. Der Pfad zur Textdatei kann ohne Finder bestimmt werden.
Das Lesen der Datei geschieht mit einem Befehl der Standard Additions, der Finder
hat damit nichts zu tun. Dasselbe gilt für die fünf Satimage-RegExp-Befehle:
kein Finder notwendig.

Wenn Du dieses tell application "Finder" entfernst, kann es sein, dass der Trick
mit dem "my" nicht mehr notwendig sein wird.

Zu guter Letzt: Weil die Liste MonthList als property definiert, ist, muss sie
nicht als Parameter dem Handler übergeben werden. Die Klammern können
also geleert werden.

Gruss, Hans


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Anonym
Beiträge gesamt: 22827

20. Okt 2006, 16:05
Beitrag # 7 von 15
Beitrag ID: #421230
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

jetzt teste und ändere ich schon den ganzen lieben langen Tag.
Ich hatte mich nämlich allzu früh gefreut, das ursächliche Problem ist auch dann nicht beseitigt, wenn ich Deine Verbesserungen eingebaut habe.

Irgendwie macht der pdf-Export nicht so wie er soll. Denn nur wenn ich den Drucken-Handler deaktiviere werden alle Files (im letzten Test immerhin drei Dutzend) abgearbeitet und zwar auch mit der ersten unveränderten Version des Skripts.

Ich hatte auch den Aufruf des Drucken-Handlers nach oben gestellt, weil ich dachte es würde so besser abgearbeitet. Hilft aber alles nichts.

Womöglich besser wäre erst zum Schluß alle offenen Dateien nacheinander zu drucken, was meinst Du?

Gruß
Jürgen


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

20. Okt 2006, 20:03
Beitrag # 8 von 15
Beitrag ID: #421231
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

meine Meinung: Es ist immer besser, wenn man komplexe Abläufe in Module zerlegt.
Klar ist der Aufwand grösser, wenn jede Etappe separat angestossen werden muss.
Aber es lohnt sich.

Wenn bei einem Nonstop-Ablauf nur ein einziges Dokument zickt, dann ist der Aufwand,
um die Ursache zu finden (damit man endlich ein brauchbares PDF erzeugen kann),
grösser als die Zeit, welche man vermeintlich mit dem sichereren Weg "vergeudet".

Ich würde also zuerst die Dokumente behandeln. Dann in einem zweiten Schritt
die PDFs exportieren. Und zwar manuell ...

Gruss, Hans


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Anonym
Beiträge gesamt: 22827

20. Okt 2006, 22:12
Beitrag # 9 von 15
Beitrag ID: #421232
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Seit wann bist Du eigentlich so gnadenlos kritisch?
Wenn du wüsstest, was ich so alles manuell erledigen muss, auf die Arbeit bezogen, du weißt schon -
dann könntest Du mein Bedürfnis nach Automatisierung womöglich etwas besser nachvollziehen.
Wenigstens funktioniert jedes File einzeln zu droppen, ist aber auch nicht sehr erbaulich. Unter 10.3.9 ging es, warum jetzt diese chose?

Bis denne

Jürgen

P.S.
Wie sieht es allgemein mit Java aus (Mac/Windows) bzw. VBScript?


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

21. Okt 2006, 07:25
Beitrag # 10 von 15
Beitrag ID: #421233
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

also ... "gnadenlos kritisch" war ich schon immer. :-) Weil wir es mit einer
gnadenlosen Umgebung zu tun haben. Es erstaunt mich zwar häufig, wieviele
Ungenauigkeiten verziehen werden. Aber manchmal ist das Mass übervoll und
dann geht nichts mehr.

Nur ein Beispiel. Ich predige in unserem Betrieb immer, dass für jedes Logo
(oder so) eine eigene Datei erstellt werden soll. Aber dann gibt es immer
wieder Grafiker, welche die Dinger in einem Dokument aufreihen. Das ist
bequemer, klar. Doch im XPress-Dokument musste der Versatz für jedes Bild
anders eingestellt werden. Das war schon weniger bequem. Und dann wurde
um Hilfe gerufen, weil plötzlich bei einer Seite das PDF nicht mehr erzeugt
werden konnte. Und warum: Der Versatz war so gross, dass beim Umsetzen
des PostScript-Codes der Distiller den Pickel fortwarf ...

JavaScripts entwickeln ist schön! Äh ... anstrengend. Weil es nur ungenügend
dokumentiert ist. Doch mit wachsender Erfahrung kann man fast alles umsetzen,
was man mit AppleScript gewohnt ist.

Fast alles? Es gibt kein 'giving up after n', mit welchem Dialoge automatisch
geschlossen werden können. Und auch keine Möglichkeit, Variablen als 'property'
zu definieren. Und Droplets? Gibt es nicht. Diese drei Einschränkungen sind
Gründe genug, auf JavaScript zu verzichten, wenn man Scripts nur unter Mac OS
einsetzt.

Visual Basic würde mich schon interessieren, aber weil ich auf der Arbeit am PC
keine Admin-Berechtigung habe, müsste ich es privat studieren. Doch dazu fehlt
mir im Moment die Maschine und – andauernd – die Zeit ...

Gruss, Hans


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Anonym
Beiträge gesamt: 22827

21. Okt 2006, 09:22
Beitrag # 11 von 15
Beitrag ID: #421234
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans,

ja vielen Grafiker hätte es erziehungstechnisch bestimmt auch nicht geschadet mal in der Prä-Maus-Ära unter spartanischen DOS/Unix-Bedinungen zu knechten, dann würden Sie selbst recht schnell zum Opfer Ihrer eigenen Schlamperei.

Gut, dass Du das sagst, dass Droplets nicht umzusetzen sind. Wollte Skripts von meinem Sohn 1:1 in Java umgesetzt haben. Also Java ist manchmal eingeschränkt, ach so. Ich wollte schon meinen Ältesten dazu bewegen sich eingehend mit Java zu beschäftigen, bisher hat er mit TurboPascal und Flash rumgemacht, ich hau Ihn ab- und zu an, wenn er gerade hier rumschlappt. Ist schon oft ein gar guter Souffleur. Aber ich selbst auf meine alten Tage nochmal Java, weiß nicht.

Mit VB, da hab ich mir im Netz schon die Hacken abgelaufen um da durchzusteigen, kann es sein, dass es etwas komplex ist aber auf der anderen Seite viel möglich ist?

Du scheinst nichts von automatischem Drucken zu halten, aber bei mir kocht der Chef selbst, und die pdfs muss ich sowieso hernach nochmal unter die Lupe nehmen.

Bitte ein letztes Mal zurück zum Problem, ist es möglich per timeout, oder Ähnliches, die Operation des Druckens zu dehnen bzw. abzuschließen, bevor weitergemacht wird. timeout bewirkt bei mir scheinbar nichts.

Gruß
Jürgen


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

21. Okt 2006, 11:46
Beitrag # 12 von 15
Beitrag ID: #421235
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

der "Ersatz" für Droplets in JavaScript geht so: Ein Doppelklick auf den
Namen des Scripts in der Scriptpalette (oder ein Tastenkürzel, welcher dem
Script zugewiesen ist) zeigt einen Dialog, mit welchem man einen Ordner
oder eine Datei auswählen kann. Dann "Öffnen" klicken und der Rest ist
ähnlich wie bei einem AppleScript-Droplet.

Es ist sogar möglich, im Script einen Default-Ordner festzulegen, damit
das bisweilen endlose Durchhangeln abgekürzt wird.

Übrigens: Das Entwickeln von JavaScripts ist ein Super-Gehirntraining! :-)

Mit VB ist möglich, eigenständige Applikationen zu entwickeln. Aber der
Aufwand ist sicher auch entsprechend.

Nein, ich habe nichts gegen automatisches Drucken. Bin aber verwöhnt von
unserer (teuren) HighTech-Lösung mit Hotfoldern. Deshalb muss ich nie
per Script drucken und habe demzufolge leider nicht grosse Erfahrung mit
dem Basteln von "Arme-Leute-Lösungen".

Eine Timeout-Anweisung dient einzig dazu, eine Fehlermeldung hinaus-
zuzögern, falls ein Programm länger als eine Minute braucht, um dem Script
ein Ergebnis zurückzugeben.

Um die Ausführung des Scripts zu unterbrechen, bietet sich 'delay' an.
Das ist ein Befehl der Standard Additions (in deren Verzeichnis in der
Suite "User Interaction" zu finden):
---
delay v : Pause for a fixed amount of time
   delay [number] : the number of seconds to delay (default is 0)
---
Dieser Befehl kann auch in einem 'tell app'-Wickel stehen und man muss
nicht unbedigt eine ganze Zahl einsetzen:
---
tell application "Adobe InDesign CS2"
   display dialog "Hello" giving up after 1
   delay 2.5
   display dialog "World!"
end tell
---

Gruss, Hans


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Anonym
Beiträge gesamt: 22827

21. Okt 2006, 13:05
Beitrag # 13 von 15
Beitrag ID: #421236
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mensch Hans, du bist doch wirklich 'ne echte Wucht!

das sind ja wirklich wieder Tips von allererster Güte!
Möchtest Du nicht irgendwann doch noch mal als Literat antreten, oder Kurse anbieten?
Naja, wahrscheinlich ist Letzteres 'ne undankbare Angelegenheit - anyway.

Ich habe meinen Sohn für die Ferien dazu auserkoren mit Java anzufangen. Stehe nämlich vor der Entscheidung ob Mac oder PC-Lapop angeschafft wird...

Ich werde delay ausprobieren und es damit bewenden lassen, womöglich hilft mir das ganz schön aus der Patsche. Vielen Dank!

Du sagtest du entwickelst auf dem PC mit Ultraedit32, was nimmst Du für den Mac?
Gibt es da empfehlenswerte Editoren mit zuverlässer debug-Funktion?

Nochmal herzlichen Dank!

Gruß
Jürgen


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

21. Okt 2006, 13:50
Beitrag # 14 von 15
Beitrag ID: #421237
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

ja, stimmt. Schulungen können undankbar sein. Wenn Du in wochenlanger Arbeit
alles schön vorbereitet hast und dann kurzfristig erfahren musst, dass der Kurs
nicht durchgeführt wird, weil zuwenig Anmeldungen eingegangen sind ...

Um unter Mac OS X JavaScripts zu schreiben, benutze ich "BBEdit 6.1.2 for OS X".
Zwar weniger komfortabel als "UltraEdit32" (welches mehr Schlüsselworte farbig
hervorhebt und beim Tippen einer schliessenden Akkolade automatisch den Einzug
um einen Zacken verringert). Aber "BBEdit" ist brauchbar.

Doch weder "UltraEdit32" noch "BBEdit" haben einen eingebauten Debugger. Der ist
in InDesign drin. Zwar benutze ich ihn praktisch nie und komme ganz gut zurecht.

So, und jetzt ab auf eine Ausfahrt mit dem Rennrad! :-)

Gruss, Hans


als Antwort auf: [#421224]

Indesign steigt aus unter 10.4

Hans Haesler
  
Beiträge gesamt: 5826

22. Okt 2006, 12:59
Beitrag # 15 von 15
Beitrag ID: #421238
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

noch etwas Infos zum delay.

Es wäre korrekter, wenn sich dieser Befehl in einem Handler befände. Denn
InDesign kennt ihn nicht, aber leitet ihn (zum Glück) weiter. Diese Verzögerung
kann man so umgehen:
---
tell application "Adobe InDesign CS2"
   display dialog "Hello" giving up after 1
   my machMalPause(2.5)
   display dialog "World!"
end tell

on machMalPause(n)
   delay n
end machMalPause
---
Jedoch: Ein kurzer Test mit 10 Wiederholungen ergibt nur einen "Gewinn" einer
Hunderstelssekunde.

Wichtiger ist aber das Einstellen des delay-Wertes. Voraussetzung zum Gelingen:
Jeder Druckvorgang dauert ungefähr gleich lange. Doch wenn der Wert zu hoch
eingestellt ist, dann summiert sich die "vergeudete" Zeit. Umgekehrt genügt ein
längerer Lauf – und die Pause ist zu früh beendet.

Diese Ungewissheiten können mit einer dynamischen Methode ausgeschaltet werden.
Aufwendig, aber bestechend, weil die Länge der Pause automatisch angepasst wird.

Nachstehend eine Kurzfassung des Scripts. Es funktioniert mit einem offenen Dokument.
Aber erst mit der Repeatschleife des Droplets würde das Abfragen der Dateigrösse zum
Tragen kommen.

In regelmässigen Abständen wird der Handler checkSize() aufgerufen, welcher die
Grösse der neuen Datei abfragt. Sobald sich diese nicht mehr ändert, wird mit return
die Fortsetzung freigegeben.

Weil sich der Aufruf des Handlers in einer endlosen Repeat-Schleife befindet, sorgt der
Zähler 'ctr' für einen Ausstiegswert.
---
global oldSize

tell application "Adobe InDesign CS2"
   activate
   set folderPath to (file path of document 1) [color=#0000FF]as Unicode text
   my[/color] MakeAction(folderPath)
[color=#0000FF]end tell

on[/color] MakeAction(folderPath)
   -- hier die bisherigen Aktionen einsetzen
   set curFile to (folderPath & "test.pdf") -- diese Zeile durch den richtigen Befehl ersetzen
   printThisFile(curFile)
   set ctr to 0
   set oldSize to 0
   [color=#0000FF]repeat
      if[/color] ctr is greater than 20 [color=#0000FF]then return
      delay[/color] 1
      set okay to checkSize(curFile)
      if okay [color=#0000FF]then return
      set[/color] ctr to ctr + 1
   [color=#0000FF]end repeat
end
[/color] MakeAction

on printThisFile(curFile)
   tell application "Adobe InDesign CS2"
      set preset to PDF export preset named "xyz"
      [color=#0000FF]tell active document
         export to[/color] curFile format PDF type using preset
      [color=#0000FF]end tell
   end tell
end
[/color] printThisFile

on checkSize(curFile)
   set curSize to size of (info for file curFile)
   if curSize is equal to oldSize [color=#0000FF]then
      return
true
   else
      set
[/color] oldSize to curSize
      [color=#0000FF]return false
   end if
end
[/color] checkSize
---
Im Handler checkSize() wird die aktuelle Dateigrösse festgestellt und mit
dem gespeicherten oldSize verglichen. Wenn die beiden Werte nicht gleich sind,
dann wird dem oldSize der curSize-Wert zugewiesen und der Handler gibt ein
false zurück. Bei Übereinstimmung ist das Ergebnis true.

Übrigens: Den Finder braucht es nicht, um den folderPath festzustellen.
Wie oben gezeigt, gibt InDesign mit file path diese Information.
Mit full name erhält man den kompletten Pfad (inklusive Dateiname).

Gruss, Hans


als Antwort auf: [#421224]
X