[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt for-schleife | graphicline | pathpoints

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

for-schleife | graphicline | pathpoints

julez
Beiträge gesamt: 15

20. Mai 2016, 15:42
Beitrag # 1 von 4
Bewertung:
(2338 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo zusammen,

ich bin mal wieder nah dran, komme aber weder mit google noch mit der suchfunktion weiter.
beim ausfuehren der untenstehenden zeilen werden mir jeweils vor dem ersten pathpoint zwei – fuer mich mysterioese – punkte gesetzt. interessant aber nicht gewollt! was habe ich nicht bedacht?

mal wieder vielen dank vorab.


gruesse
julian


siehe code:
Code
var posX = 50; 
var posY = 50;

var datenX = 2;
var datenY = [10,30,20,40,30];

var abstandX = 2;


// linine
var linie = app.activeDocument.graphicLines.add();
linie.strokeWeight = 1;

for(var i in datenY) {

// punkt 1
punkt = linie.paths[0].pathPoints.add();
punkt.anchor = [posX, posY + datenY[i]];

posX = posX + abstandX + datenX;

}


// stufen
var stufen = app.activeDocument.graphicLines.add();
stufen.strokeWeight = 1;

for(var i in datenY) {

// punkt 1
punkt = stufen.paths[0].pathPoints.add();
punkt.anchor = [posX, posY + datenY[i]];

// punkt 2
punkt = stufen.paths[0].pathPoints.add();
punkt.anchor = [posX + datenX, posY + datenY[i]];

posX = posX + abstandX + datenX;

}

X

for-schleife | graphicline | pathpoints

Kai Rübsamen
Beiträge gesamt: 4664

20. Mai 2016, 16:14
Beitrag # 2 von 4
Beitrag ID: #549822
Bewertung:
(2324 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Julian,

ich hab keine Ahnung, was du da machst. Das Ergebnis sieht jedenfalls interessant aus.

Welche zwei Punkte meinst du? Die oben links in der Ecke?
Falls ja, stell mal dein Lineal auf Punkt um: Der erste liegt bei 0/0, der zweite bei 10/10. Das ist das Verhalten, wenn man ein neues Objekt erzeugt und ihm noch nichts mitgibt.

Du musst also entweder deine beiden Punkte nachträglich verschieben:

Code
var seite = app.documents[0].pages[0]; 
var linie = seite.graphicLines.add();
var pfad = linie.paths[0];
pfad.pathPoints[0].anchor = [10, 10];
pfad.pathPoints[1].anchor = [45, 50];

var neuerPunkt = pfad.pathPoints.add();
neuerPunkt.anchor = [50, 75];


oder den Stand direkt beim Erzeugen der Linie mitteilen:
Code
var seite = app.documents[0].pages[0]; 
var linie = seite.graphicLines.add({geometricBounds: [10, 10, 50, 45]});


Gruß Kai Rübsamen


als Antwort auf: [#549821]
(Dieser Beitrag wurde von Kai Rübsamen am 20. Mai 2016, 16:20 geändert)

for-schleife | graphicline | pathpoints

Uwe Laubender
Beiträge gesamt: 4997

22. Mai 2016, 11:33
Beitrag # 3 von 4
Beitrag ID: #549831
Bewertung:
(2099 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Julian,

Du könntest auch ein Array von x/y-Array-Werten benutzen, um den entirePath zeichnen zu lassen:

Code
var myGraphicLine = app.documents[0].graphicLines.add(); 

myGraphicLine.properties =
{
fillColor : "None" ,
strokeColor : "Black" ,
strokeWeight : "0.25 mm"
}

myGraphicLine.paths[0].entirePath =

[
[30,30] , // x/y values
[32,30] ,
[35,22] ,
[37,22] ,
[41,34] ,
[43,34] ,
[47,28] ,
[49,28] ,
[52,37] ,
[54,37] ,
[56,24] ,
[58,24] ,
[62,35]
]


Die Werte kannst Du vorab in aller Ruhe berechnen und als Gesamtarray ausdrücken.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#549821]

for-schleife | graphicline | pathpoints

julez
Beiträge gesamt: 15

23. Mai 2016, 13:59
Beitrag # 4 von 4
Beitrag ID: #549849
Bewertung:
(1992 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo kai, hallo uwe,

vielen dank fuer eure nachrichten. exakt die beiden punkte meine ich. mir ist trotzdem nicht ganz klar, warum die dort auftauchen. kann ich das auch verhindern? die beiden punkte unter den ersten x/y-punkt aus meinem array zu schieben oder zu loeschen, ist nicht unbedingt eine edle loesung... ich bin dann noch auf folgenden ansatz gestoßen:

Code
    var posX = 50; 
var posY = 50;

var datenX = 2;
var datenY = [10,30,20,40,30];

var abstandX = 2;


// linien
var linie = app.activeDocument.graphicLines.add();
linie.strokeWeight = 1;


for(var i in datenY) {

var punkt = linie.paths[0].pathPoints[i];

if (i < 2) {
punkt.anchor = [posX + datenX/2, posY + datenY[i]];

} else {
punkt = linie.paths[0].pathPoints.add();
punkt.anchor = [posX + datenX/2, posY + datenY[i]];
}

posX = posX + abstandX + datenX;
}



// stufen
var stufen = app.activeDocument.graphicLines.add();
stufen.strokeWeight = 1;

for(var i in datenY) {

// punkt 1
punkt = stufen.paths[0].pathPoints.add();
punkt.anchor = [posX, posY + datenY[i]];

// punkt 2
punkt = stufen.paths[0].pathPoints.add();
punkt.anchor = [posX + datenX, posY + datenY[i]];

posX = posX + abstandX + datenX;

}


aber a) verstehe ich nicht so ganz warum die beiden punkte jetzt nicht mehr auftauchen und b) habe ich keinen blassen schimmer, wie der analoge ansatz fuer die stufen-darstellung funktionieren kann. die variante von uwe wirft eigentlich das aus, was angestrebt ist. jedoch muss ich mir das mal noch genauer anschauen, wie ich den array mit den x/y-array-werten automatisch generiert bekomme. scheint mir auch fuer die weiterverarbeitung etwas komplex.


gruesse
julian


als Antwort auf: [#549822]
(Dieser Beitrag wurde von julez am 23. Mai 2016, 14:00 geändert)
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
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

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

digicomp.ch/d/9PM

Veranstaltungen
09.09.2021 - 17.12.2021

Digicomp Academy, Zürich
Donnerstag, 09. Sept. 2021, 13.00 Uhr - Freitag, 17. Dez. 2021, 19.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von Publishing NETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: 6'300.– zzgl. 7.7% MWST
Dauer: 18 Tage(ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

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