[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Beschnittzeichen Script modifizieren

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

Beschnittzeichen Script modifizieren

rockinrudeingo
Beiträge gesamt: 4

16. Apr 2014, 15:06
Beitrag # 1 von 8
Bewertung:
(1764 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wunderschönen guten Tag an euch alle.
jetzt möchte ich da doch auch mal gerne eine Frage stellen:
Ich habe es geschafft das Beschnittzeichen Script so zu ergänzen
da es auch in den Ecken Passkreuze erzeugt. Allerdings wäre es jetzt noch praktisch wenn die Passkreuze nachdem erzeugen gruppiert wären...
Also jedes Passkreuz für sich eine eigene Gruppe wäre.
Leider bin ich Nicht-Programmierer, und komme deshalb wahrscheinlich nicht dahinter, wie das gehen könnte?
Wäre super wenn mir hier jemand helfen könnte...

mit freundlichen Grüßen Ingo
X

Beschnittzeichen Script modifizieren

Hans Haesler
  
Beiträge gesamt: 5797

16. Apr 2014, 17:31
Beitrag # 2 von 8
Beitrag ID: #526270
Bewertung:
(1726 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ingo,

herzlich willkommen in der Skriptwerkstatt auf HDS! :-)

Nun, ich weiss nicht, wie Du Deine Passkreuze erzeugt hast. Dennoch nachstehend eine Anleitung zum Gruppieren der Objekte.

Damit die Objekte gruppiert werden können, muss man sie in einen Array (= eine Liste) verfrachten.

Als erstes weist man einer Variablen 'new Array ()' zu. Dann hat man eine leere Liste, an welche die Objekte angehängt werden können.
Das Erzeugen des Linienrahmens weist man auch einer Variablen zu, dann ist das ein Objekt, welches mit 'push()' an den Array gehängt wird.
Zuletzt erzeugt man mit 'groups.add()' die Gruppe. In die Klammern setzt man die Variable und das ist alles.

Code
// das Dokument im Vordergrund 
var curDoc = app.documents[0];
// den Array vorbereiten
var linesArray = new Array ();
// die erste Linie zeichnen ...
var lineOne = curDoc.pages[0].graphicLines.add({geometricBounds:[10, 20, 20, 20], strokeWeight:0.2});
// ... und an den Array anfügen
linesArray.push(lineOne);
// die zweite Linie zeichnen ...
var lineTwo = curDoc.pages[0].graphicLines.add({geometricBounds:[15, 15, 15, 25], strokeWeight:0.2});
// ... und an den Array anfügen
linesArray.push(lineTwo);
// die beiden Objekte gruppieren
curDoc.groups.add(linesArray);

Das Script erzeugt in der linken oberen Ecke der ersten Seite zwei Linienrahmen, welche sich überkreuzen und gruppiert sie.
Hier funktioniert es. Klappt es bei Dir auch? Wenn ja, solltest Du Dein Script nach diesem Muster ergänzen können.

Gruss, Hans


als Antwort auf: [#526262]

Beschnittzeichen Script modifizieren

rockinrudeingo
Beiträge gesamt: 4

16. Apr 2014, 19:11
Beitrag # 3 von 8
Beitrag ID: #526272
Bewertung:
(1685 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
danke für die schnelle und hilfreiche Antwort. Dein Script funktioniert wunderbar aber leider werden die Elemente in dem von mir modifizierten Script so erzeugt:
hier mal die letzten paar zeilen:


Code
function myDrawRegMarks (myX1, myY1, myX2, myY2, myRegMarkOffset, myRegMarkInnerRadius, myRegMarkOuterRadius, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer){ 
var myBounds
var myXCenter = myX1 + ((myX2 - myX1)/2);
var myXCenterrechts = myX1 + ((myX2 - myX1))+myRegMarkOffset+myRegMarkOuterRadius;
var myXCenterlinks = myX1 - myRegMarkOffset - myRegMarkOuterRadius;
var myYCenter = myY1 + ((myY2 - myY1)/2);
var myTargetCenter = myRegMarkOffset+(myRegMarkOuterRadius);

// das Dokument im Vordergrund
var curDoc = app.documents[0];

// den Array vorbereiten
var topleftregmarkArray = new Array ();
//Top left registration target.
var Kreisaußen = myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius), myXCenterlinks-myRegMarkInnerRadius, (myY1-myTargetCenter)+myRegMarkInnerRadius, myXCenterlinks + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
topleftregmarkArray.push(Kreisaußen);
myBounds = [myY1-(myTargetCenter+myRegMarkOuterRadius), myXCenterlinks, (myY1-myTargetCenter)+myRegMarkOuterRadius, myXCenterlinks]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-myTargetCenter, myXCenterlinks-myRegMarkOuterRadius, myY1-myTargetCenter, myXCenterlinks+myRegMarkOuterRadius]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+0.5, myXCenterlinks-myRegMarkInnerRadius+0.5, (myY1-myTargetCenter)+myRegMarkInnerRadius-0.5, myXCenterlinks + myRegMarkInnerRadius-0.5];
myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);
var Kreisinnen = myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+1, myXCenterlinks-myRegMarkInnerRadius+1, (myY1-myTargetCenter)+myRegMarkInnerRadius-1, myXCenterlinks + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);
topleftregmarkArray.push(Kreisinnen);
curDoc.groups.add(topleftregmarkArray);

