[GastForen Programmierung/Entwicklung AppleScript Applescript, Illustrator (CC2017) und Konturen (außen, Mitte, innen)

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

Applescript, Illustrator (CC2017) und Konturen (außen, Mitte, innen)

Minimac
Beiträge gesamt: 55

10. Mär 2020, 18:42
Beitrag # 1 von 4
Bewertung:
(43365 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Illustratornutzer,

ich suche gerade verzweifelt nach der Einstellung, mit der ich per Applescript einer vorhanden Fläche eine Kontur zuweisen kann und dabei mit angeben kann, ob die nun innen, außen oder mittig auf der Kontur liegen soll. Händisch kann man das ja in der Palette "Aussehen" einstellen, ich muß es aber bei sehr vielen Objekten in noch mehr Dateien ändern. Die "path items" kriege ich, den strake auch, nur finde ich keinerlei Option, die mich die "Lage" der Kontur einstellen läßt.
Wenn alle Stricke reißen sollten: Kann man im Illustrator wie in Indesign die Paletten direkt "ansprechen". Dann würde ich die Flächen einzeln markieren und dann über die Palette die Option entsprechend schalten.
Aber vielleicht hat ja auch wer eine bessere Idee.

Gruß
Michael
X

Applescript, Illustrator (CC2017) und Konturen (außen, Mitte, innen)

Hans Haesler
  
Beiträge gesamt: 5826

10. Mär 2020, 20:52
Beitrag # 2 von 4
Beitrag ID: #574460
Bewertung:
(43351 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

zum Herausfinden, wo sich das Alinieren der Kontur versteckt, bin ich so vorgegangen:
– ein Rechteck aufgezogen;
– eine Kontur von 6 pt zugewiesen;
– letztere "mittig" belassen.

Das Rechteck ausgewählt und folgendes Script gestartet:

Code
tell application "Adobe Illustrator" 
tell selection
properties
end tell
end tell

Das Ergebnis in ein InDesign-Dokument kopiert und die ", " durch Returns ersetzt. Dem Textrahmen zwei Spalten zugewiesen.
Eine neue Ebene erzeugt, den vorhanden Textrahmen auf die neue Ebene kopiert und den Text mit "Magenta" eingefärbt.

Zurück in Illustrator, das Alinieren der Kontur auf "innen" geändert und das Script nochmals gestartet.
Das Ergebnis kopiert, im InDesign-Dokument den Magenta-Text ausgewählt, das kopierte Ergebnis eingesetzt und wieder ", " durch Returns ersetzt.

Der einzige Unterschied, welcher sichtbar wird, sind andere Zahlen bei "visible bounds".

Beim Illustrator-Rahmen das Alinieren wieder auf "mittig" gesetzt. Im Script das 'properties' durch 'geometric bounds' ersetzt. Das Ergebnis:

Code
{30.0, -50.0, 230.0, -150.0} 

Nun anstelle von 'geometric bounds' die 'visible bounds' verlangen. Das Ergebnis:

Code
{27.0, -47.0, 233.0, -153.0} 


Theoretisch könnte man zum Umstellen von "mittig" nach "innen" einer Variablen die 'geometric bounds' zuweisen und dann den 'visible bounds' die Werte der Variablen.
Das funktioniert leider nicht, denn die 'visible bounds' sind 'read only'.

Ein anderer Ansatz: Die Werte der 'geometric bounds' speichern (verglichen mit InDesign sind Y und X vertauscht). Auch die Rahmenstärke, die Breite und die Höhe speichern. Dann der Position (= die Ecke oben links), sowie der Breite und der Höhe neue Werte zuweisen:

Code
tell application "Adobe Illustrator" 
activate
tell selection
set strVal to stroke width
set {x1, y1, x2, y2} to geometric bounds
set oldWidth to width
set oldHeight to height
set position to {x1 + (strVal / 2), y1 - (strVal / 2)}
set properties to {width:oldWidth - strVal, height:oldHeight - strVal}
end tell
end tell

Mit anderen Worten: Viel Vergnügen! (und Ausdauer :-)

Gruss, Hans


als Antwort auf: [#574458]

Applescript, Illustrator (CC2017) und Konturen (außen, Mitte, innen)

Uwe Laubender
Beiträge gesamt: 5316

11. Mär 2020, 11:08
Beitrag # 3 von 4
Beitrag ID: #574466
Bewertung:
(43312 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von Michael Wenn alle Stricke reißen sollten: Kann man im Illustrator wie in Indesign die Paletten direkt "ansprechen"?


Hallo Michael,

ich gehe mal von ExtendScript (JavaScript) aus, da AppleScript nicht so mein Ding ist:
Es gibt zwar die Methode app.executeMenuCommand("Menu Command String"), aber Du wirst da leider nicht fündig werden.

Hier eine Liste, die Anwender und Skripter ten-A zusammengestellt hat:
https://ten5963.wordpress.com/...-commands-reference/

Ein anderer Ansatz wäre die Aufzeichnung eines ActionStrings, der dann mit doScript() ausgeführt wird. Habe mich mit dieser Thematik aber nicht näher befasst. Nachzulesen hier:

Scripting stroke alignment (JSX)
GeorgeHunt88, Nov 28, 2019
https://community.adobe.com/...td-p/10769756?page=1

Zitat von Inventsable …We can set the Stroke alignment within an Action, but one problem is that we don't set only the alignment -- we also set the width, dashes, etc. You can record any Action, save it, open the .aia file in a text editor, and replace the ActionString variable above with it's contents to dynamically run it within a script without needing the user to have this action. …



als Antwort auf: [#574458]
(Dieser Beitrag wurde von Uwe Laubender am 11. Mär 2020, 11:10 geändert)

Applescript, Illustrator (CC2017) und Konturen (außen, Mitte, innen)

Minimac
Beiträge gesamt: 55

11. Mär 2020, 14:18
Beitrag # 4 von 4
Beitrag ID: #574470
Bewertung:
(43289 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
tja, das hatte ich (natürlich) genau so gemacht, hab die unterschiedlichen Sounds gesehen und geflucht weil die nur readonly sind. Theoretisch könnte ich jetzt den Strichstärke indie Sounds einrechnen, nur wenn dann ein User den Strake weghaben will, gibt es ein anderes Ergebnis wenn der Stroke Mittig ist als wenn er innen ist.
Womit wir zu Uwe kommen.

Hallo Uwe,
nun ist es bei mir leider so, das ich mit Java etc nicht so firm bin. Aber wenn sich das mit einer Action lösen läßt so sollte die auch unter AS (erstellt und) gestartet werden können. Dann wird die eben zuerst aufgerufen und im Anschluß die ggf. "verstellten" Werte wieder korrigiert. So es mir gelingt, die Action scriptgesteuert zu erstellen, könnte ich natürlich bei der Erstellung gleich die richtigen Werte vorgeben. Wahrscheinlich reicht es aber, diese Action 1x per Hand richtig zu erstellen und dann über AS aufzurufen.

Warum hab ich immer so exotische Probleme und brauch dazu noch exotischere Lösungen :-(

Auf jeden Fall schon einmal vielen Dank für den Schubs in die hoffentlich richtige Richtung. Sobald ich das getestet habe, gibt es Feedback.


Gruß
Michael


als Antwort auf: [#574466]
X