[GastForen Programmierung/Entwicklung AppleScript QXP Ebene per AS duplizieren?

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

QXP Ebene per AS duplizieren?

Kultgerd
Beiträge gesamt: 61

26. Mär 2010, 16:58
Beitrag # 1 von 8
Bewertung:
(3502 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ich kann keinen Befehl finden, einen vorhandenen Layer zu duplizieren. Hat dafür jemand eine Lösung?

Weder duplicate, create, copy oder gar make funzen im Zusammenhang mit layer.

QXP 6.5 (leider in diesem Fall noch).

Gruß
Kultgerd
X

QXP Ebene per AS duplizieren?

Hans Haesler
  
Beiträge gesamt: 5826

26. Mär 2010, 17:43
Beitrag # 2 von 8
Beitrag ID: #437837
Bewertung:
(3493 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerd,

es wird Dir wohl nichts anderes übrigbleiben, als eine neue Ebene anzulegen und die Boxen der Quell-Ebene zu kopieren.

Code
tell document 1 of application "QuarkXPress 6.52" 
set newLayer to make layer at beginning
repeat with i from 1 to count of generic boxes of layer "Ebene 1"
duplicate generic box i of layer "Ebene 1" to beginning of newLayer
end repeat
end tell

Die Schleife ist notwendig, weil nur ein Objekt aufs Mal dupliziert werden kann.

Gruss, Hans


als Antwort auf: [#437835]

QXP Ebene per AS duplizieren?

TMA
Beiträge gesamt: 399

1. Apr 2010, 08:32
Beitrag # 3 von 8
Beitrag ID: #438287
Bewertung:
(3440 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ich habe gerade die gleiche Aufgabe wie Gerd.
Ich brauche es für XPress7.x

Mein Vorschalg:
auf der gewünschten Ebene alles selektieren, kopieren (bordmittel:copy), deselektieren (muss sein sonst wird die Selection ersetzt) und an gleicher Stelle einfügen (bordmittel:paste).
Code
property TextLayer : "Text" 

tell application "QuarkXPress Passport"
tell front document
set selected of every generic box of layer (my TextLayer) to true
copy
set selected of every generic box of layer (my TextLayer) to false
paste
end tell
end tell


Leider finde ich für XPress den AS-Befehl "an gleicher Stelle einfügen" nicht.
Weis jemand wie das geht?

Alternativ könnte man den Umweg gehen und die Selection zu Gruppieren, die x/y Position der Gruppe holen, pasten und die Gruppe an die richtigen x/y Position zu bewegen.
Diesen Umstand möchte ich aber nur im Notfall benutzen.

Gruß
TMA


als Antwort auf: [#437837]

QXP Ebene per AS duplizieren?

TMA
Beiträge gesamt: 399

1. Apr 2010, 08:55
Beitrag # 4 von 8
Beitrag ID: #438289
Bewertung:
(3433 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es scheint auch einfacher zu gehen, bin aber noch am testen:
Da der duplicate Befehl nur ein Objekt duplizieren kann reicht es ja aus, wenn man die gewünschten Objekte zu einem Objekt gruppiert. Dann gehts auch mit dem duplicate.
Werde aber später mehr berichten.


als Antwort auf: [#438287]
(Dieser Beitrag wurde von TMA am 1. Apr 2010, 08:55 geändert)

QXP Ebene per AS duplizieren?

Hans Haesler
  
Beiträge gesamt: 5826

1. Apr 2010, 09:20
Beitrag # 5 von 8
Beitrag ID: #438294
Bewertung:
(3421 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

der Befehl "An gleicher Stelle einfügen" ist nur im UI eingefügt worden. Einen AS-Befehl dafür gibt es nicht.

Frage: Fehlt nicht bei Deinem Scriptversuch das Erzeugen einer neuen Ebene?

Das my ist nicht notwendig. Es genügt, zu schreiben layer TextLayer.

Gruss, Hans


als Antwort auf: [#438289]

QXP Ebene per AS duplizieren?

TMA
Beiträge gesamt: 399

1. Apr 2010, 09:24
Beitrag # 6 von 8
Beitrag ID: #438296
Bewertung:
(3416 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
alles richtig was du schreibst. Das war auch nur der erste Versuch und ein Ausschnitt aus meinem Script, daher die property, ich hatte das nur zu einem Beispiel zusammenkopiert.
Wie geschrieben bin ich noch am testen, später gibt es mehr.

Gruß
TMA


als Antwort auf: [#438294]

QXP Ebene per AS duplizieren?

TMA
Beiträge gesamt: 399

1. Apr 2010, 10:29
Beitrag # 7 von 8
Beitrag ID: #438302
Bewertung:
(3403 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So, nun scheint es zu laufen:
Code
set TextLayer_alt to "Text" 
set TextLayer_neu to "Text_neu"

my ungroupAll_XPress()

tell application "QuarkXPress Passport"
tell front document
-- selektieren und gruppieren
set selected of every generic box of layer TextLayer_alt to true
set grouped of group box 1 to true
-- neue ebene anlegen
set newLayer to make new layer at beginning with properties {name:TextLayer_neu}
-- gruppe duplizieren
duplicate group box 1 to end of layer TextLayer_neu
-- die neue gruppe auf der neuen ebene ungruppieren
set grouped of group box 1 to false
-- die alte gruppe auf der alten ebene ungruppieren
set grouped of group box 1 to false
end tell
end tell

on ungroupAll_XPress()
tell application "QuarkXPress Passport"
tell front document
set groupList to every group box
repeat while groupList ≠ {}
set grouped of group box 1 to false
set groupList to every group box
end repeat
end tell
end tell
end ungroupAll_XPress


In diese Zeile bitte die komischen Zeichen durch ein "Ungleich" ersetzen (also Ungleich leere Liste):
Code
repeat while groupList ≠ {} 


Allerdings ist Vorsicht geboten bei dieser Zeile:
Code
duplicate group box 1 to end of layer newLayerName 


Ändert man "end of layer" in "beginning of layer" scheint XPress die Boxen in der Stapelreihenfolge ungünstiger zu setzen.
Am besten selber mal testen mit einer Bildfläche und einem Textfeld darüber.
Vorher schon gruppierte Objekte scheinen ein bischen Ärger zu machen mit der neuen Gruppe die automatisch erstellt wird, deswegen löse ich vorher über den "ungroup"-Handler alle Gruppen auf.

Dupliziert man wie in diesem Script-Beispiel eine Gruppe, scheint XPress intern jede Box einzeln zu duplizieren (sowie Hans sein Beispiel mit der repeat-Schleife) womit sich die Stapelreihenfolge ändern könnte.
Also Vorsicht und noch mal die Objekte manuell prüfen. Zumindest wenn Objekte übereinander liegen.

Gruß
TMA


als Antwort auf: [#438296]

QXP Ebene per AS duplizieren?

Kultgerd
Beiträge gesamt: 61

21. Apr 2010, 09:57
Beitrag # 8 von 8
Beitrag ID: #439737
Bewertung:
(3219 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank Euch beiden,
wir haben ebenfalls in diese Richtung getestet und kommen auf diese Weise zurecht. Ist halt ein kleines Helferlein, das einiges an Zeit sparen und Fehler ersparen kann.

VIele Grüße
Gerd


als Antwort auf: [#438302]
X