//Top right registration target.
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius), myXCenterrechts-myRegMarkInnerRadius, (myY1-myTargetCenter)+myRegMarkInnerRadius, myXCenterrechts + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-(myTargetCenter+myRegMarkOuterRadius), myXCenterrechts, (myY1-myTargetCenter)+myRegMarkOuterRadius, myXCenterrechts]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-myTargetCenter, myXCenterrechts-myRegMarkOuterRadius, myY1-myTargetCenter, myXCenterrechts+myRegMarkOuterRadius]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+0.5, myXCenterrechts-myRegMarkInnerRadius+0.5, (myY1-myTargetCenter)+myRegMarkInnerRadius-0.5, myXCenterrechts + myRegMarkInnerRadius-0.5];
myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+1, myXCenterrechts-myRegMarkInnerRadius+1, (myY1-myTargetCenter)+myRegMarkInnerRadius-1, myXCenterrechts + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);

//Top middle registration target.
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius), myXCenter-myRegMarkInnerRadius, (myY1-myTargetCenter)+myRegMarkInnerRadius, myXCenter + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-(myTargetCenter+myRegMarkOuterRadius), myXCenter, (myY1-myTargetCenter)+myRegMarkOuterRadius, myXCenter]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-myTargetCenter, myXCenter-myRegMarkOuterRadius, myY1-myTargetCenter, myXCenter+myRegMarkOuterRadius]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+0.5, myXCenter-myRegMarkInnerRadius+0.5, (myY1-myTargetCenter)+myRegMarkInnerRadius-0.5, myXCenter + myRegMarkInnerRadius-0.5];
myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+1, myXCenter-myRegMarkInnerRadius+1, (myY1-myTargetCenter)+myRegMarkInnerRadius-1, myXCenter + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);


//Left registration target.
myBounds = [myYCenter-myRegMarkInnerRadius, myX1-(myTargetCenter+myRegMarkInnerRadius), myYCenter+myRegMarkInnerRadius, (myX1 - myTargetCenter) + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myYCenter, myX1-(myTargetCenter+myRegMarkOuterRadius), myYCenter, myX1 -myRegMarkOffset]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myYCenter-myRegMarkOuterRadius, myX1-myTargetCenter, myYCenter+myRegMarkOuterRadius, myX1-myTargetCenter]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myYCenter-myRegMarkInnerRadius+0.5, myX1-(myTargetCenter+myRegMarkInnerRadius)+0.5, myYCenter+myRegMarkInnerRadius-.5, (myX1 - myTargetCenter) + myRegMarkInnerRadius-.5];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);
myBounds = [myYCenter-myRegMarkInnerRadius+1, myX1-(myTargetCenter+myRegMarkInnerRadius)+1, myYCenter+myRegMarkInnerRadius-1, (myX1 - myTargetCenter) + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);

