[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Basiljs/ExtendScript_vertices on a layer

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

Basiljs/ExtendScript_vertices on a layer

ea sy
Beiträge gesamt: 4

17. Mai 2016, 20:26
Beitrag # 1 von 4
Bewertung:
(1390 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,
ich habe eine wirklich sehr spezifische Frage.
Und zwar habe ich Dreiecke mit Hilfe der Basiljs-Funktion b.vertex() erstellt, die ich jetzt gerne auf eine Ebene legen würde.

Bei wirklich definierten Formen, wie zB ein Rechteck ist das nie ein Problem gewesen. Über die Zeilen
Code
myRectangle[i]=b.rect(); myCircle[index1].itemLayer = allLayers[index2]; 

ging das super einfach.

Aber für ein Dreieck gibt es in basiljs (was grundsätzlich ja extendScript erleichtern soll) keine Funktion, deshalb musste ich sogenannte vertices erzeugen und die dann letzten Endes miteinander verbinden.

Siehe Code
Code
if(i==USERINPUT_numberStrokes){ //the last/largest ellipse must be filled 
b.fill(0,0,0,0); //white color for the last ellipse
b.beginShape(b.CLOSE);
var radius = 200;
var degree = 120;
var magicNumber = 30; // to turn the triangle upwards
var trianglePoints = [];
for (var j = 0; j < 3; j++) {
var x = (b.cos(b.radians(degree * j + magicNumber)) * scaleCircle*i) + points[c][0];
var y = (b.sin(b.radians(degree * j + magicNumber)) * scaleCircle*i) + points[c][1];
trianglePoints.push([x, y]);
b.vertex(x, y);
}
b.endShape();
...
}
}


Grundsätzlich muss man nicht alles im Detail verstehen... ich würd enur gerne wissen wie ich nun auch diese Pfade in eine Ebene(Layer) bekomme?

Ich bin am Verzweifeln. Kann mir jemand helfen?

(Dieser Beitrag wurde von ea sy am 17. Mai 2016, 20:30 geändert)
X

Basiljs/ExtendScript_vertices on a layer

Uwe Laubender
Beiträge gesamt: 5316

18. Mai 2016, 08:07
Beitrag # 2 von 4
Beitrag ID: #549711
Bewertung:
(1312 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ea sy,
mal Basiljs außen vor gelassen.

Du kannst einem pageItem eine Ebene zuweisen, indem Du der Eigenschaft itemLayer einen Wert zuweist.

Den Namen der Ebene:

Code
myRectangle.itemLayer = app.documents[0].layers.itemByName("Meine Ebene"); 


Oder den Index der Ebene:
Code
myRectangle.itemLayer = app.documents[0].layers[0]; 



als Antwort auf: [#549704]

Basiljs/ExtendScript_vertices on a layer

mdomino
Beiträge gesamt: 76

18. Mai 2016, 11:31
Beitrag # 3 von 4
Beitrag ID: #549720
Bewertung:
(1262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ea sy,

laut basil.js-Referenz gibt die b.endShape()-Funktion den erstellten Pfad zurück (siehe http://basiljs.ch/reference/#endShape). Das heißt in deinem Beispiel musst du eigentlich nur mittels
Code
var myTriangle = b.endShape(); 

deinen Pfad in einer Variable zwischenspeichern und dann kannst du wie gewohnt das Objekt mit
Code
myTriangle.itemLayer = allLayers[index2]; 

auf die andere Ebene befördern.

Grüße,
md


als Antwort auf: [#549704]

Basiljs/ExtendScript_vertices on a layer

ea sy
Beiträge gesamt: 4

19. Mai 2016, 21:11
Beitrag # 4 von 4
Beitrag ID: #549798
Bewertung:
(1183 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank md :)

hat so geklappt!
Sehr cool


als Antwort auf: [#549720]
(Dieser Beitrag wurde von ea sy am 19. Mai 2016, 21:12 geändert)
X