[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:
(1909 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: 5826

16. Apr 2014, 17:31
Beitrag # 2 von 8
Beitrag ID: #526270
Bewertung:
(1871 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:
(1830 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: 5826

16. Apr 2014, 20:35
Beitrag # 4 von 8
Beitrag ID: #526273
Bewertung:
(1798 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:
(1758 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: 5826

16. Apr 2014, 23:18
Beitrag # 6 von 8
Beitrag ID: #526276
Bewertung:
(1715 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:
(1637 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: 5826

17. Apr 2014, 12:00
Beitrag # 8 von 8
Beitrag ID: #526297
Bewertung:
(1618 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

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
17.04.2024

Online
Mittwoch, 17. Apr. 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!