[GastForen Programmierung/Entwicklung AppleScript Bild in QXpress4 per Script drehen

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

Bild in QXpress4 per Script drehen

Anonym
Beiträge gesamt: 22827

8. Nov 2003, 15:37
Beitrag # 1 von 7
Bewertung:
(1692 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,
kann man per Skript ein aktives Bild (nur Inhalt) um  z.B. 5 Grad drehen?
(oder ähnlich wie Skalieren mit Apfel/Alt/Shift + ,.)

Gruss willem
X

Bild in QXpress4 per Script drehen

Hans Haesler
  
Beiträge gesamt: 5826

8. Nov 2003, 17:48
Beitrag # 2 von 7
Beitrag ID: #418426
Bewertung:
(1691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

die Rotation des Inhaltes einer Bildbox wird 'angle' genannt. Ich habe hier einen kleinen Vorteil,
weil dieser Ausdruck auf Französisch genau gleich geschrieben wird. :-)
---
tell document 1 of application "QuarkXPress 4.11"
  tell current box
    tell image 1
      set angle to 5
    end tell
  end tell
end tell
---

Übrigens: dies ist einfach herauszufinden. Eine Bildbox auswählen, den Inhalt drehen und folgendes
Script abspielen:
---
tell document 1 of application "QuarkXPress 4.11"
  tell current box
    tell image 1
      properties
    end tell
  end tell
end tell
---
Im Ergebnisfenster werden die Attribute und ihre Werte aufgelistet. Mit etwas Detektivarbeit kann man
herausfinden, wie man die Dinger adressieren muss.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418425]

Bild in QXpress4 per Script drehen

Anonym
Beiträge gesamt: 22827

9. Nov 2003, 08:36
Beitrag # 3 von 7
Beitrag ID: #418427
Bewertung:
(1691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank,
das ist ja grossartig was man alles aus einer Bildbox auslesen kann!

Das Drehen des aktiven Bildes funktioniert,
Frage:
Wie kann man eine weitere Drehung draufsetzen, dass jedesmal wenn das Skript ausgeführt wird eine weitere Drehung ausgeführt wird?

Gruss und nochmals vielen Dank
willem


als Antwort auf: [#418425]

Bild in QXpress4 per Script drehen

Hans Haesler
  
Beiträge gesamt: 5826

9. Nov 2003, 19:07
Beitrag # 4 von 7
Beitrag ID: #418428
Bewertung:
(1691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

bitte sehr. So kann Dein Wunsch umgesetzt werden: den Winkel verlangen, zur Bruchzahl konvertieren und 5 dazuzählen:
---
tell document 1 of application "QuarkXPress 4.11"
  activate
  tell current box
    tell image 1
      set angle to (angle as real) + 5
    end tell
  end tell
end tell
---
Das funktioniert. Solange bis mal die volle Umdrehung überschritten wird. Dann kommt eine Fehlermeldung, weil der Wert nicht grösser sein kann als 360&deg;.

Die Lösung: Das Script muss den aktuellen Wert prüfen. Sobald dieser unzulässig sein würde, muss eine neuer Wert zugewiesen werden. Dieser wird so errechnet: die gewünschte Drehung minus (360 minus den aktuellen Wert).

Das folgende Script beginnt mit der Initialisierung der Variable 'modAngle'. Das erlaubt, den Rotations-Wert komfortabel zu ändern: nur an einem Ort (und nicht in den drei Befehlen).
---
set modAngle to 5

tell document 1 of application "QuarkXPress 4.11"
  activate
  tell current box
    tell image 1
      set curAngle to (angle as real)
      if curAngle < (360 - modAngle) then
        set angle to curAngle + modAngle
      else
        set angle to modAngle - (360 - curAngle)
      end if
    end tell
  end tell
end tell
---

Eine kürzere Lösung, welche aber auf den ersten Blick weniger klar ist:
---
set modAngle to 5

tell document 1 of application "QuarkXPress 4.11"
  activate
  tell current box
    tell image 1
      set angle to ((angle as real) + modAngle) mod 360
    end tell
  end tell
end tell
---
Der Winkel wird abgefragt, zur Bruchzahl umgewandelt, der Drehwert wird dazugezählt und das Ganze durch 360 geteilt. Durch die Verwendung des Operatoren 'mod' ist das Resultat der Restwert. Einige Beispiele: 10 mod 2 = 0 | 10 mod 3 = 1 | 10 mod 4 = 2.

Mit anderen Worten: solange der Winkel unter 360 bleibt, ist der Restwert die Addition von aktuellem Winkel und Drehwert. Sobald der neue Winkel aber grösser wäre als 360, sorgt die Division mit 'mod' dafür, dass nur der Restwert als neuer Winkel gebraucht wird.
Noch ein Beispiel: aktueller Winkel 357&deg; + Drehwert 5&deg; = 362&deg; dividiert mit 'mod' bleibt ein neuer Winkel von 2&deg;. Alles klar?

Übrigens: der Drehwert, also die Variable 'modAngle', könnte auch per Dialog eingegeben werden. Im Dialog könnte der aktuelle Winkel und der momentan definierte Drehwert gezeigt werden. Der Anwender könnte diesen Wert bestätigen oder ändern. Wenn dies nützlich wäre und Du dabei Hilfe brauchst: Anfrage genügt. :-)

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418425]

Bild in QXpress4 per Script drehen

Anonym
Beiträge gesamt: 22827

10. Nov 2003, 10:25
Beitrag # 5 von 7
Beitrag ID: #418429
Bewertung:
(1691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

den Winkel per Dialog eingeben
wenn das machbar wäre, das wäre super!!

Gruss Willem


als Antwort auf: [#418425]

Bild in QXpress4 per Script drehen

Hans Haesler
  
Beiträge gesamt: 5826

10. Nov 2003, 14:16
Beitrag # 6 von 7
Beitrag ID: #418430
Bewertung:
(1691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

dachte ich mir doch! ;-)

Ich gehe davon aus, dass Du den Wert, um welchen das Bild gedreht werden soll, eingeben willst (und nicht direkt den Winkel).

Also... den Dreh-Wert habe ich umbenannt in 'rotVal' (damit es keine Verwechslung mit 'mod' gibt) und als 'property' initialisiert. Dadurch wird erreicht, dass ein geänderter Wert beim nächsten Abspielen schon vorgeschlagen wird.

Der Variablen 'curAngle' wird der aktuelle Winkel zugewiesen. Dann verlassen wir den 'tell image 1'-block, um im Handler 'askUser' den Anwender um den neuen Wert zu bitten. Das 'my' vor dem Aufruf ist notwendig, weil wir uns innerhalb des 'tell XPress'-Blocks befinden. Der Wert von 'curAngle' wird als Parameter an den Handler weitergereicht. Die 'class' dieses Wertes ist 'angle measurement', wird aber im Dialog problemlos dargestellt. Man darf ihn nicht zu früh in eine Bruchzahl verwandeln, sonst wird im Dialog je nach Wert ein langer Rattenschwanz gezeigt (z.B. 9.554992675781).

Die Fortsetzung ist wie gehabt. Einzig, dass nun das Zuweisen des neuen Winkels in einem try-Block steht, weil der Anwender ungültige Eingaben machen könnte. Natürlich könnte man diese prüfen und mit einem Dialog auf das Problem aufmerksam machen. Aber in diesem Fall genügt der einfache Schutz gegen eine Fehlermeldung.
---
property rotVal : 5

tell document 1 of application "QuarkXPress 4.11"
  activate
  tell current box
    tell image 1
      set curAngle to angle
      set rotVal to my askUser(curAngle)
      try
        set angle to ((curAngle as real) + rotVal) mod 360
      end try
    end tell
  end tell
end tell

on askUser(curAngle)
  tell application "QuarkXPress 4.11"
    set rotVal to text returned of (display dialog "Der Winkel des Bildes beträgt: " & (curAngle as string) & "

Das Bild drehen um:" default answer rotVal)
    return rotVal
  end tell
end askUser
---

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418425]

Bild in QXpress4 per Script drehen

Anonym
Beiträge gesamt: 22827

12. Nov 2003, 06:40
Beitrag # 7 von 7
Beitrag ID: #418431
Bewertung:
(1691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
vielen vielen Dank für das Script

willem


als Antwort auf: [#418425]
X