//Bottom middle registration target.
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius), myXCenter-myRegMarkInnerRadius, myY2+ myTargetCenter+myRegMarkInnerRadius, myXCenter + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+myRegMarkOffset, myXCenter, myY2+myTargetCenter+myRegMarkOuterRadius, myXCenter]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+myTargetCenter, myXCenter-myRegMarkOuterRadius, myY2 + myTargetCenter, myXCenter+myRegMarkOuterRadius]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius)+.5, myXCenter-myRegMarkInnerRadius+.5, myY2+ myTargetCenter+myRegMarkInnerRadius-.5, myXCenter + myRegMarkInnerRadius-.5];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius)+1, myXCenter-myRegMarkInnerRadius+1, myY2+ myTargetCenter+myRegMarkInnerRadius-1, myXCenter + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);

//Bottom left registration target.
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius), myXCenterlinks-myRegMarkInnerRadius, myY2+ myTargetCenter+myRegMarkInnerRadius, myXCenterlinks + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+myRegMarkOffset, myXCenterlinks, myY2+myTargetCenter+myRegMarkOuterRadius, myXCenterlinks]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+myTargetCenter, myXCenterlinks-myRegMarkOuterRadius, myY2 + myTargetCenter, myXCenterlinks+myRegMarkOuterRadius]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius)+.5, myXCenterlinks-myRegMarkInnerRadius+.5, myY2+ myTargetCenter+myRegMarkInnerRadius-.5, myXCenterlinks + myRegMarkInnerRadius-.5];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius)+1, myXCenterlinks-myRegMarkInnerRadius+1, myY2+ myTargetCenter+myRegMarkInnerRadius-1, myXCenterlinks + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);

//Bottom right registration target.
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius), myXCenterrechts-myRegMarkInnerRadius, myY2+ myTargetCenter+myRegMarkInnerRadius, myXCenterrechts + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+myRegMarkOffset, myXCenterrechts, myY2+myTargetCenter+myRegMarkOuterRadius, myXCenterrechts]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+myTargetCenter, myXCenterrechts-myRegMarkOuterRadius, myY2 + myTargetCenter, myXCenterrechts+myRegMarkOuterRadius]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius)+.5, myXCenterrechts-myRegMarkInnerRadius+.5, myY2+ myTargetCenter+myRegMarkInnerRadius-.5, myXCenterrechts + myRegMarkInnerRadius-.5];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);
myBounds = [myY2+(myTargetCenter-myRegMarkInnerRadius)+1, myXCenterrechts-myRegMarkInnerRadius+1, myY2+ myTargetCenter+myRegMarkInnerRadius-1, myXCenterrechts + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);

//Right registration target.
myBounds = [myYCenter-myRegMarkInnerRadius, myX2+(myTargetCenter-myRegMarkInnerRadius), myYCenter+myRegMarkInnerRadius, myX2 + myTargetCenter + myRegMarkInnerRadius];
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myYCenter, myX2+myRegMarkOffset, myYCenter, myX2+myTargetCenter+myRegMarkOuterRadius]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myYCenter-myRegMarkOuterRadius, myX2+myTargetCenter, myYCenter+myRegMarkOuterRadius, myX2+myTargetCenter]
myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
myBounds = [myYCenter-myRegMarkInnerRadius+.5, myX2+(myTargetCenter-myRegMarkInnerRadius)+.5, myYCenter+myRegMarkInnerRadius-.5, myX2 + myTargetCenter + myRegMarkInnerRadius-.5];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);
myBounds = [myYCenter-myRegMarkInnerRadius+1, myX2+(myTargetCenter-myRegMarkInnerRadius)+1, myYCenter+myRegMarkInnerRadius-1, myX2 + myTargetCenter + myRegMarkInnerRadius-1];
myDrawTarget(myBounds, myCropMarkWidth/2, StrokeColor = "Paper", myNoneSwatch, myLayer);



}
function myDrawLine(myBounds, myStrokeWeight, myRegistrationColor, myNoneSwatch, myLayer){
app.activeWindow.activeSpread.graphicLines.add(myLayer, undefined, undefined,{strokeWeight:myStrokeWeight, fillColor:myNoneSwatch, strokeColor:myRegistrationColor, geometricBounds:myBounds})
}
function myDrawTarget(myBounds, myStrokeWeight, myRegistrationColor, myNoneSwatch, myLayer){
app.activeWindow.activeSpread.ovals.add(myLayer, undefined, undefined, {strokeWeight:myStrokeWeight, fillColor:myNoneSwatch, strokeColor:myRegistrationColor, geometricBounds:myBounds})
}

