[GastForen Programmierung/Entwicklung AppleScript swatches

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

swatches

firstin1out
Beiträge gesamt: 59

28. Nov 2013, 08:56
Beitrag # 1 von 15
Bewertung:
(5503 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Forenmitglieder,

folgendes script:

tell application "Adobe Illustrator"
tell document 1
set inklist to the name of the swatches
--set result to number of inklist
end tell
end tell

Ergebnis:

{"[Ohne]", "[Passermarken]", "Weiß", "Schwarz", "C=90 M=30 Y=95 K=30", "Schwarzübergang", "Sehr weiche schwarze Vignette", "Grün, Gelb, Orange", "Lila radial", "Lagune", "C=0 M=0 Y=0 K=100", "C=0 M=75 Y=100 K=0", "HKS 1 N", "HKS 2 N", "HKS 3 N", "HKS 4 N", "HKS 5 N", "HKS 6 N", "HKS 7 N", "HKS 8 N", "HKS 10 N", "HKS 11 N", "HKS 12 N", "HKS 13 N", "HKS 14 N", "HKS 15 N", "HKS 16 N", "HKS 17 N", "HKS 18 N", "HKS 21 N", "HKS 22 N", "HKS 23 N", "HKS 24 N", "HKS 25 N", "HKS 26 N", "HKS 27 N", "HKS 28 N", "HKS 29 N", "HKS 31 N", "HKS 32 N", "HKS 33 N", "HKS 34 N", "HKS 35 N", "HKS 36 N", "HKS 37 N", "HKS 38 N", "HKS 39 N", "HKS 40 N", "HKS 41 N", "HKS 42 N", "HKS 43 N", "HKS 44 N", "HKS 45 N", "HKS 46 N", "HKS 47 N", "HKS 48 N", "HKS 49 N", "HKS 50 N", "HKS 51 N", "HKS 52 N", "HKS 53 N", "HKS 54 N", "HKS 55 N", "HKS 56 N", "HKS 57 N", "HKS 58 N", "HKS 59 N", "HKS 60 N", "HKS 61 N", "HKS 62 N", "HKS 63 N", "HKS 64 N", "HKS 65 N", "HKS 66 N", "HKS 67 N", "HKS 68 N", "HKS 69 N", "HKS 71 N", "HKS 72 N", "HKS 73 N", "HKS 74 N", "HKS 75 N", "HKS 76 N", "HKS 77 N", "HKS 78 N", "HKS 81 N", "HKS 82 N", "HKS 83 N", "HKS 84 N", "HKS 88 N", "HKS 89 N", "HKS 90 N", "HKS 91 N", "HKS 92 N", "HKS 93 N", "HKS 95 N", "HKS 96 N", "HKS 97 N"}

Wie kann ich die Liste am besten verändern, sodass nur HKS Farben erhalten bleiben?
Ich finde nicht den richtigen Befehl für Item enthält "HKS"

Viele Grüße
firstin1out
X

swatches

Hans Haesler
  
Beiträge gesamt: 5826

28. Nov 2013, 09:13
Beitrag # 2 von 15
Beitrag ID: #520198
Bewertung:
(5487 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo firstin1out,

herzlich willkommen im AppleScript-Forum! :-)

Diese Kurzfassung ergibt eine Fehlermeldung:

Code
set defList to every item of inklist whose it contains "HKS" 

Also muss man anders vorgehen. Um einen Konflikt zu vermeiden, würde ich der ersten Liste einen temporären Variablennamen geben:

Code
set tmplist to the name of the swatches 

Dann mit dem endgültigen Namen eine leere Liste definieren, eine Schleife durch das Ergebnis und bei jedem Element prüfen, ob es "HKS" enthält. Wenn ja, wird es an die endgültige Liste angehängt:

Code
set inklist to {} 

repeat with i from 1 to count of tmplist
set curItem to item i of tmplist
if curItem contains "HKS" then
set end of inklist to curItem
end if
end repeat
inklist

Gruss, Hans


als Antwort auf: [#520196]

swatches

firstin1out
Beiträge gesamt: 59

28. Nov 2013, 09:35
Beitrag # 3 von 15
Beitrag ID: #520200
Bewertung:
(5471 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank,

geht dann also nur über die repeat schleife!
Warum kann man denn eigentlich nicht den Text
in der Liste filtern? Also warum Fehlermeldung?

firstin1out


als Antwort auf: [#520198]

swatches

Hans Haesler
  
Beiträge gesamt: 5826

28. Nov 2013, 09:56
Beitrag # 4 von 15
Beitrag ID: #520204
Bewertung:
(5457 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo firstin1out,

bitte sehr.

Zitat Warum kann man denn eigentlich nicht den Text in der Liste filtern?

Weil das nicht implementiert wurde. Die AppleScript-Erfinder konnten ja nicht voraussehen, dass der firstin1out eines Tages die "HKS"-Namen ausfiltern möchte. :-)

Spass beiseite: Mit der Schleife geht es bei einer so kurzen Liste doch blitzschnell.

Gruss, Hans


als Antwort auf: [#520200]

swatches

TMA
Beiträge gesamt: 399

29. Nov 2013, 07:24
Beitrag # 5 von 15
Beitrag ID: #520274
Bewertung:
(5387 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es muss nicht unbedingt eine repeat Schleife verwendet werden.

Falls man die Scripterweiterung Satimage.osax installiert hat kann man es auch anders machen.

Hier habe ich mal einen Handler gebaut der die Liste filtert und auch sortiert:

Code
set theList to {"[Ohne]", "[Passermarken]", "Weiß", "Schwarz", "C=90 M=30 Y=95 K=30", "Schwarzübergang", ¬ 
"Sehr weiche schwarze Vignette", "Grün, Gelb, Orange", "Lila radial", "Lagune", "C=0 M=0 Y=0 K=100", ¬
"C=0 M=75 Y=100 K=0", "HKS 1 N", "HKS 2 N", "HKS 3 N", "HKS 4 N", "HKS 5 N", "HKS 6 N", "HKS 7 N", "HKS 8 N", ¬
"HKS 10 N", "HKS 11 N", "HKS 12 N", "HKS 13 N", "HKS 14 N", "HKS 15 N", "HKS 16 N", "HKS 17 N", "HKS 18 N", ¬
"HKS 21 N", "HKS 22 N", "HKS 23 N", "HKS 24 N", "HKS 25 N", "HKS 26 N", "HKS 27 N", "HKS 28 N", "HKS 29 N", ¬
"HKS 31 N", "HKS 32 N", "HKS 33 N", "HKS 34 N", "HKS 35 N", "HKS 36 N", "HKS 37 N", "HKS 38 N", "HKS 39 N", ¬
"HKS 40 N", "HKS 41 N", "HKS 42 N", "HKS 43 N", "HKS 44 N", "HKS 45 N", "HKS 46 N", "HKS 47 N", "HKS 48 N", ¬
"HKS 49 N", "HKS 50 N", "HKS 51 N", "HKS 52 N", "HKS 53 N", "HKS 54 N", "HKS 55 N", "HKS 56 N", "HKS 57 N", ¬
"HKS 58 N", "HKS 59 N", "HKS 60 N", "HKS 61 N", "HKS 62 N", "HKS 63 N", "HKS 64 N", "HKS 65 N", "HKS 66 N", ¬
"HKS 67 N", "HKS 68 N", "HKS 69 N", "HKS 71 N", "HKS 72 N", "HKS 73 N", "HKS 74 N", "HKS 75 N", "HKS 76 N", ¬
"HKS 77 N", "HKS 78 N", "HKS 81 N", "HKS 82 N", "HKS 83 N", "HKS 84 N", "HKS 88 N", "HKS 89 N", "HKS 90 N", ¬
"HKS 91 N", "HKS 92 N", "HKS 93 N", "HKS 95 N", "HKS 96 N", "HKS 97 N"}

return my findInList("^HKS.*", theList)

on findInList(SearchString, searchList)
try
if class of searchList ≠ list then set searchList to searchList as list
try
set theResult to find text SearchString in searchList with regexp and string result
on error
return {}
end try
if class of theResult ≠ list then set theResult to theResult as list
set theResult to sortlist theResult with remove duplicates
set theResult to exclude items "msng" from theResult
try
set theResult to sortlist theResult comparison 2
end try
return theResult
on error
return false
end try
end findInList

Das "≠" bitte durch ein "ungleich" ersetzen.

Gruß
TMA

[ Edit durch Hans: Die lange Liste in kürzere Zeilen unterteilt und die Tabs durch je zwei Leerschläge ersetzt ]


als Antwort auf: [#520204]
(Dieser Beitrag wurde von Hans Haesler am 29. Nov 2013, 08:51 geändert)

swatches

Hans Haesler
  
Beiträge gesamt: 5826

29. Nov 2013, 08:46
Beitrag # 6 von 15
Beitrag ID: #520276
Bewertung:
(5371 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

danke für die Ergänzung.

Sonderzeichen betreffend: Diese Problem-Kinder ersetzt man besser durch den entsprechenden (englischen) Text.

In diesem Fall: is not

Das gibt zwar etwas mehr zu tippen, aber so kann die Zerlegung vermieden werden.

Gruss, Hans


als Antwort auf: [#520274]

swatches

TMA
Beiträge gesamt: 399

29. Nov 2013, 08:56
Beitrag # 7 von 15
Beitrag ID: #520277
Bewertung:
(5363 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
ich glaube das hast du früher schonmal angemerkt.
Irgendwie bin ich es in meinen Scripten so gewohnt und paste die nur hier rein.
Mal schauen ob ich beim nächsten mal dran denke.

Gruß
TMA


als Antwort auf: [#520276]

swatches

firstin1out
Beiträge gesamt: 59

29. Nov 2013, 12:43
Beitrag # 8 von 15
Beitrag ID: #520296
Bewertung:
(5310 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Halo liebe Forenmitglieder,

prima, diese Beispiele kann man auch gut im workflow verwenden. Diese kleinen Erweiterungen sind eine große Hilfe und eine echte Progammbereicherung, vor allem, wenn man Geld bei anderer zusätzlicher software einsparen muß.


Ich hatte ja noch die Idee über swatchgroup zu gehen,
denn ich muß die Farben ja für meine Anwendung sowieso in einer Gruppe zusammenfassen.

Aber ich bekomme über den Inhalt immer nur meinen vergebenen deutschen Frbrnamen z.Bsp.
HKS Fargbruppe N, nicht aber wiederum an die Items.
Ist das auch nicht implementiert?


Gruß
firstin1out


als Antwort auf: [#520277]

swatches

Hans Haesler
  
Beiträge gesamt: 5826

29. Nov 2013, 13:07
Beitrag # 9 von 15
Beitrag ID: #520298
Bewertung:
(5299 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo firstin1out,

ich bin unterwegs und kann vor heute Abend nichts ausprobieren.

Falls niemand eine Antwort postet: Würdest Du mir bitte ein typisches Dokument zustellen?

Danke im voraus.

Gruss, Hans


als Antwort auf: [#520296]

swatches

Uwe Laubender
Beiträge gesamt: 5319

29. Nov 2013, 13:17
Beitrag # 10 von 15
Beitrag ID: #520300
Bewertung:
(5289 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von firstin1out Aber ich bekomme über den Inhalt immer nur meinen vergebenen deutschen Frbrnamen z.Bsp.
HKS Fargbruppe N, nicht aber wiederum an die Items.


Hab kaum Erfahrung mit AppleScript, aber die Farben dürften auch 'ne ID-Nummer haben. Kannst Du die auslesen und mit sowas wie "itemByID" (implementiert in ExtendScript) arbeiten?


als Antwort auf: [#520296]

swatches

TMA
Beiträge gesamt: 399

29. Nov 2013, 13:35
Beitrag # 11 von 15
Beitrag ID: #520303
Bewertung:
(5274 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du lässt dir ja auch nur die Namen geben.

Die IDs bzw. die Objektreferenz bekommst du so:
Code
tell application "Adobe Illustrator" 
tell document 1
set inklist to swatches
end tell
end tell


Du kannst auch direkt 2 Listen befüllen. Eine mit Namen und analog dazu eine mit den Referenzen:
Code
tell application "Adobe Illustrator" 
tell document 1
set {nameList, idList} to {name of swatches, swatches}
end tell
end tell


Gruß
TMA


als Antwort auf: [#520300]

swatches

Uwe Laubender
Beiträge gesamt: 5319

29. Nov 2013, 13:50
Beitrag # 12 von 15
Beitrag ID: #520306
Bewertung:
(5262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hm. Habe gerade im Objektmodell von Illustrator nachgeschaut. ID-Nummern für die Swatches gibt's da offenbar nicht. Sorry, war noch vom "herrlichen" InDesign DOM geblendet ;-)

Hier aus der ExtendScript-DOM-Doku für Illustrator CS6 nach Jongware:

Code
Property	Type		Access		Description 
color Color r/w The color information of the swatch.
name string r/w The swatch's name.
parent Object readonly The object's container.
typename string readonly The class name of the object.


Also: bin raus aus der Diskussion. Scusi noch mal für die evtl. Verwirrung, die ich gestiftet habe…


als Antwort auf: [#520303]

swatches

firstin1out
Beiträge gesamt: 59

29. Nov 2013, 13:52
Beitrag # 13 von 15
Beitrag ID: #520307
Bewertung:
(5257 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo TMA,
Ok, is mir jetzt klar.
Aber warum das hier noch? Ergebnis ist 1 da müßten 86 enthalten sein.
number of items bezieht sich item nur auf swatchgroup?
siehe beigefügtes Bild.

tell application "Adobe Illustrator"
tell document 1
--get number of swatchgroups - ergebnis 2
set allcolors to swatchgroup 2
get the number of items of allcolors
end tell
end tell

gruß firstin1out


als Antwort auf: [#520303]
Anhang:
Bildschirmfoto 2013-11-29 um 13.26.35.png (15.9 KB)

swatches

TMA
Beiträge gesamt: 399

29. Nov 2013, 14:14
Beitrag # 14 von 15
Beitrag ID: #520309
Bewertung:
(5231 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe bisher kaum Erfahrung mit Illustrator Scripting, habe mir das aber mal kurz angesehen.

Mit:
Code
set allcolors to swatchgroup 2 

kommst du nicht weiter. "allcolors" ist in diesem Fall nur die Referenz zur "swatchgroup". Da hängen nur properties der Gruppe dran, keine zugewiesenen Farben.
Andersrum genauso. An der einzelnen Farbe hängt keine Info das sie zu einer Gruppe gehört.

Ich habe keine Ahnung wie Illustrator das intern zuweist.
Es gibt per AppleScript keine Möglichkeit da ran zu kommen.

Gruß
TMA


als Antwort auf: [#520307]

swatches

firstin1out
Beiträge gesamt: 59

29. Nov 2013, 14:17
Beitrag # 15 von 15
Beitrag ID: #520310
Bewertung:
(5224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Forenmitglieder,

dann suche ich nicht weiter.
Das Leben ist zu kurz, um sich mit Dingen zu beschäftigen die per se nicht lösbar zu sein scheinen.

Vielen Dank für Eure Hilfe. Mein Ziel habe ich ja erreicht.

firstin1out


als Antwort auf: [#520309]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!