Farben mit Prozentwerten generieren

Hallo liebe Spezialisten;
Ich habe ein Rechenblatt, mit Hilfe dessen ich verschiedene Farbmusterbögen zusammenstellen möchte.
In Spalte A möchte ich Farben erzeugen, aufgrund der prozentualen CMYK-Angaben in Spalte B, C, D, E
Lässt sich mit RagTime ein Automatismus erzeugen, ohne dass ich unter dem Hilfsmittel "Farben"
die Prozentwerte einzeln von Hand eingeben muss?
Arbeite mit MacBook Pro OSX 10.5.8 und RagTime 6.5.0
Dank an alle Farbprofis

Re: Farben mit Prozentwerten generieren

#9399 On 7 April, 2010 15:35 Thomas Kaegi said,

Hallo swissrodi

Folgendes AppleScript macht genau das:

tell application "RagTime 6.5"
activate
set I to 0
repeat
set I to I + 1
if cell ("B" & I) of table "Rechenblatt 1" of document 1 is empty then exit repeat
select cell ("A" & I) of table "Rechenblatt 1" of document 1
set color of selection to {cyan:0, magenta:0, yellow:0, black:0}
end repeat
set I to 0
repeat
set I to I + 1
if cell ("B" & I) of table "Rechenblatt 1" of document 1 is empty then exit repeat
set CY to value of cell ("B" & I) of table "Rechenblatt 1" of document 1
set MA to value of cell ("C" & I) of table "Rechenblatt 1" of document 1
set YE to value of cell ("D" & I) of table "Rechenblatt 1" of document 1
set BL to value of cell ("E" & I) of table "Rechenblatt 1" of document 1
select cell ("A" & I) of table "Rechenblatt 1" of document 1
set color of selection to {cyan:CY, magenta:MA, yellow:YE, black:BL}
end repeat
end tell

Die Zellen in Spalte A werden, beginnend mit Zeile 1, entsprechend den in den Spalten B:E enthaltenen CMYK-Werten eingefärbt. Das Skript bricht ab, sobald die erste Zelle in Spalte B leer ist.

Aus für mich nicht nachvollziehbaren Gründen (aber ich bin ja auch kein AppleScript-Guru) produziert das Skript einen Fehler, wenn die Zellen bereits die gewünschte Farbe haben. Deshalb der erste Teil, in welchem alle Zellen zuerst auf CMYK=0/0/0/0 gesetzt werden, wobei dies natürlich auch einfacher gemacht werden könnte. So ging es mir einfach am schnellsten: unteren Teil kopieren und nötige Anpassungen machen.

Gruss, Thomas

Re: Farben mit Prozentwerten generieren

#9407 On 9 April, 2010 07:49 Thomas Kaegi said,

Hallo alle

Ich habe mein Script noch etwas ausgebaut und auf die Expertenseiten gelegt:

http://experts.ragtime.de/experts/node/3079

In persönlichen Feedbacks wurde ich gefragt, weshalb ich Füll- und nicht Farbvorlagen erzeugt habe. Farbvorlagen hätten den Vorteil gehabt, dass die Vorlagen samt Farbmuster im Inventar sichtbar gewesen wären. Ich hatte dafür aber einen Grund: Mit der Funktion "SetzeBereichFüllung" aus der Erweiterungs-Kollektion "Martin's Power Functions" lassen sich Füllvorlagen zuweisen. Für Farbvorlagen gibt es dagegen keine entsprechende Funktion. Natürlich könnte das Script so ausgebaut werden, dass auch Farbvorlagen erzeugt und mit dem entsprechenden Namen versehen werden. Da das Dokument ja im Rechenblatt die Farben zeigt, besteht für deren Sichtbarkeit im Inventar kein Bedarf.

Der Fragesteller swissrodi hat mit meinem Script und meiner Unterstützung unterdessen ein Dokument geschaffen, mit welchem alle Pantone-Farben als Füllvorlagen mit dem Namen "Pantone xxx" erzeugt werden. Durch die Eingabe von "xxx" in einem Eingabefeld wird sofort die entsprechende Pantone-Farbe gezeigt. Gerade für diesen letzten Schritt ist die Anwendbarkeit der Funktion "SetzeBereichFüllung" sehr nützlich. Da Pantone-Farben urheberrechtlich geschützt sind, kann dieses Dokument hier nicht veröffentlicht werden.

Wer über eine Tabelle mit den CMYK-Werten der Pantone-Farben verfügt, kann die entsprechenden Farbvorlagen selbst erzeugen: Die CMYK-Werte müssen im Rechenblatt "PantoneTab" in den Spalten B:E und die Namen "Pantone xxx" in Spalte F eingetragen werden. Dann erzeugt das folgende Script die Pantone-Palette:

tell application "RagTime 6.5"
activate
set I to 0
repeat
set I to I + 1
if cell ("B" & I) of table "PantoneTab" of document 1 is empty then exit repeat
select cell ("A" & I) of table "PantoneTab" of document 1
set color of selection to {cyan:0, magenta:0, yellow:0, black:0}
end repeat
set I to 0
repeat
set I to I + 1
if cell ("B" & I) of table "PantoneTab" of document 1 is empty then exit repeat
set CY to value of cell ("B" & I) of table "PantoneTab" of document 1
set MA to value of cell ("C" & I) of table "PantoneTab" of document 1
set YE to value of cell ("D" & I) of table "PantoneTab" of document 1
set BL to value of cell ("E" & I) of table "PantoneTab" of document 1
select cell ("A" & I) of table "PantoneTab" of document 1
set color of selection to {cyan:CY, magenta:MA, yellow:YE, black:BL}
end repeat
set I to 0
repeat
set I to I + 1
set NN to value of cell ("F" & I) of table "PantoneTab" of document 1
if cell ("B" & I) of table "PantoneTab" of document 1 is empty then exit repeat
make new fill style sheet at end of document 1
set name of fill style sheet "Ohne Titel" of document 1 to NN
select cell ("A" & I) of table "PantoneTab" of document 1
set fill style sheet NN of document 1 to selection of window 2
end repeat
end tell

Das in der ersten Antwort enthaltene Script habe ich mit einer dritten Schlaufe ergänzt, welche in jedem Schritt je eine Füllvorlage erzeugt, diese gemäss dem in der gleichen Tabelle enthaltenen Namen benennt und ihr die in der zweiten Schlaufe erzeugte Farbe zuweist.

Gruss, Thomas