beim oberen linken Passkreuz habe ich jetzt mal probiert deine Methode nachzuvollziehen aber das gibt mir dann den Javafehler 30477 etc aus. Ich denke mal das bei dieser Art der Objekt erzeugung anderst vorgegangen werden muß, oder irre ich???

danke schonmal und lieben Gruß Ingo


als Antwort auf: [#526270]

Beschnittzeichen Script modifizieren

Hans Haesler
  
Beiträge gesamt: 5797

16. Apr 2014, 20:35
Beitrag # 4 von 8
Beitrag ID: #526273
Bewertung:
(1653 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ingo,

bitte sehr.

Zunächst: Ich nehme an, dass auch die senkrechten und waagerechten Linien in die Gruppe aufgenommen werden sollen.
Und: Um in der my-Sprache des Adobe-Scripts zu bleiben wird für das aktive Dokument besser die Variable myDocument verwendet (statt curDoc).

Das erste Problem:
Der Variablen 'Kreisaußen' werden die 'bounds' (= die Abmessungen) zugewiesen ...

Code
var Kreisaußen = myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius),  myXCenterlinks-myRegMarkInnerRadius,  (myY1-myTargetCenter)+myRegMarkInnerRadius,  myXCenterlinks + myRegMarkInnerRadius];  
myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);

... statt die Erzeugung des Objekts. Besser wäre:

Code
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius),  myXCenterlinks-myRegMarkInnerRadius,  (myY1-myTargetCenter)+myRegMarkInnerRadius,  myXCenterlinks + myRegMarkInnerRadius];  
var Kreisaußen = myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);

Das zweite Problem:
Aber weil die Erzeugung in einer Funktion geschieht, muss in der betreffenden Funktion definiert werden, dass das Objekt zurückgeschickt wird (mit 'return'):

Code
function myDrawLine(myBounds, myStrokeWeight, myRegistrationColor, myNoneSwatch, myLayer){  
var myObject = app.activeWindow.activeSpread.graphicLines.add(myLayer, undefined, undefined,{strokeWeight:myStrokeWeight, fillColor:myNoneSwatch, strokeColor:myRegistrationColor, geometricBounds:myBounds});
return myObject;
}

Dazu gibt es drei Bemerkungen:
1. Es wird 'myObject' zurückgesandt aber oben beim Aufruf der Funktion der Variable 'Kreisaußen' übergeben. Das bedeutet: Der Name der Variable ist egal. Und weil in diesem Script der Name oben immer anders ist, kommt uns diese Tatsache sogar entgegen. Sonst müsste für jedes Objekt eine eigene Funktion aufgerufen werden.
2. Man könnte sich aber oben das Leben erleichtern und immer dieselbe Variable verwenden (z.B. ebenfalls 'myObject').
3. Das Zurückschicken könnt direkter – ohne Variable – erfolgen:

Code
function myDrawTarget(myBounds, myStrokeWeight, myRegistrationColor, myNoneSwatch, myLayer){  
return (app.activeWindow.activeSpread.ovals.add(myLayer, undefined, undefined, {strokeWeight:myStrokeWeight, fillColor:myNoneSwatch, strokeColor:myRegistrationColor, geometricBounds:myBounds}));
}

