Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Objekt-Rahmen mit Linienstärke ergänzen

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

Objekt-Rahmen mit Linienstärke ergänzen

pixel66
Beiträge gesamt: 7

16. Mai 2017, 21:24
Beitrag # 1 von 7
Bewertung:
(3094 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

Ich hab da ein Java Kode-Schnipsel, das ich öfters verwende.
Alle im InDesign positionierten Bilder werden auf die effektive Grösse «zugeschnitten».
Nun möchte ich, dass der Rahmen eine Linienstärke 0.5Pt in blauer Farbe bekommt.
Hab was im Internet recherchiert; aber leider nichts passendes gefunden.
Hab mir jemand eine Empfehlung oder Sprunghilfe – bin euch dankbar.

Code
myScale = 100/100; // Skalierungsfaktor 
myPics = app.documents[0].allGraphics
for (onePic = 0; onePic < myPics.length; onePic++){
myPics[onePic].horizontalScale = myPics[onePic].horizontalScale * myScale;
myPics[onePic].verticalScale = myPics[onePic].verticalScale * myScale;
myPics[onePic].fit(FitOptions.frameToContent); // schmiegt den Rahmen wieder an's Bild an.
}


Vielen Dank
Peter
X

Objekt-Rahmen mit Linienstärke ergänzen

Hans Haesler
  
Beiträge gesamt: 5826

17. Mai 2017, 16:40
Beitrag # 2 von 7
Beitrag ID: #557501
Bewertung:
(3055 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

herzlich willkommen in der Skriptwerkstatt auf HilfDirSelbst! :-)

Den Rahmen, welcher das Bild enthält, ist der parent von myPics[onePic].
Die Kontur wird stroke genannt. Die Konturstärke ist strokeWeight; die Konturfarbe ist strokeColor; der Tonwert ist strokeTint und schliesslich die Ausrichtung: strokeAlignment.

Diese Begriffe kann man auf einmal, dank der Ergänzug properties (= Eigenschaften) zuweisen.
Diese 'properties' werden mit geschweiften Klammern umgeben.

Das Farbfeld "Blau" muss definiert sein.

Code
myScale = 100/100; // Skalierungsfaktor 
myPics = app.documents[0].allGraphics;
for (onePic = 0; onePic < myPics.length; onePic++) {
myPics[onePic].horizontalScale = myPics[onePic].horizontalScale * myScale;
myPics[onePic].verticalScale = myPics[onePic].verticalScale * myScale;
myPics[onePic].parent.properties = {strokeWeight:0.5, strokeColor:"Blau", strokeTint:100, strokeAlignment:StrokeAlignment.INSIDE_ALIGNMENT};
myPics[onePic].fit(FitOptions.frameToContent); // schmiegt den Rahmen wieder an's Bild an.
}

Das StrokeAlignment.INSIDE_ALIGNMENT ergibt "innen". Für "mittig": StrokeAlignment.CENTER_ALIGNMENT

Alles klar?

Gruss, Hans


als Antwort auf: [#557480]

Objekt-Rahmen mit Linienstärke ergänzen

pixel66
Beiträge gesamt: 7

19. Mai 2017, 15:17
Beitrag # 3 von 7
Beitrag ID: #557564
Bewertung:
(2968 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Vielen Dank die Anpassung und der Beschreibung der Attribute.
So kann ich’s nach Gusto anpassen.
Vielleich blick ich da auch bald durch; möcht’s auf jeden Fall erlernen.
Das UrSkript ist glaub vom fachhefte.ch; dazu hatte wir schon mal Kontakt.

Vielen Dank und nen ganz schönes Wochenende

Peter


als Antwort auf: [#557501]

Objekt-Rahmen mit Linienstärke ergänzen

Hans Haesler
  
Beiträge gesamt: 5826

19. Mai 2017, 19:38
Beitrag # 4 von 7
Beitrag ID: #557580
Bewertung:
(2946 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

bitte sehr.

Allerdings: Das "Ur-Script" ist bestimmt nicht von mir. In keinem der 1147 JavaScripts, welche sich in der Sammlung befinden, wird die unsägliche Vorsilbe my verwendet.

Das ist possessive Baby-Sprache ("Mein Biskuit" :-).

Zum besseren Verständnis: Als die ersten Beta-Versionen von InDesign verfügbar waren (so um 1999), konnte man nur AppleScript einsetzen. Die Beispiel-Scripts, welche vom damaligen Verantwortlichen zur Verfügung gestellt wurden, strotzten nur so vor my. Dabei war dieses Wort obligatorisch für den Aufruf eines Handlers aus einem "tell-app-Block" heraus.

Und das ergab solch' grausliche Gebilde: set myText to my myGetText()

Auf meine Proteste hin sagte der erwähnte Script-Designer nur: "Man muss in Betracht ziehen, dass viele Anwender Anfänger sind."

Beim Portieren aller AppleScripts nach JavaScript war ich froh, das my nur dort verwendet zu haben, wo es wirklich notwendig war.

Gruss, Hans


als Antwort auf: [#557564]

Objekt-Rahmen mit Linienstärke ergänzen

Uwe Laubender
Beiträge gesamt: 5316

20. Mai 2017, 10:01
Beitrag # 5 von 7
Beitrag ID: #557588
Bewertung:
(2887 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

alle von Adobe mitgelieferten ExtendScript-Skripte für InDesign benutzen das my in der Variablenbenennung. Dieser Stil wurde von Skriptern oft kopiert. Auch von mir vor Jahren, der unerfahrene Skripter versucht ja an den Beispielen zu lernen. Und ich lasse das my auch weg seit geraumer Zeit.

Gregor Fellenz beispielsweise benutzt exzessiv anstatt des my einen Unterstrich zu Beginn eines Variablennamens. Darüber könnte man auch streiten, will ich aber nicht. Jedem das Seine.

Baut man generische Funktionen, die sich modular in vielen Skripten einsetzen lassen sollen ( über #include, doScript() oder eval() ), muss man sich eh' erneut die Frage stellen wie man mit Variablennamen umgeht.

Marc Autret ist da ziemlich radikal und hat sich seit geraumer Zeit eine neue Methode zugelegt, wenn es nicht um DOM-Objekte geht:

Why I Do Not Use Meaningful Variable Names (Anymore)
http://www.indiscripts.com/...riable-names-anymore

Kommt immer darauf an, ob man alleine vor sich hinwerkelt oder im Team arbeitet. Dokumentation ist dann ein wichtiger Aspekt, damit man seinen eigenen Code auch noch nach Monaten und Jahren verstehen kann ohne sich stunden- oder tagelang wieder einzuarbeiten.

Ich kann mich da auch selbst an die eigene Nase fassen :-)
Hatte mir mal angewöhnt das DOM-Objekt document nur mit dem Variablennamen d zu bezeichnen. Mittlerweile bin ich wieder auf ein besser verständliches doc umgeschwenkt. Und Kommentare im Code schreibe ich fast ausschließlich in Englisch, da ich mich viel mit internationalen Kollegen austausche.

Aber wie bereits gesagt: Jedem das Seine…


als Antwort auf: [#557580]

Objekt-Rahmen mit Linienstärke ergänzen

Kai Rübsamen
Beiträge gesamt: 4684

20. Mai 2017, 11:33
Beitrag # 6 von 7
Beitrag ID: #557591
Bewertung: |||
(2873 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

neulich bin ich da auf einen schönen Beitrag gestoßen:
https://blog.risingstack.com/...es-node-js-at-scale/

Hier insbesondere solche Aussagen wie: "Clean coding means that in the first place you write code for your later self and for your co-workers and not for the machine. Your code must be easily understandable for humans."

Die Ergebnisse u. Schilderungen von Marc Autret sind schon beeindruckend. Ich für mich habe jedoch beschlossen, dass Marc derjenige ist, der den am schlechtesten lesbaren Code von allen schreibt. Was soll daran toll sein? Ich werde mir daran kein Beispiel nehmen und scheue mich auch nicht, dass öffentlich zuzugeben.


als Antwort auf: [#557588]

Objekt-Rahmen mit Linienstärke ergänzen

Hans Haesler
  
Beiträge gesamt: 5826

25. Mai 2017, 08:57
Beitrag # 7 von 7
Beitrag ID: #557645
Bewertung:
(2518 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

Zitat Jedem das Seine…

Genau so ist es!

Dank für den Link zu den Ausführungen von Marc. Na ja ... Hauptsache ist, dass der Autret damit klarkommt. :-)

Im Übrigen schliesse ich mich dem Urteil von Kai an.

Gruss, Hans


als Antwort auf: [#557588]
X