[GastForen Programme Print/Bildbearbeitung Adobe InDesign Eckeneffekte selbst definieren

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

Eckeneffekte selbst definieren

Clause
Beiträge gesamt: 28

9. Sep 2005, 13:01
Beitrag # 1 von 19
Bewertung:
(16302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, habe folgendes Problem:
Ich möchte ein Rechteck machen, wo immer die linke obere und die rechte untere Ecke abgerundet sind. wie kann ich das machen? und ist es möglich diesen "Effekt" abzuspeichern und dann als "Eckeneffekt" einzuladen?

Danke Euch.
X

Eckeneffekte selbst definieren

Dirk Levy
  
Beiträge gesamt: 9466

9. Sep 2005, 13:16
Beitrag # 2 von 19
Beitrag ID: #186581
Bewertung:
(16293 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also ich mache das so:

Rahmen mit den gewünschten Ecken erstellen,
dann das Direktauwahl-Werkzeug nehmen und
da wo es nicht mehr rund sein soll die Ecke schließen,
geht auch mit dem Löschwerzeug für Pfade....

Speichern weiß ich nicht....


als Antwort auf: [#186576]

Eckeneffekte selbst definieren

MSchmitz
Beiträge gesamt: 545

9. Sep 2005, 13:36
Beitrag # 3 von 19
Beitrag ID: #186588
Bewertung:
(16283 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
oder im adobe studio exchange nachschauen. dort gibt es ein java-script und nennt sich "corner effect". damit lassen sich einzelnen eckpunkten bestimmte eckeneffekte zuweisen.

markus schmitz


als Antwort auf: [#186576]

Eckeneffekte selbst definieren

Haeme Ulrich
Beiträge gesamt: 3102

9. Sep 2005, 14:15
Beitrag # 4 von 19
Beitrag ID: #186597
Bewertung:
(16277 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier das Script (hatte es gleich zur Hand). Dies ist übrigens auch drauf auf der Installations CD der CS2



//CornerEffects.jsx
//An InDesign CS2 JavaScript
//
//Applies corner effects by redrawing the object.
//
//For more information on InDesign scripting, go to http://www.adobe.com/products/indesign/scripting.html
//Or visit the InDesign Scripting User to User forum at http://www.adobeforums.com.
//
var myObjectList = new Array;
if (app.documents.length != 0){
if (app.selection.length != 0){
for(var myCounter = 0;myCounter < app.selection.length; myCounter++){
switch (app.selection[myCounter].constructor.name){
case "Rectangle":
case "Oval":
case "Polygon":
case "GraphicLine":
case "TextFrame":
myObjectList.push(app.selection[myCounter]);
break;
}
}
if (myObjectList.length != 0){
myDisplayDialog(myObjectList); }
else{
alert ("Please select a rectangle, oval, polygon, text frame, or graphic line and try again.");

}

}
else{
alert ("Please select an object and try again.");
}
}
else{
alert ("Please open a document, select an object, and try again.");
}
function myDisplayDialog(myObjectList){
var myStringList = ["all points","first point", "last point", "second point", "third point", "fourth point", "first two", "second and third", "last two", "first and last", "odd points", "even points"]
//Store the current measurement units.
var myOldXUnits = app.activeDocument.viewPreferences.horizontalMeasurementUnits;
var myOldYUnits = app.activeDocument.viewPreferences.verticalMeasurementUnits;

app.activeDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
app.activeDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;
myDialog = app.dialogs.add({name:"CornerEffects"});
with(myDialog){
with(dialogColumns.add()){
with(borderPanels.add()){
staticTexts.add({staticLabel:"Corner Type:"});
var myCornerEffectButtons = radiobuttonGroups.add();
with(myCornerEffectButtons){
radiobuttonControls.add({staticLabel:"Rounded", checkedState:true});
radiobuttonControls.add({staticLabel:"Inverse Rounded"});
radiobuttonControls.add({staticLabel:"Bevel"});
radiobuttonControls.add({staticLabel:"Inset"});
radiobuttonControls.add({staticLabel:"Fancy"});
}
}
with(borderPanels.add()){
with (dialogColumns.add()){
staticTexts.add({staticLabel:"Options:"});
}
with (dialogColumns.add()){
with (dialogRows.add()){
with (dialogColumns.add()){
staticTexts.add({staticLabel:"Offset:", minWidth:50});
staticTexts.add({staticLabel:"Pattern:", minWidth:50});
}
with (dialogColumns.add()){
var myOffsetEditbox = measurementEditboxes.add({editValue:12});
var myPatternDropdown = dropdowns.add({stringList:myStringList, selectedIndex:0});
}
}
}
}
}
}
var myReturn = myDialog.show();
if (myReturn == true){
//Get the values from the dialog box.
var myCornerType = myCornerEffectButtons.selectedButton;
var myOffset = myOffsetEditbox.editValue;
var myPattern = myStringList[myPatternDropdown.selectedIndex];
myDialog.destroy();
for(myCounter = 0; myCounter<myObjectList.length; myCounter++){
myChangeCorners(myObjectList[myCounter], myCornerType, myOffset, myPattern);
}
//Reset the measurement units.
app.activeDocument.viewPreferences.horizontalMeasurementUnits = myOldXUnits;
app.activeDocument.viewPreferences.verticalMeasurementUnits = myOldYUnits;
}
else{
myDialog.destroy();
}
}
function myChangeCorners(myObject, myCornerType, myOffset, myPattern){
var myPathPoint, myPoint, myPointA, myPointB, myPointC, myAnchor, myX, myY, myX1, myY1, myX2, myY2, myX3, myY3;
var myNewX1, myNewY1, myNewX2, myNewY2, myXOffset, myYOffset, myPoint, myPathPoint;
for(var myPathCounter = 0; myPathCounter < myObject.paths.length; myPathCounter ++){
var myPath = myObject.paths.item(myPathCounter);
myPointArray = new Array;
for (var myPathPointCounter = 0; myPathPointCounter < myPath.pathPoints.length; myPathPointCounter ++){
//Is the point a qualifying point?
if(myPointTest(myPathPointCounter, myPath, myPattern) == false){
myX1 = myPath.pathPoints.item(myPathPointCounter).leftDirection[0];
myY1 = myPath.pathPoints.item(myPathPointCounter).leftDirection[1];
myX2 = myPath.pathPoints.item(myPathPointCounter).anchor[0];
myY2 = myPath.pathPoints.item(myPathPointCounter).anchor[1];
myX3 = myPath.pathPoints.item(myPathPointCounter).rightDirection[0];
myY3 = myPath.pathPoints.item(myPathPointCounter).rightDirection[1];
myPoint = [[myX1, myY1], [myX2, myY2], [myX3, myY3]];
myPointArray.push(myPoint);
}
else{
myPointA = myPath.pathPoints.item(myPathPointCounter);
myAnchor = myPointA.anchor;
myX1 = myAnchor[0];
myY1 = myAnchor[1];
//myPointB is the *next* point on the path. If myPathPoint is the last point on the path, then
//myPointB is the first point on the path.
if (myPathPointCounter == (myPath.pathPoints.length - 1)){
myPointB = myPath.pathPoints.item(0);
}
else{
myPointB = myPath.pathPoints.item(myPathPointCounter + 1);
}
myAnchor = myPointB.anchor;
myX2 = myAnchor[0];
myY2 = myAnchor[1];
//myPointC is the *previous* point on the path. If myPathPoint is the first point on the path,
//then myPointC is the last point on the path.
if (myPathPointCounter == 0){
myPointC = myPath.pathPoints.item(myPath.pathPoints.length - 1);
}
else{
myPointC = myPath.pathPoints.item((myPathPointCounter - 1) % myPath.pathPoints.length);
}
myAnchor = myPointC.anchor;
myX3 = myAnchor[0];
myY3 = myAnchor[1];
var myPoints = myAddPoints(myX1, myY1, myX2, myY2, myX3, myY3, myOffset);
myNewX1 = myPoints[0];
myNewY1 = myPoints[1];
myNewX2 = myPoints[2];
myNewY2 = myPoints[3];
//Calculate new path point values based on the path effect type.
//We won't add the points to the path one at a time; instead, we'll
//create an array that holds all of the point locations and curve
//handle positions, and we will then
switch (myCornerType){
case 0:
//Rounded corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [myX1, myY1]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 1:
//Inverse Rounded corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 2:
//Bevel corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [myNewX2, myNewY2]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 3:
//Inset corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [myNewX2, myNewY2]];
myPointArray.push(myPoint);
myPoint = [[(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)],[(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)],[(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 4:
//Fancy corner effect.
var myOneThird = 0.33333333332;
var myTwoThirds = 0.666666666667
var myPointZX = myNewX2 + myNewX1 - myX1;
var myPointZY = myNewY2 + myNewY1 - myY1;
var myTemp1X = (myX1 - myNewX2) * myTwoThirds;
var myTemp1Y = (myY1 - myNewY2) * myTwoThirds;
var myTemp2X = (myX1 - myNewX1) * myTwoThirds;
var myTemp2Y = (myY1 - myNewY1) * myTwoThirds;
var myPointDX = myPointZX + myOneThird * (myNewX1 - myPointZX);
var myPointDY = myPointZY + myOneThird * (myNewY1 - myPointZY);
var myPointEX = myPointZX + myOneThird * (myNewX2 - myPointZX);
var myPointEY = myPointZY + myOneThird * (myNewY2 - myPointZY);
var myPointFX = myPointDX + myTwoThirds * (myX1 - myTemp1X - myPointDX);
var myPointFY = myPointDY + myTwoThirds * (myY1 - myTemp1Y - myPointDY);
var myPointGX = myPointEX + myTwoThirds * (myX1 - myTemp2X - myPointEX);
var myPointGY = myPointEY + myTwoThirds * (myY1 - myTemp2Y - myPointEY);
var myPointHX = myPointZX + myTemp1X + myTemp2X;
var myPointHY = myPointZY + myTemp1Y + myTemp2Y;
myPoint = [[myNewX2, myNewY2],[myNewX2, myNewY2],[myNewX2, myNewY2]];
myPointArray.push(myPoint);
myPoint = [[myPointEX, myPointEY],[myPointEX, myPointEY],[myPointEX, myPointEY]];
myPointArray.push(myPoint);
myPoint = [[myPointGX, myPointGY],[myPointGX, myPointGY],[myPointGX, myPointGY]];
myPointArray.push(myPoint);
myPoint = [[myPointHX, myPointHY],[myPointHX, myPointHY],[myPointHX, myPointHY]];
myPointArray.push(myPoint);
myPoint = [[myPointFX, myPointFY],[myPointFX, myPointFY],[myPointFX, myPointFY]];
myPointArray.push(myPoint);
myPoint = [[myPointDX, myPointDY],[myPointDX, myPointDY],[myPointDX, myPointDY]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1],[myNewX1, myNewY1],[myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
}
}
}
myPath.entirePath = myPointArray;
}
}
function myAddPoints(myX1, myY1, myX2, myY2, myX3, myY3, myOffset){
var myXAdjust, myYAdjust, myNewX1, myNewY1, myNewX2, myNewY2, myHypotenuse;
myHypotenuse = Math.sqrt(Math.pow((myX1 - myX2),2) + Math.pow((myY1 - myY2),2));
if (myY1 != myY2) {
myXAdjust = ((myX1 - myX2) / myHypotenuse) * myOffset;
myYAdjust = ((myY1 - myY2) / myHypotenuse) * myOffset;
myNewX1 = myX1 - myXAdjust;
myNewY1 = myY1 - myYAdjust;
}
else {
myXAdjust = myOffset;
myYAdjust = 0;
if (myX1 < myX2) {
myNewX1 = myX1 + myXAdjust;
myNewY1 = myY1 + myYAdjust;
}
else{
myNewX1 = myX1 - myXAdjust;
myNewY1 = myY1 - myYAdjust;
}
}
myHypotenuse = Math.sqrt(Math.pow((myX1 - myX3),2) + Math.pow((myY1 - myY3),2));
if (myY1 != myY3) {
myXAdjust = ((myX1 - myX3) / myHypotenuse) * myOffset;
myYAdjust = ((myY1 - myY3) / myHypotenuse) * myOffset;
myNewX2 = myX1 - myXAdjust;
myNewY2 = myY1 - myYAdjust;
}
else{
myXAdjust = myOffset;
myYAdjust = 0;
if (myX1 < myX3) {
myNewX2 = myX1 + myXAdjust;
myNewY2 = myY1 + myYAdjust;
}
else{
myNewX2 = myX1 - myXAdjust;
myNewY2 = myY1 - myYAdjust;
}
}
return [myNewX1, myNewY1, myNewX2, myNewY2];
}
function myPointTest(myPathPointCounter, myPath, myPattern){
//Do not apply the corner effect to the first or last point in an open path
//(this is the way that InDesign's corner effects work).
if((myPath.pathType == PathType.openPath)&&((myPathPointCounter ==0)||(myPathPointCounter == myPath.pathPoints.length-1))){
return false;
}
else{
switch(myPattern){
case "all points":
return true;
case "first point":
if(myPathPointCounter == 0){
return true;
}
else{
return false;
}
case "last point":
if(myPathPointCounter == myPath.pathPoints.length-1){
return true;
}
else{
return false;
}
case "second point":
if(myPathPointCounter == 1){
return true;
}
else{
return false;
}
case "third point":
if(myPathPointCounter == 2){
return true;
}
else{
return false;
}
case "fourth point":
if(myPathPointCounter == 3){
return true;
}
else{
return false;
}
case "first two":
if((myPathPointCounter == 0)||(myPathPointCounter == 1)){
return true;
}
else{
return false;
}
case "second and third":
if((myPathPointCounter == 1)||(myPathPointCounter == 2)){
return true;
}
else{
return false;
}
case "last two":
if((myPathPointCounter == (myPath.pathPoints.length-2))||(myPathPointCounter == (myPath.pathPoints.length-1))){
return true;
}
else{
return false;
}
case "first and last":
if((myPathPointCounter == 0)||(myPathPointCounter == (myPath.pathPoints.length-1))){
return true;
}
else{
return false;
}

//Because myPathPointCounter starts at 0, the even points on the path
//actually fall on the odd numbers (when myPathPointCounter = 1, it's
//the second point on the path). Therefore, we use % (mod) 2 != 0 for
//even numbers.
case "even points":
if(myPathPointCounter % 2 != 0){
return true;
}
else{
return false;
}
case "odd points":
if(myPathPointCounter % 2 == 0){
return true;
}
else{
return false;
}
}
}
}


als Antwort auf: [#186588]

Eckeneffekte selbst definieren

Clause
Beiträge gesamt: 28

9. Sep 2005, 14:39
Beitrag # 5 von 19
Beitrag ID: #186607
Bewertung:
(16275 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wie geht das jetzt dann zum Installieren?
Geht das bei InDesign CS auch?


als Antwort auf: [#186597]

Eckeneffekte selbst definieren

Christoph Steffens
  
Beiträge gesamt: 4906

9. Sep 2005, 14:42
Beitrag # 6 von 19
Beitrag ID: #186609
Bewertung:
(16272 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Entweder in auf der ID Installations CD nachsehen, oder

-Text in Zwischenablage kopieren
-Texteditor öffnen
-Text einfügen
-Sichern unter dem namen "CornerEffects.js"
-in den Ordner "Scripts" im Programmordner von ID legen.
-Unter "Fenster" die "Scripts" öffnen
-Rahemn anklicken und Doppelklick auf das Script machen


als Antwort auf: [#186607]

Eckeneffekte selbst definieren

mpeter
Beiträge gesamt: 4628

9. Sep 2005, 16:55
Beitrag # 7 von 19
Beitrag ID: #186637
Bewertung:
(16257 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
warum baust du dir nicht einfach diesen Rahemn in ID oder Illu und legst ihn in eine Bibliothek?


als Antwort auf: [#186609]

Eckeneffekte selbst definieren

sieber
Beiträge gesamt: 136

14. Mär 2006, 11:55
Beitrag # 8 von 19
Beitrag ID: #217342
Bewertung:
(16010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich habe da eine Frage, bzw. ein kleines Problem mit diesem Script:

Ich arbeite in InDesign CS, wo das Script soweit auch problemlos läuft.
Ich arbeite immer in mm (über Voreinstellungen eingestellt).

Das Script hat aber immer die Standardwerte in pt nach dem Aufruf.
Natürlich kann ich in dem Script hinter die Werte auch in mm eingeben.
Jedoch muss ich nach Ausführung des Scripts immer wieder in den
Voreinstellungen die Einheit zurück in mm umstellen.

Kennt jemand da eine Abhilfe, oder kann das Script entsprechend modifizieren?

Vielen Dank für jede Hilfe!

VG

Jan


als Antwort auf: [#186597]

Eckeneffekte selbst definieren

os_xxx
Beiträge gesamt: 206

15. Mär 2006, 09:19
Beitrag # 9 von 19
Beitrag ID: #217563
Bewertung:
(15967 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Das Script hat aber immer die Standardwerte in pt nach dem Aufruf.
Natürlich kann ich in dem Script hinter die Werte auch in mm eingeben.
Jedoch muss ich nach Ausführung des Scripts immer wieder in den
Voreinstellungen die Einheit zurück in mm umstellen.


Was passiert, wenn Du im Eingabefeld hinter Deinen Wert "mm" eingibst?
z.B. "5 mm".


als Antwort auf: [#217342]
(Dieser Beitrag wurde von os_xxx am 15. Mär 2006, 09:21 geändert)

Eckeneffekte selbst definieren

sieber
Beiträge gesamt: 136

15. Mär 2006, 09:25
Beitrag # 10 von 19
Beitrag ID: #217565
Bewertung:
(15961 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Oscar,

Zitat Was passiert, wenn Du im Eingabefeld hinter Deinen Wert "mm" eingibst?
z.B. "5 mm".


Wie bereits beschrieben wird dann der mm-Wert verändert. Die Voreinstellung in dem Script stören mich auch nicht.
Jedoch würde ich gerne nicht jedesmal nach Benutzung des Scripts die Voreinstellungen öffnen,
und die allg. Dokumenteinheit zurück in mm umstellen.

Die ist nämlich nach der Benutzung in pt, wenn man Werte mit mm in dem Script engibt.

Jan


als Antwort auf: [#217563]

Eckeneffekte selbst definieren

Martin Fischer
  
Beiträge gesamt: 12783

15. Mär 2006, 09:45
Beitrag # 11 von 19
Beitrag ID: #217569
Bewertung:
(15949 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Jedoch würde ich gerne nicht jedesmal nach Benutzung des Scripts die Voreinstellungen
> öffnen, und die allg. Dokumenteinheit zurück in mm umstellen.
> Die ist nämlich nach der Benutzung in pt, wenn man Werte mit mm in dem Script engibt.

Das sollte eigentlich nicht so sein!
Im Originalskript werden die ursprünglichen Einheiten wieder hergestellt.
Bist Du einer modifizierten "Raubkopie" auf den Leim gegangen? ;-)

Bitte überprüfe, ob in Deinem Skript folgende Zeilen enthalten sind:
Code
	//Store the current measurement units. 
var myOldXUnits = app.activeDocument.viewPreferences.horizontalMeasurementUnits;
var myOldYUnits = app.activeDocument.viewPreferences.verticalMeasurementUnits;


app.activeDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
app.activeDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;


(...)
//Reset the measurement units.
app.activeDocument.viewPreferences.horizontalMeasurementUnits = myOldXUnits;
app.activeDocument.viewPreferences.verticalMeasurementUnits = myOldYUnits;


Du könntest die Einheiten auf Millimeter setzen:
Code
	app.activeDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.millimeters; 
app.activeDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.millimeters;


Oder die folgenden Zeilen ganz löschen:
Code
	app.activeDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points; 
app.activeDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;



als Antwort auf: [#217565]

Eckeneffekte selbst definieren

sieber
Beiträge gesamt: 136

15. Mär 2006, 09:57
Beitrag # 12 von 19
Beitrag ID: #217576
Bewertung:
(15944 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

habe das jetzt auf die schnelle noch nicht kontrolliert.
Ich habe aber das Script aus Haemes Beitrag heraus kopiert.

Kann es daran liegen, dass ich in CS1 arbeite?

VG

Jan


als Antwort auf: [#217569]

Eckeneffekte selbst definieren

Quarz
Beiträge gesamt: 3555

15. Mär 2006, 10:01
Beitrag # 13 von 19
Beitrag ID: #217579
Bewertung:
(15943 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Bei mir mit InDesign CS2 funktioniert es.

Gruß
Quarz


als Antwort auf: [#217576]

Eckeneffekte selbst definieren

Martin Fischer
  
Beiträge gesamt: 12783

15. Mär 2006, 10:18
Beitrag # 14 von 19
Beitrag ID: #217583
Bewertung:
(15940 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Kann es daran liegen, dass ich in CS1 arbeite?
Nein, ein Test des Originalskripts unter CS ergab eine korrektre Rückstellung der Maßeinheiten.
Schick mir mal Dein Skript, damit ich einen Blick in den Code werfen kann.


als Antwort auf: [#217576]

Eckeneffekte selbst definieren

sieber
Beiträge gesamt: 136

15. Mär 2006, 11:19
Beitrag # 15 von 19
Beitrag ID: #217600
Bewertung:
(15926 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Anbei noch einmal der Code:
Vielen Dank für die Hilfe!!!

Code
 
//CornerEffects.jsx
//An InDesign CS2 JavaScript
//
//Applies corner effects by redrawing the object.
//
//For more information on InDesign scripting, go to http://www.adobe.com/products/indesign/scripting.html
//Or visit the InDesign Scripting User to User forum at http://www.adobeforums.com.
//
var myObjectList = new Array;
if (app.documents.length != 0){
if (app.selection.length != 0){
for(var myCounter = 0;myCounter < app.selection.length; myCounter++){
switch (app.selection[myCounter].constructor.name){
case "Rectangle":
case "Oval":
case "Polygon":
case "GraphicLine":
case "TextFrame":
myObjectList.push(app.selection[myCounter]);
break;
}
}
if (myObjectList.length != 0){
myDisplayDialog(myObjectList); }
else{
alert ("Please select a rectangle, oval, polygon, text frame, or graphic line and try again.");

}

}
else{
alert ("Please select an object and try again.");
}
}
else{
alert ("Please open a document, select an object, and try again.");
}
function myDisplayDialog(myObjectList){
var myStringList = ["all points","first point", "last point", "second point", "third point", "fourth point", "first two", "second and third", "last two", "first and last", "odd points", "even points"]
//Store the current measurement units.
var myOldXUnits = app.activeDocument.viewPreferences.horizontalMeasurementUnits;
var myOldYUnits = app.activeDocument.viewPreferences.verticalMeasurementUnits;

app.activeDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
app.activeDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;
myDialog = app.dialogs.add({name:"CornerEffects"});
with(myDialog){
with(dialogColumns.add()){
with(borderPanels.add()){
staticTexts.add({staticLabel:"Corner Type:"});
var myCornerEffectButtons = radiobuttonGroups.add();
with(myCornerEffectButtons){
radiobuttonControls.add({staticLabel:"Rounded", checkedState:true});
radiobuttonControls.add({staticLabel:"Inverse Rounded"});
radiobuttonControls.add({staticLabel:"Bevel"});
radiobuttonControls.add({staticLabel:"Inset"});
radiobuttonControls.add({staticLabel:"Fancy"});
}
}
with(borderPanels.add()){
with (dialogColumns.add()){
staticTexts.add({staticLabel:"Options:"});
}
with (dialogColumns.add()){
with (dialogRows.add()){
with (dialogColumns.add()){
staticTexts.add({staticLabel:"Offset:", minWidth:50});
staticTexts.add({staticLabel:"Pattern:", minWidth:50});
}
with (dialogColumns.add()){
var myOffsetEditbox = measurementEditboxes.add({editValue:12});
var myPatternDropdown = dropdowns.add({stringList:myStringList, selectedIndex:0});
}
}
}
}
}
}
var myReturn = myDialog.show();
if (myReturn == true){
//Get the values from the dialog box.
var myCornerType = myCornerEffectButtons.selectedButton;
var myOffset = myOffsetEditbox.editValue;
var myPattern = myStringList[myPatternDropdown.selectedIndex];
myDialog.destroy();
for(myCounter = 0; myCounter<myObjectList.length; myCounter++){
myChangeCorners(myObjectList[myCounter], myCornerType, myOffset, myPattern);
}
//Reset the measurement units.
app.activeDocument.viewPreferences.horizontalMeasurementUnits = myOldXUnits;
app.activeDocument.viewPreferences.verticalMeasurementUnits = myOldYUnits;
}
else{
myDialog.destroy();
}
}
function myChangeCorners(myObject, myCornerType, myOffset, myPattern){
var myPathPoint, myPoint, myPointA, myPointB, myPointC, myAnchor, myX, myY, myX1, myY1, myX2, myY2, myX3, myY3;
var myNewX1, myNewY1, myNewX2, myNewY2, myXOffset, myYOffset, myPoint, myPathPoint;
for(var myPathCounter = 0; myPathCounter < myObject.paths.length; myPathCounter ++){
var myPath = myObject.paths.item(myPathCounter);
myPointArray = new Array;
for (var myPathPointCounter = 0; myPathPointCounter < myPath.pathPoints.length; myPathPointCounter ++){
//Is the point a qualifying point?
if(myPointTest(myPathPointCounter, myPath, myPattern) == false){
myX1 = myPath.pathPoints.item(myPathPointCounter).leftDirection[0];
myY1 = myPath.pathPoints.item(myPathPointCounter).leftDirection[1];
myX2 = myPath.pathPoints.item(myPathPointCounter).anchor[0];
myY2 = myPath.pathPoints.item(myPathPointCounter).anchor[1];
myX3 = myPath.pathPoints.item(myPathPointCounter).rightDirection[0];
myY3 = myPath.pathPoints.item(myPathPointCounter).rightDirection[1];
myPoint = [[myX1, myY1], [myX2, myY2], [myX3, myY3]];
myPointArray.push(myPoint);
}
else{
myPointA = myPath.pathPoints.item(myPathPointCounter);
myAnchor = myPointA.anchor;
myX1 = myAnchor[0];
myY1 = myAnchor[1];
//myPointB is the *next* point on the path. If myPathPoint is the last point on the path, then
//myPointB is the first point on the path.
if (myPathPointCounter == (myPath.pathPoints.length - 1)){
myPointB = myPath.pathPoints.item(0);
}
else{
myPointB = myPath.pathPoints.item(myPathPointCounter + 1);
}
myAnchor = myPointB.anchor;
myX2 = myAnchor[0];
myY2 = myAnchor[1];
//myPointC is the *previous* point on the path. If myPathPoint is the first point on the path,
//then myPointC is the last point on the path.
if (myPathPointCounter == 0){
myPointC = myPath.pathPoints.item(myPath.pathPoints.length - 1);
}
else{
myPointC = myPath.pathPoints.item((myPathPointCounter - 1) % myPath.pathPoints.length);
}
myAnchor = myPointC.anchor;
myX3 = myAnchor[0];
myY3 = myAnchor[1];
var myPoints = myAddPoints(myX1, myY1, myX2, myY2, myX3, myY3, myOffset);
myNewX1 = myPoints[0];
myNewY1 = myPoints[1];
myNewX2 = myPoints[2];
myNewY2 = myPoints[3];
//Calculate new path point values based on the path effect type.
//We won't add the points to the path one at a time; instead, we'll
//create an array that holds all of the point locations and curve
//handle positions, and we will then
switch (myCornerType){
case 0:
//Rounded corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [myX1, myY1]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 1:
//Inverse Rounded corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 2:
//Bevel corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [myNewX2, myNewY2]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 3:
//Inset corner effect.
myPoint = [[myNewX2, myNewY2], [myNewX2, myNewY2], [myNewX2, myNewY2]];
myPointArray.push(myPoint);
myPoint = [[(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)],[(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)],[(myNewX2 + myNewX1 - myX1), (myNewY2 + myNewY1 - myY1)]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1], [myNewX1, myNewY1], [myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
case 4:
//Fancy corner effect.
var myOneThird = 0.33333333332;
var myTwoThirds = 0.666666666667
var myPointZX = myNewX2 + myNewX1 - myX1;
var myPointZY = myNewY2 + myNewY1 - myY1;
var myTemp1X = (myX1 - myNewX2) * myTwoThirds;
var myTemp1Y = (myY1 - myNewY2) * myTwoThirds;
var myTemp2X = (myX1 - myNewX1) * myTwoThirds;
var myTemp2Y = (myY1 - myNewY1) * myTwoThirds;
var myPointDX = myPointZX + myOneThird * (myNewX1 - myPointZX);
var myPointDY = myPointZY + myOneThird * (myNewY1 - myPointZY);
var myPointEX = myPointZX + myOneThird * (myNewX2 - myPointZX);
var myPointEY = myPointZY + myOneThird * (myNewY2 - myPointZY);
var myPointFX = myPointDX + myTwoThirds * (myX1 - myTemp1X - myPointDX);
var myPointFY = myPointDY + myTwoThirds * (myY1 - myTemp1Y - myPointDY);
var myPointGX = myPointEX + myTwoThirds * (myX1 - myTemp2X - myPointEX);
var myPointGY = myPointEY + myTwoThirds * (myY1 - myTemp2Y - myPointEY);
var myPointHX = myPointZX + myTemp1X + myTemp2X;
var myPointHY = myPointZY + myTemp1Y + myTemp2Y;
myPoint = [[myNewX2, myNewY2],[myNewX2, myNewY2],[myNewX2, myNewY2]];
myPointArray.push(myPoint);
myPoint = [[myPointEX, myPointEY],[myPointEX, myPointEY],[myPointEX, myPointEY]];
myPointArray.push(myPoint);
myPoint = [[myPointGX, myPointGY],[myPointGX, myPointGY],[myPointGX, myPointGY]];
myPointArray.push(myPoint);
myPoint = [[myPointHX, myPointHY],[myPointHX, myPointHY],[myPointHX, myPointHY]];
myPointArray.push(myPoint);
myPoint = [[myPointFX, myPointFY],[myPointFX, myPointFY],[myPointFX, myPointFY]];
myPointArray.push(myPoint);
myPoint = [[myPointDX, myPointDY],[myPointDX, myPointDY],[myPointDX, myPointDY]];
myPointArray.push(myPoint);
myPoint = [[myNewX1, myNewY1],[myNewX1, myNewY1],[myNewX1, myNewY1]];
myPointArray.push(myPoint);
break;
}
}
}
myPath.entirePath = myPointArray;
}
}
function myAddPoints(myX1, myY1, myX2, myY2, myX3, myY3, myOffset){
var myXAdjust, myYAdjust, myNewX1, myNewY1, myNewX2, myNewY2, myHypotenuse;
myHypotenuse = Math.sqrt(Math.pow((myX1 - myX2),2) + Math.pow((myY1 - myY2),2));
if (myY1 != myY2) {
myXAdjust = ((myX1 - myX2) / myHypotenuse) * myOffset;
myYAdjust = ((myY1 - myY2) / myHypotenuse) * myOffset;
myNewX1 = myX1 - myXAdjust;
myNewY1 = myY1 - myYAdjust;
}
else {
myXAdjust = myOffset;
myYAdjust = 0;
if (myX1 < myX2) {
myNewX1 = myX1 + myXAdjust;
myNewY1 = myY1 + myYAdjust;
}
else{
myNewX1 = myX1 - myXAdjust;
myNewY1 = myY1 - myYAdjust;
}
}
myHypotenuse = Math.sqrt(Math.pow((myX1 - myX3),2) + Math.pow((myY1 - myY3),2));
if (myY1 != myY3) {
myXAdjust = ((myX1 - myX3) / myHypotenuse) * myOffset;
myYAdjust = ((myY1 - myY3) / myHypotenuse) * myOffset;
myNewX2 = myX1 - myXAdjust;
myNewY2 = myY1 - myYAdjust;
}
else{
myXAdjust = myOffset;
myYAdjust = 0;
if (myX1 < myX3) {
myNewX2 = myX1 + myXAdjust;
myNewY2 = myY1 + myYAdjust;
}
else{
myNewX2 = myX1 - myXAdjust;
myNewY2 = myY1 - myYAdjust;
}
}
return [myNewX1, myNewY1, myNewX2, myNewY2];
}
function myPointTest(myPathPointCounter, myPath, myPattern){
//Do not apply the corner effect to the first or last point in an open path
//(this is the way that InDesign's corner effects work).
if((myPath.pathType == PathType.openPath)&&((myPathPointCounter ==0)||(myPathPointCounter == myPath.pathPoints.length-1))){
return false;
}
else{
switch(myPattern){
case "all points":
return true;
case "first point":
if(myPathPointCounter == 0){
return true;
}
else{
return false;
}
case "last point":
if(myPathPointCounter == myPath.pathPoints.length-1){
return true;
}
else{
return false;
}
case "second point":
if(myPathPointCounter == 1){
return true;
}
else{
return false;
}
case "third point":
if(myPathPointCounter == 2){
return true;
}
else{
return false;
}
case "fourth point":
if(myPathPointCounter == 3){
return true;
}
else{
return false;
}
case "first two":
if((myPathPointCounter == 0)||(myPathPointCounter == 1)){
return true;
}
else{
return false;
}
case "second and third":
if((myPathPointCounter == 1)||(myPathPointCounter == 2)){
return true;
}
else{
return false;
}
case "last two":
if((myPathPointCounter == (myPath.pathPoints.length-2))||(myPathPointCounter == (myPath.pathPoints.length-1))){
return true;
}
else{
return false;
}
case "first and last":
if((myPathPointCounter == 0)||(myPathPointCounter == (myPath.pathPoints.length-1))){
return true;
}
else{
return false;
}

//Because myPathPointCounter starts at 0, the even points on the path
//actually fall on the odd numbers (when myPathPointCounter = 1, it's
//the second point on the path). Therefore, we use % (mod) 2 != 0 for
//even numbers.
case "even points":
if(myPathPointCounter % 2 != 0){
return true;
}
else{
return false;
}
case "odd points":
if(myPathPointCounter % 2 == 0){
return true;
}
else{
return false;
}
}
}
}




als Antwort auf: [#217583]
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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. 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 / Horizon

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

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 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

Nein

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!