Aber die vorher gezeigte Form ist übersichtlicher.

Der Anfang der Funktion:

Code
function myDrawRegMarks (myX1, myY1, myX2, myY2, myRegMarkOffset, myRegMarkInnerRadius, myRegMarkOuterRadius, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer){  
var myDocument = app.activeDocument;
var myBounds;
var myObject;
var myXCenter = myX1 + ((myX2 - myX1)/2);
var myXCenterrechts = myX1 + ((myX2 - myX1))+myRegMarkOffset+myRegMarkOuterRadius;
var myXCenterlinks = myX1 - myRegMarkOffset - myRegMarkOuterRadius;
var myYCenter = myY1 + ((myY2 - myY1)/2);
var myTargetCenter = myRegMarkOffset+(myRegMarkOuterRadius);

// den Array vorbereiten
var topleftregmarkArray = new Array ();
//Top left registration target.
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius), myXCenterlinks-myRegMarkInnerRadius, (myY1-myTargetCenter)+myRegMarkInnerRadius, myXCenterlinks + myRegMarkInnerRadius];
myObject = myDrawTarget(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
topleftregmarkArray.push(myObject);
myBounds = [myY1-(myTargetCenter+myRegMarkOuterRadius), myXCenterlinks, (myY1-myTargetCenter)+myRegMarkOuterRadius, myXCenterlinks];
myObject = myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
topleftregmarkArray.push(myObject);
myBounds = [myY1-myTargetCenter, myXCenterlinks-myRegMarkOuterRadius, myY1-myTargetCenter, myXCenterlinks+myRegMarkOuterRadius];
myObject = myDrawLine(myBounds, myCropMarkWidth, myRegistrationColor, myNoneSwatch, myLayer);
topleftregmarkArray.push(myObject);
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+0.5,myXCenterlinks-myRegMarkInnerRadius+0.5,(myY1-myTargetCenter)+myRegMarkInnerRadius-0.5, myXCenterlinks + myRegMarkInnerRadius-0.5];
myObject = myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);
topleftregmarkArray.push(myObject);
myBounds = [myY1-(myTargetCenter+myRegMarkInnerRadius)+1, myXCenterlinks-myRegMarkInnerRadius+1, (myY1-myTargetCenter)+myRegMarkInnerRadius-1, myXCenterlinks + myRegMarkInnerRadius-1];
myObject = myDrawTarget(myBounds, myCropMarkWidth/2, strokeColor = "Paper", myNoneSwatch, myLayer);
topleftregmarkArray.push(myObject);
myDocument.groups.add(topleftregmarkArray);

Und die beiden Erzeugungsfunktionen:

Code
function myDrawLine(myBounds, myStrokeWeight, myRegistrationColor, myNoneSwatch, myLayer){  
var myObject = app.activeWindow.activeSpread.graphicLines.add(myLayer, undefined, undefined,{strokeWeight:myStrokeWeight, fillColor:myNoneSwatch, strokeColor:myRegistrationColor, geometricBounds:myBounds});
return myObject;
}

function myDrawTarget(myBounds, myStrokeWeight, myRegistrationColor, myNoneSwatch, myLayer){
var myObject = app.activeWindow.activeSpread.ovals.add(myLayer, undefined, undefined, {strokeWeight:myStrokeWeight, fillColor:myNoneSwatch, strokeColor:myRegistrationColor, geometricBounds:myBounds});
return myObject;
}

Abschliessend ein guter Rat: Besorge Dir bitte einen Editoren, mit welchem der Unterschied zwischen Tabulatoren und Leerschlägen sichtbar ist.
Meine Empfehlung: "UltraEdit". Damit ist das Entwickeln von Scripts ein Vergnügen. Und keine Qual ...

Gruss, Hans


