Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt In einer Bibliothek ausgewähltes Element platzieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

In einer Bibliothek ausgewähltes Element platzieren

-hans-
Beiträge gesamt: 748

14. Feb 2011, 10:53
Beitrag # 1 von 16
Bewertung:
(13609 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo beieinander,

ich möchte ein in einer Bibliothek ausgewähltes Element an einer bestimmten Koordinate platzieren ...
aber: wie komme ich zu library und item der Selektion¿
und: kann ich direkt das asset direkt an eine bestimmte Stelle platzieren, oder muss ich wie im Beispiel "nachtraeglich moven"?

Ausserdem: wie bestimme ich die Zielseite (oder ist das immer die aktive Seite?); für placeAsset finde ich nur: "Array of any placeAsset (on: {Document | Text} )" ..also keine angabe über die Seite ...


Hier mein Snippet:
Code
var theDoc = app.activeDocument; 

// wie komme von einer Selektion in einer library zum Namen der library und des assets?
var libItem = app.libraries.item("Beispiel.indl").assets.item("EinName");

var placedLibItem = libItem.placeAsset(theDoc);

// Die Koordinaten erhalte ich aus in einem Dialog in dem Spalte und Zeile abgfragt werden ...
// ... oder kann ich bei placeAsset schon eine Position angeben? nix gefunden dazu ...
placedLibItem.move([xCoordinate,myCoordinate]);


Guten Wochenstart :)

Hans
X

In einer Bibliothek ausgewähltes Element platzieren

TMA
Beiträge gesamt: 399

