[GastForen Programmierung/Entwicklung AppleScript QuarkXPress, Opazität von Rahmen und Linien

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

QuarkXPress, Opazität von Rahmen und Linien

Minimac
Beiträge gesamt: 55

2. Mär 2015, 20:22
Beitrag # 1 von 5
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ich verzweifle grad total an Quark 10. Wahrscheinlich dürfte es aber bei früheren Versionen genauso sein.

Gegeben sei ein Dokument mit einem Grafikrahmen mit Füllung und Kontur welches selektiert ist. und dieses Script:
Code
tell application "QuarkXPress" 
tell document 1
set aElem to selection

if class of aElem = graphic box then
get opacity of frame of aElem -- OK 1
get properties of frame of aElem -- OK 2
log "---"
set myRec to frame of aElem ---- OK 3
get opacity of myRec -- Error, was denn sonst
end if
end tell
end tell


Die Zeile "OK 1" gibt ein Ergebnis aus obwohl in der folgenden Zeile opacity nicht als property auftaucht. Womit auch der Fehler in der Zeile
Code
get opacity of myRec 

erklärt wäre.

Aber warum funktioniert
Code
get opacity of frame of aElem 

. Seltsamerweise klappt es wenn ich anstatt opacity nach der Linienstärke width frage. Ich kapiere nicht, wer kanns mir erklären?


Das ganze stammt aus einem größerem Script welches Elemente aus Quark nach Indesign kopieren soll. Dazu muß ich naturgedrungen die Eigenschaften diverser Elemente auslesen. Aber Quark verhält sich da nicht immer kooperativ so das ich manchen "Workaround" einbauen muß der mir nicht paßt.
X

QuarkXPress, Opazität von Rahmen und Linien

Hans Haesler
  
Beiträge gesamt: 5826

2. Mär 2015, 20:53
Beitrag # 2 von 5
Beitrag ID: #537614
Bewertung:
(2156 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Minimac,

diese Woche weile ich im Skiurlaub. :-)
Zugriff auf QXP werde ich erst Samstag wieder haben.
Hoffen wir deshalb, dass sich vorher jemand meldet.

Gruss, Hans


als Antwort auf: [#537612]

QuarkXPress, Opazität von Rahmen und Linien

Minimac
Beiträge gesamt: 55

2. Mär 2015, 22:02
Beitrag # 3 von 5
Beitrag ID: #537618
Bewertung:
(2127 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

dann mal Hals und Beinbruch. Und gaaanz viel Schnee. Mein Problem kann warten


als Antwort auf: [#537614]

QuarkXPress, Opazität von Rahmen und Linien

Hans Haesler
  
Beiträge gesamt: 5826

8. Mär 2015, 10:00
Beitrag # 4 von 5
Beitrag ID: #537789
Bewertung:
(1976 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Minimac,

ich habe das Problem auch mit einer früheren Version (QXP 8.5.1) nachvollziehen können.

In den 'properties' des Rahmens ist alles aufgeführt, z.B. 'width' aber auch 'gap opacity' (der Transparenz-Wert des Zwischenraums bei einem Stil wie z.B. "Dick-Dünn"). Doch 'opacity' fehlt, ist vergessen worden.

Die Transparenz der Objekte wurde ja erst mit Version 7 eingeführt (glaube ich zu wissen). Und dabei haben es die Entwickler offensichtlich versäumt, 'opacity' in die Liste der 'properties' aufzunehmen.

Es wird Dir nichts anderes übrigbleiben, als den Rahmen direkt – also ohne ihn zuerst einer Variablen zuzuweisen – zu befragen.

Im übrigen: Viel Spass mit der Konvertierung. Hatte ich vor Jahren auch mal gescriptet (von QXP 4.11 nach InDesign CS2).

Gruss, Hans


als Antwort auf: [#537618]

QuarkXPress, Opazität von Rahmen und Linien

Hans Haesler
  
Beiträge gesamt: 5826

24. Jul 2015, 22:53
Beitrag # 5 von 5
Beitrag ID: #541494
Bewertung:
(1606 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Minimac,

Matthias Günther teilte mir mit: "In QuarkXPress 2015 July Update (11.0.1) sollte das funktionieren."

Tatsächlich! Während mit der Version 11.0 der Befehl ...

Code
get opacity of myRec 

... noch die von Dir gemeldete Fehlermeldung gezeigt wird, kommt mit der Update-Version 11.0.1 als Ergebnis:

Code
«data FX% 00000100» 

Immerhin ein Fortschritt ...

Aber: Die QXP-Entwickler sollten endlich dafür sorgen, dass statt dieser mühsamen Raw-Codes die Werte direkt brauchbar zurückkommen.

Seit vielen[*] Jahren muss zusätzlich coerce eingesetzt werden.

Code
set rawVal to opacity of myRec  
set intVal to coerce rawVal to integer

Ergebnis: 100

[*] Eine Suche nach 'coerce' fördert einen Beitrag vom 12. Mai 2003 zutage: http://www.hilfdirselbst.ch/..._P418117.html#418117
Mehr als zwölf Jahre ...

Gruss, Hans


als Antwort auf: [#537618]
X