als Antwort auf: [#526272]

Beschnittzeichen Script modifizieren

rockinrudeingo
Beiträge gesamt: 4

16. Apr 2014, 21:31
Beitrag # 5 von 8
Beitrag ID: #526274
Bewertung:
(1613 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Danke Danke Hans!!!
Das ist genial! Jetzt wirklich! Es funktioniert genauso wie es muß!
Ich bin restlos begeistert...

Beim rumknobeln mit deinem ersten Script ist mir noch was eingefallen wäre es möglich das Objekt (also die Gruppe) die da
erzeugt wurde gleich in die untere rechte Ecke des Dokuments zu verschieben? und wenn ja, wie stellt man das an?

Also Vielen Dank nochmal und nun einen schönen geruhsamen Abend!!! Grüße Ingo


als Antwort auf: [#526273]

Beschnittzeichen Script modifizieren

Hans Haesler
  
Beiträge gesamt: 5797

16. Apr 2014, 23:18
Beitrag # 6 von 8
Beitrag ID: #526276
Bewertung:
(1570 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ingo,

ja, die Gruppe kann verschoben werden. Nicht ganz klar ist, was Du mit "in die untere rechte Ecke des Dokuments" meinst.
Sehr wahrscheinlich wäre es besser, die Gruppe zu duplizieren.

Aber: Eigentlich solltest Du Dir zuerst die Grundkenntnisse des JavaScriptens für InDesign aneignen.
Das ist zwar meistens recht mühsam. Doch so erarbeitetes Wissen bliebt besser haften und ist nützlicher.
Dann kann man bei neuen – aber ähnlichen – Problemen die Lösung selber finden.

Dennoch (als Zückerchen :-), wie das Duplizieren/Verschieben eines Objekts mit 'duplicate()' gemacht werden kann.
Beim Erzeugen der Gruppe das Ergebnis einer Variablen zuweisen, dann kann das Objekt in der nächsten Zeile dupliziert werden:

Code
topleftregmarkArray.push(myObject); 
myGroup = myDocument.groups.add(topleftregmarkArray);
myGroup.duplicate([myX2+myRegMarkOffset, myY2+myRegMarkOffset]);

In den Klammern zuerst der horizontale, dann der vertikale Wert.

Die Gruppe wird dupliziert und gleichzeitig nach rechts und unten an die Position des 'Bottom right registration target' verschoben.
Dieser Abschnitt sollte zuvor deaktiviert werden.

Gruss, Hans


als Antwort auf: [#526274]

Beschnittzeichen Script modifizieren

rockinrudeingo
Beiträge gesamt: 4

17. Apr 2014, 11:09
Beitrag # 7 von 8
Beitrag ID: #526292
Bewertung:
(1492 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja super vielen Dank nochmal an dich Hans. Zückerchen ist angekommen!!! ;-)
Gibt es denn bestimmte empfehlenswerte Möglichkeiten
sich so ein Grundwissen anzueigen?

Grüße Ingo


als Antwort auf: [#526276]

Beschnittzeichen Script modifizieren

Hans Haesler
  
Beiträge gesamt: 5797

17. Apr 2014, 12:00
Beitrag # 8 von 8
Beitrag ID: #526297
Bewertung:
(1473 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ingo,

ich muss gleich weg.

Deshalb mache ich es mir sehr einfach und verweise auf eine Seite von Werner Perplies ...
http://www.weepee.de/...ic.php?f=41&t=10
... auf welcher Du Links zu Büchern und Webseiten findest.

Gruss, Hans


als Antwort auf: [#526292]
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
25.01.2021 - 26.01.2021

Digicomp Academy AG, Bern oder Zürich
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/PHOTM1

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Zürich oder virtuell
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AP6

Neuste Foreneinträge


Exel ohne leeres Tabellenblatt starten

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

[GREP] beliebige Zeichen finden und durch selbe Anzahl an Leerzeichen oder Anzahl Zeichen "x" ersetzen

InDesign 2021 – Suchen/Ersetzen: Farbe

Langsamer MacMini

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Balken hinter einen Bildteil

Geteiltes Album

Verschiedene Netzwerke Handeln

Nicht "Silben über Spalten hinweg trennen" (CC 2018/ CC 2021)
medienjobs