15. Feb 2011, 08:28
Beitrag # 2 von 16
Beitrag ID: #464713
Bewertung:
(13555 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
ich habe sowas mal mit AppleScript gemacht.

Allerdings hatte ich nur den Namen des Assets und den Namen der Library.
Ob man das Asset direkt platzieren kann, weis ich nicht genau. Ich habe das bei mir auch erst auf der Seite platziert und nachher verschoben.

Falls du was automatisieren möchtest, wäre das für dich nicht auch der richtige Weg, ohne vorher manuell was zu selektieren?


An jeder Library hängt ein "associated panel" mit einer "selection". Man kann also wenn man mehrere Bibliotheken geöffnet hat, in diesen gleichzeitig was selektiert haben.

Vielleicht hilft dir das ein wenig.

Gruß
TMA


als Antwort auf: [#464641]

In einer Bibliothek ausgewähltes Element platzieren

-hans-
Beiträge gesamt: 748

15. Feb 2011, 10:23
Beitrag # 3 von 16
Beitrag ID: #464736
Bewertung:
(13541 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

danke für Deine Antwort.
Ziel der Aktion: Der Redakteur soll markierte Elemente aus einer Bibliothek spalten- und zeilengenau positionieren können ...

Ich habe zum Thema ein VB-Script-Snippet, das die Biblios auf "visible = true" testet und dann die Auswahl des Assets vornimmt ...

Ohne gerade InDesign zur Hand zu haben, habe ich mal ein wenig Code gebastelt, der dann (zumindest von der Idee her ;-) ) genauso funktionieren könnte ...
Code
var theDoc =  app.activeDocument; 
var theLibs = app.ibraries;

for (var n = theLibs.length-1; n >=0 ;n--) {
var oneLib = theLibs.item[n];
var testVisible = oneLib.associatedPanel.visible;
if ( testVisible ! = false) {
var theAsset = oneLib.associatedPanel.selection.item[0];
placeAsset(theAsset)
}
}

function placeAsset(theAsset) {
var placedLibItem = theAsset(theDoc);
//...
placedLibItem[0].move([xCoordinate, myCoordinate]);

}



... muss ich aber noch testen.

Gruß

Hans


als Antwort auf: [#464713]

In einer Bibliothek ausgewähltes Element platzieren

-hans-
Beiträge gesamt: 748

15. Feb 2011, 17:37
Beitrag # 4 von 16
Beitrag ID: #464827
Bewertung:
(13514 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nachtrag,

funktioniert soweit. Das in einer Bibliothek markierte Element wird auf der Seite platziert und dann verschoben. Das moven funktioniert in dieser Form nur mit einteiligen Bibliothekselementen, um mehrteilige Elemente zu verschieben muss man das array placedLibItem wieder durchgehen ...

Für bessere Ideen gerne offen :)

Code
var theDoc =  app.activeDocument;  
var theLibs = app.libraries;


for (var n = theLibs.length-1; n >=0 ;n--) {
var oneLib = theLibs.[n];
var testVisible = oneLib.associatedPanel.visible;
if (testVisible != false) {
var theAsset = oneLib.associatedPanel.selection[0];
if (oneLib.associatedPanel.selection.length > 0) {
placeAsset(theAsset)
}
}
}

function placeAsset(theAssetItem) {
var placedLibItem = theAssetItem.placeAsset(theDoc);
//...
placedLibItem[0].move([10,10]);
}



als Antwort auf: [#464736]

In einer Bibliothek ausgewähltes Element platzieren

TMA
Beiträge gesamt: 399

16. Feb 2011, 08:36
Beitrag # 5 von 16
Beitrag ID: #464874
Bewertung:
(13483 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
ist das Asset denn nicht gruppiert?
Oder habe ich da was falsch verstanden...

Gruß
TMA


als Antwort auf: [#464827]

In einer Bibliothek ausgewähltes Element platzieren

-hans-
Beiträge gesamt: 748

16. Feb 2011, 11:50
Beitrag # 6 von 16
Beitrag ID: #464904
Bewertung:
(13459 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,
ja, richtig die Bibliotheks-Elemente können leider nicht per Vorgabe gruppiert werden, da sonst die Größenanpassung der getaggten Rahmen nicht funktioniert ...
ist aber nicht weiter schlimm, sind ja nur ein paar weitere Schleifen ;-)

Mein eigentliches Problem ist tatsächlich, dass mehere Bibs visible sein können und sogar Mehrfach-Selektionen möglich sind ...
aber das grenzt eh' an Gedanken lesen ;-)


Danke für Deinen Input!!!

Gruß

Hans


als Antwort auf: [#464874]

In einer Bibliothek ausgewähltes Element platzieren

Marc Sidon
Beiträge gesamt: 262

18. Feb 2011, 10:12
Beitrag # 7 von 16
Beitrag ID: #465137
Bewertung:
(13413 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

beim Platzieren eines Assets mit mehreren Objekten kann man die platzierten Elemente gruppieren, dann die Gruppe verschieben und anschließend das Ganze wieder ungruppieren.

Code
function placeAsset(theAssetItem) {   
var placedLibItems = theAssetItem.placeAsset(theDoc);
if (placedLibItems.length == 1)
{
//...
placedLibItem[0].move([10,10]);
}
else if (placedLibItems.length > 1)
{
var placedGroup = thePage.group(placedLibItems);
//...
placedGroup.move([10,10]);
placedGroup.ungroup();
}
}


Gruß,
Marc


als Antwort auf: [#464904]

In einer Bibliothek ausgewähltes Element platzieren

-hans-
Beiträge gesamt: 748

18. Feb 2011, 13:01
Beitrag # 8 von 16
Beitrag ID: #465170
Bewertung:
(13399 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

hatte ich auch zuerst erwogen, kam aber dann beim testen zu Problemen bei vorgegebenen Konturenführungseigenschaften von Bibl.-Elementen ... kann auch ein von meinem Script versursachter missmatch gewesen sein ...

Deshalb die Schleife ...

Vielen Dank Marc :)


als Antwort auf: [#465137]

In einer Bibliothek ausgewähltes Element platzieren

Heike Burch
Beiträge gesamt: 1241

9. Mai 2011, 09:30
Beitrag # 9 von 16
Beitrag ID: #470918
Bewertung:
(13060 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
wenn ich das so richtig sehe, wäre es ja auch möglich, einfach den ganzen Bibliotheksinhalt zu platzieren, oder?

Eine Idee wäre da, für jeden Element eine neue Seite zu erstellen und dann eben pro Seite ein Element zu platzieren, an Koordinate x/y oder eben an Originalposition. Oder?

Wie geht das dann?


als Antwort auf: [#465170]

In einer Bibliothek ausgewähltes Element platzieren

Uwe Laubender
Beiträge gesamt: 5316

9. Mai 2011, 19:51
Beitrag # 10 von 16
Beitrag ID: #471006
Bewertung:
(13015 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ -hans- ] Mein eigentliches Problem ist tatsächlich, dass mehere Bibs visible sein können und sogar Mehrfach-Selektionen möglich sind ...


Hallo, Hans!
Wie reagiert Dein Script dann auf diese Situation? Läßt Du den Benutzer dann auswählen welches Asset er platzieren möchte?

MacBook Pro 2.4GHz | OS X 10.5.8 | Adobe CS3/CS4/CS5/CS5.5 Design Premium


als Antwort auf: [#464904]

In einer Bibliothek ausgewähltes Element platzieren

-hans-
Beiträge gesamt: 748

9. Mai 2011, 22:12
Beitrag # 11 von 16
Beitrag ID: #471014
Bewertung:
(12986 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

nein, ich nehme einfach das erste markierte Bibliothekselement. Da das Script über die Belegung der rechten Maustaste bei der Library ausgeführt wird ... bisher problemlos ...

Snippet:
Code
//Liste der offenen Bibliotheken 
var theLibs = app.libraries;

//markiertes Bibliotheksobjekt finden
for (var n = theLibs.length-1; n >=0 ;n--) {
var oneLib = theLibs.[n];
var testVisible = oneLib.associatedPanel.visible;
if (testVisible != false) {
var theAsset = oneLib.associatedPanel.selection[0];
if (oneLib.associatedPanel.selection.length > 0) {
placeAsset(theAsset)
}
}
}


Gruß

Hans-Gerd


als Antwort auf: [#471006]

In einer Bibliothek ausgewähltes Element platzieren

Uncle Tsebe
Beiträge gesamt: 205

11. Okt 2016, 13:19
Beitrag # 12 von 16
Beitrag ID: #553155
Bewertung:
(9041 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

der Beitrag ist zwar schon etwas älter aber ich bin gerade ein einem ähnlichen Problem dran:

Ich suche ein Script, dass mir ein markiertes Objekt einer Bibliothek direkt am Mauszeiger (inerhalb eines Textrahmens) platziert...
Geht das, dass man in einen Textrahmen ein Bibliotheksobjekt via Script einfügt?

Gruß,
Tom


als Antwort auf: [#471014]

In einer Bibliothek ausgewähltes Element platzieren

Hans Haesler
  
Beiträge gesamt: 5826

14. Okt 2016, 08:48
Beitrag # 13 von 16
Beitrag ID: #553264
Bewertung:
(7914 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tom,

ja, das geht. Beim Code von Hans-Gerd abgeguckt:

Code
var curDoc  = app.documents[0];  
var allLibs = app.libraries;
var nLibs = allLibs.length;

for (var n=0; n<nLibs; n++) {
var curLib = allLibs[n];
var isVisible = curLib.associatedPanel.visible;
if (isVisible) {
if (curLib.associatedPanel.selection.length > 0) {
var curAsset = curLib.associatedPanel.selection[0];
curAsset.placeAsset(curDoc);
}
}
}

Das Vergeben eines Tastaturkürzels ist nicht notwendig.
Das Script kann auch durch Doppelklick auf seinen Namen im Skripte-Bedienfeld gestartet werden.

Gruss, Hans


als Antwort auf: [#553155]

In einer Bibliothek ausgewähltes Element platzieren

Uwe Laubender
Beiträge gesamt: 5316

14. Okt 2016, 11:12
Beitrag # 14 von 16
Beitrag ID: #553271
Bewertung:
(7867 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Dein Schnipsel platziert das oder die ausgewählten Bibliothekelemente im Dokument.
Das funktioniert sehr gut.

Was Tom aber haben möchte ist, dass die ausgewählten Elemente in den Cursor (Placegun) geladen werden. Jedenfalls interpretiere ich seine Anfrage so…

Könnte man auch machen.
Über einen Export der platzierten Objekte nach IDMS.
Und das Laden der IDMS-Schnipsel in die Placegun.

Problem dabei: "Lose" Elemente (mehrere Elemente, die ungruppiert als ein Asset in der Bibliothek geladen sind) müssten vor dem IDMS-Export in eine Gruppe gepackt werden. Der Export nach IDMS kann leider eine Auswahl von mehreren Objekten nicht in eine IDMS packen.

Um die Geschichte perfekt zu machen, könnte die überflüssige Gruppe per Skript im IDMS-Code entfernt werden. Bei Verwendung eines entsprechenden Labels kann die Gruppe leicht identifiziert werden.

Das nur mal als Skizze…


als Antwort auf: [#553264]

In einer Bibliothek ausgewähltes Element platzieren

Hans Haesler
  
Beiträge gesamt: 5826

14. Okt 2016, 14:39
Beitrag # 15 von 16
Beitrag ID: #553277
Bewertung:
(7810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

weil Tom sagt: "... (inerhalb eines Textrahmens) ...", dann ist mit "direkt am Mauszeiger" vermutlich der Cursor gemeint.
Das Script müsste noch mit der Prüfung der Auswahl ergänzt werden ("InsertionPoint") damit das Element nicht auf der Seite landet.

Doch eigentlich braucht es kein Script:
1 Cursor positionieren;
2 Element auswählen;
3 im Fly-out-Menü den Artikel "Objekt(e) platzieren" wählen.

Der Punkt 3 kann sogar entfallen, wenn man dem Menüartikel einen Tastaturkürzel zugewiesen hat.

Gruss, Hans


als Antwort auf: [#553271]
X