[GastForen Programmierung/Entwicklung AppleScript ID und Objektebenenoptionen per Script

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

ID und Objektebenenoptionen per Script

Anonym
Beiträge gesamt: 22827

18. Apr 2009, 19:49
Beitrag # 1 von 10
Bewertung:
(2985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

folgendes Script erzeugt ein Dupli und diesem Dupli will ich unter Objekte/ Objektebenenoptionen die Sichtbarkeit der Ebenen einstellen, falls das per Script überhaupt möglich ist.
Der Grund: Die Ebene "Schatten" auf eine separate multiplizierende Ebene zu stellen.

Das selektierte psd-Bild hat die Ebenen:
"Frei"        (sichtbar)
"Schatten"            (sichtbar)
"Hintergrd"    (ausgeblendet)
--
tell document 1 of application "Adobe InDesign CS2"
    activate
    set curSel to selection
    try
        set Bildx to every item of selection
        set Schatten to duplicate Bildx
    end try
end tell
--
Das Dupli sollte danach folgende Ebenen zeigen:
"Frei"        >> ausblenden
"Schatten"      (sichtbar)
"Hintergrd"    >> ausblenden

Das Dupli sollte hinter dem eigentliche Bild liegen und auf den Modus "multiplizieren" gestellt werden (perspektivischer K-Schatten)

herzliche Grüße
willem
X

ID und Objektebenenoptionen per Script

Hans Haesler
  
Beiträge gesamt: 5822

19. Apr 2009, 20:59
Beitrag # 2 von 10
Beitrag ID: #423015
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

ich habe eine psd.Datei, welche die angegebenen Ebenen enthält, erzeugt. Das Bild importiert und per Script dupliziert.

Aber ich werde aus Deinen Angaben nicht ganz schlau. Wenn im Original-Bild die Ebene "Schatten" sichtbar ist, verdeckt sie den Schatten des darunterliegenden Duplis. Dann bringt es doch nichts, bei diesem den Modus auf "multiplizieren" zu stellen.

Und die Ebene "Hintergrd" bleibt beim Duplizieren ausgeblendet. Weshalb die Angabe ">> ausblenden"?

Würdest Du mir bitte ein InDesign-Dokument zustellen, in welchem die beschriebenen Einstellungen manuell vorgenommen sind. Mitsamt der importierten Bilddatei.

Danke im voraus.

Gruss, Hans


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Hans Haesler
  
Beiträge gesamt: 5822

20. Apr 2009, 21:41
Beitrag # 3 von 10
Beitrag ID: #423016
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

danke für die Dateien.

Nur ist alles klar. Hinter dem Bildrahmen liegt ein grosser Hintergrundrahmen. Deshalb macht es Sinn, die Ebene "Schatten" des Duplis auf "Multiplizieren" zu setzen.

Und damit man diesen Schatten sieht, bleibt im Vordergrund-Bild nur die "Ebene Frei" sichtbar.

Ausgangslage: Der Rahmen des geladenen Bildes ist mit dem schwarzen Pfeil ausgewählt. Die Ebenen können alle sichtbar sein. Man kann sie aber auch alle ausblenden. Es spielt keine Rolle. Wichtig ist einzig, dass die Ebenen so heissen, wie erwartet.

Das Script aktiviert die Sichtbarkeit der "Ebene Frei" und setzt "Schatten" und "Ebene Hgrd" auf unsichtbar.

Dann dupliziert es die Auswahl. Die Kopie wird im Vordergrund angelegt. Der ursprünglich ausgewählte Rahmen bleibt im Hintergrund. Und ausgewählt. Die restlichen Befehle richten sich demnach an ihn.

Die "Ebene Frei" wird unsichtbar gemacht. Dafür wird die Ebene "Schatten" sichtbar.

Und schliesslich wird noch der Modus auf "Multiplizieren" gesetzt.

Achtung: Die Auswahl wird nicht geprüft. Also: Den Bildrahmen, welcher das psd-Bild enthält, mit dem schwarzen Pfeil auswählen.
---
tell document 1 of application "Adobe InDesign CS2"
   activate
   
   try
      tell graphic layer options of graphic 1 of selection
         set update link option to keep overrides
         set current visibility of graphic layer "Ebene Frei" to true
         set current visibility of graphic layer "Schatten" to false
         set current visibility of graphic layer "Ebene Hgrd" to false
      end tell
   end try
   
   try
      duplicate item 1 of selection
      tell graphic layer options of graphic 1 of selection
         set current visibility of graphic layer "Ebene Frei" to false
         set current visibility of graphic layer "Schatten" to true
      end tell
   end try
   
   try
      tell selection
         tell graphic 1
            set blend mode to multiply
         end tell
      end tell
   end try
   
end tell
---
Weil beim Benennen der Ebenen unweigerlich Tippfehler vorkommen, ist es ratsam im Script nur die Indizes zu benutzen:

statt graphic layer "Ebene Frei" nur
---
graphic layer 1
---
statt graphic layer "Schatten" nur
---
graphic layer 2
---
statt graphic layer "Ebene Hgrd" nur
---
graphic layer 3
---

Gruss, Hans


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Anonym
Beiträge gesamt: 22827

21. Apr 2009, 04:27
Beitrag # 4 von 10
Beitrag ID: #423017
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

hab heute morgen natürlich gleich das Script ausprobiert und ...
Super ! großartig ! Super !

Auch mit zusätzlichen Korrekturebenen funktioniert es einwandfrei.

herzlichen Dank !!!
Gruss willem


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Hans Haesler
  
Beiträge gesamt: 5822

21. Apr 2009, 06:00
Beitrag # 5 von 10
Beitrag ID: #423018
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

bitteschön. :-)

Noch etwas: Das Script prüft auch nicht, ob nur ein Bildrahmen ausgewählt ist.

Falls mehrere Rahmen gleichzeitig behandelt werden sollten, dann müsste der Code entsprechend ergänzt werden.

Gruss, Hans


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Hans Haesler
  
Beiträge gesamt: 5822

21. Apr 2009, 07:38
Beitrag # 6 von 10
Beitrag ID: #423019
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

und hier ist das geänderte Script, mit welchem sowohl ein einzelner als auch mehrere Rahmen behandelt werden können.

Die Anpassung war einfach. Eine Schleife ist nicht notwendig. Anstelle von 'graphic 1' nur 'every graphic' ansprechen.
---
tell document 1 of application "Adobe InDesign CS2"
   activate
   
   try
      tell graphic layer options of every graphic of selection
         set update link option to keep overrides
         set current visibility of graphic layer "Ebene Frei" to true
         set current visibility of graphic layer "Schatten" to false
         set current visibility of graphic layer "Ebene Hgrd" to false
      end tell
   end try
   
   try
      duplicate selection
      tell graphic layer options of every graphic of selection
         set current visibility of graphic layer "Ebene Frei" to false
         set current visibility of graphic layer "Schatten" to true
      end tell
   end try
   
   try
      tell selection
         tell every graphic
            set blend mode to multiply
         end tell
      end tell
   end try
   
end tell
---
Nach wie vor wird aber nicht geprüft, ob die Auswahl enthält, was das Script voraussetzt.

Gruss, Hans


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Anonym
Beiträge gesamt: 22827

21. Apr 2009, 18:44
Beitrag # 7 von 10
Beitrag ID: #423020
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

möchte noch vor deinem Script das Bild in Photoshop öffnen und eine Aktion ausführen, was mit folgendem 1.Script auch geschieht.
-- 1. Script
tell document 1 of application "Adobe InDesign CS2"
    activate
    set aktivBild to selection
    set curFrame to object reference of item 1 of aktivBild
    set curLink to item link of graphic 1 of curFrame
    set DateiPfad to file path of item 1 of curLink
    set ImagePath to file path of item 1 of curLink
end tell

tell application "Adobe Photoshop CS2"
    activate
    open file ImagePath showing dialogs never
    do action "Aktion_1" from "Set1"
end tell
--
dannach als 2. Script
--
tell document 1 of application "Adobe InDesign CS2"
    activate
   
    try
        tell graphic layer options of graphic 1 of selection
            set update link option to keep overrides
            set current visibility of graphic layer "Ebene Frei" to true
            set current visibility of graphic layer "Schatten" to false
            set current visibility of graphic layer "Ebene Hgrd" to false
        end tell
    end try
   
    try
        duplicate item 1 of selection
        tell graphic layer options of graphic 1 of selection
            set current visibility of graphic layer "Ebene Frei" to false
            set current visibility of graphic layer "Schatten" to true
        end tell
    end try
   
    try
        tell selection
            tell graphic 1
                set blend mode to multiply
            end tell
        end tell
    end try
end tell
--
wenn ich nun beide Scripte zu einem Script kombiniere, funktioniert es nicht.
- komme nicht darauf, oder besser gesagt - ich weiss nicht wie -

Danke im Vorraus
willem


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Hans Haesler
  
Beiträge gesamt: 5822

21. Apr 2009, 19:13
Beitrag # 8 von 10
Beitrag ID: #423021
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

ich muss raten, weil unbekannt ist, was die Photoshop-Aktion anstellt.

Meine Vermutung: Die Auswahl des InDesign-Bildrahmens wird aufgehoben.

Wie wird das Bild ausgewählt? Mit dem schwarzen Pfeil? Dann kann die Variable aktivBild benutzt werden, um die Auswahl wiederherzustellen:
---
tell document 1 of application "Adobe InDesign CS2"
   activate
   set selection to aktivBild
   
   try
      tell graphic layer options of graphic 1 of selection

usw., usf.
---

Gruss, Hans


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Anonym
Beiträge gesamt: 22827

22. Apr 2009, 04:20
Beitrag # 9 von 10
Beitrag ID: #423022
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

>> ich muss raten, weil unbekannt ist, was die Photoshop-Aktion anstellt.
Die Photoshop-Aktion erstellt den Schatten

>> Meine Vermutung: Die Auswahl des InDesign-Bildrahmens wird aufgehoben.
Genau das wars, Danke

ps
Ich wende das Script nur auf einzelne Bilder an (mit schwarzem Auswahlwerkzeug)

Gruss willem


als Antwort auf: [#423014]

ID und Objektebenenoptionen per Script

Hans Haesler
  
Beiträge gesamt: 5822

22. Apr 2009, 05:52
Beitrag # 10 von 10
Beitrag ID: #423023
Bewertung:
(2984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

bitteschön. Dann ist ja alles okay.

Die Mehrfachauswahl-Version hatte ich gemacht, weil Du in Deinem ersten Beitrag 'every item of selection' benutzt hattest.

Gruss, Hans


als Antwort auf: [#423014]
X