hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Halber Kreis

 



Bartholome
Beiträge: 72

3. Feb 2012, 12:10

Beitrag #1 von 12
Bewertung:

(931 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo.

Mit diesen Codezeilen (ID5) kann ich einen Kreis erzeugen:

Code
//#  das aktive Dokument  #// 
var curDoc = app.activeDocument;
var hoehe = 3.76;
var breite = 3.76;
//~ Objekt Kreis/Oval wird erzeugt
var myCircle = curDoc.pages.item(0).ovals.add();
myCircle.geometricBounds = [0, 0, hoehe, breite];
//~ Konturfarbe, Konturstärke, Konturfarbton und -Ausrichtung
myCircle.properties = {strokeColor:"None", strokeWeight:0, strokeTint:100, strokeAlignment:StrokeAlignment.insideAlignment};
//~ Objektfarbe und Objektfarbton
myCircle.properties = {fillColor:"Black", fillTint:100};


Meine Frage, wie kann ich per Script einen halben Kreis erzeugen?

____________________
freundliche Grüße,
Bartholome
Top

drerol74 m
Beiträge: 84

3. Feb 2012, 14:28

Beitrag #2 von 12
Beitrag ID: #489074

Bewertung:

(898 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Bartholome,

versuch mal das:

Code
#target InDesign 

//# das aktive Dokument #//
var curDoc = app.activeDocument;
var hoehe = 3.76;
var breite = 3.76;
//~ Objekt Kreis/Oval wird erzeugt
var myCircle = curDoc.pages.item(0).ovals.add();


myCircle.geometricBounds = [0, 0, hoehe, breite];
//~ Konturfarbe, Konturstäke, Konturfarbton und -Ausrichtung
myCircle.properties = {strokeColor:"None", strokeWeight:0, strokeTint:100, strokeAlignment:StrokeAlignment.insideAlignment};
//~ Objektfarbe und Objektfarbton
myCircle.properties = {fillColor:"Black", fillTint:100};


myCircle.name = "Halbkreis";

var _semiCirclePath = app.activeDocument.ovals.itemByName("Halbkreis").paths[0];

var _semiCirclePathpoint1 = _semiCirclePath.pathPoints[1];
var _semiCirclePathpoint2 = _semiCirclePath.pathPoints[3];


_semiCirclePathpoint1.rightDirection = _semiCirclePathpoint1.anchor;
_semiCirclePathpoint2.leftDirection = _semiCirclePathpoint2.anchor;

_semiCirclePath.pathPoints[2].remove();



Schöne Grüße
Roland

als Antwort auf: [#489050]

(Dieser Beitrag wurde von drerol74 am 3. Feb 2012, 14:28 geändert)
Top

Martin Fischer  M  p
Beiträge: 9696

3. Feb 2012, 14:31

Beitrag #3 von 12
Beitrag ID: #489075

Bewertung:

(895 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Bartholome,

lege einfach ein Rechteck drauf, das die Hälfte des Kreises abdeckt. ;-)


Im Ernst:
Wie würdest Du auf der Benutzeroberfläche vorgehen?

Dort könntest Du z.B. tatsächlich ein Rechteck über den Kreis legen und über /Objekt/Pathfinder/Subtrahieren.

Per Skript ginge das Subtrahieren etwa so (ein Kreis und ein überlappendes Rechteck sind ausgewählt):
Code
var the_oval = app.selection[0]; 
var the_rect = app.selection[1];
the_oval.subtractPath([the_rect]);


Eine andere Möglichkeit wäre, den Pfad zu bearbeiten.
Also z.B. zunächst einen der 4 Pfadpunkte eines Ovals zu löschen.
Code
the_oval.paths[0].pathPoints[0].remove(); 


Und hinterher die beiden Pfadpunkte an der gestauchten Rundung bearbeiten.
Wie, das musst Du selber mal ausprobieren.
Schau mal in die Beschreibung der pathPoints im Objektmodell rein.

----
edit:
Roland hat sich auf's Wesentliche beschränkt und war deswegen schneller. ;-)
Gutes Gelingen.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#489050]

(Dieser Beitrag wurde von Martin Fischer am 3. Feb 2012, 14:32 geändert)
Top

Bartholome
Beiträge: 72

3. Feb 2012, 15:08

Beitrag #4 von 12
Beitrag ID: #489079

Bewertung:

(861 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Roland

Super, das hab ich gesucht. Wo kann man das noch näher nachlesen?

____________________
freundliche Grüße,
Bartholome

als Antwort auf: [#489074] Top

Bartholome
Beiträge: 72

3. Feb 2012, 15:13

Beitrag #5 von 12
Beitrag ID: #489080

Bewertung:

(855 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Martin

Antwort auf [ Martin Fischer ]
Schau mal in die Beschreibung der pathPoints im Objektmodell rein.


Das werd ich machen.
Danke.
Das Endobjekt soll/wird so aussehen:

http://www.pic-upload.de/...alber-Kreis.png.html

____________________
freundliche Grüße,
Bartholome

als Antwort auf: [#489075] Top

Martin Fischer  M  p
Beiträge: 9696

3. Feb 2012, 15:26

Beitrag #6 von 12
Beitrag ID: #489081

Bewertung:

(843 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Bartholome,

Antwort auf: Das Endobjekt soll/wird so aussehen:


Da wäre aber tatsächlich zu überlegen, ob das nicht einfacher über die o.g. Pfad-Subtraktionsmethode zu lösen wäre: erst alle Kreise im Quadrat anordnen und dann ein Rechteck drüberlegen und dann die Überlappung subtrahieren.

Ohne es geprüft zu haben, könnte ich mir vorstellen, dass die andere Methode (Arrangement von Duplikaten eines einmalig zugerichteten Halbkreises) an den Ecken Kopfzerbrechen bereiten könnte – wg. der Geometrie. Immerhin wäre bei den vier Außenkanten jeweils eine eigene Lage des Halbkreises zu berücksichtigen.
Mit ganzen Kreisen dürfte leichter umzugehen sein. So sehr mir auch Rolands Lösung mit der leftDirection und der rightDirection der Pfadpunkte gefällt.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#489080]

(Dieser Beitrag wurde von Martin Fischer am 3. Feb 2012, 15:34 geändert)
Top

drerol74 m
Beiträge: 84

3. Feb 2012, 15:27

Beitrag #7 von 12
Beitrag ID: #489082

Bewertung:

(841 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Antwort auf: Wo kann man das noch näher nachlesen?


Kennst du das von Jongware:
http://jongware.mit.edu/idcsjs5.5/pc_PathPoint.html

Durch die Hyperlinks recht zugänglich, und wenn man sich in der Google-Suche auf diese Seite beschränkt, kommt man recht schnell ans Ziel.

Schöne Grüße
Roland

als Antwort auf: [#489079] Top

Hans Haesler  M  p
Beiträge: 3883

3. Feb 2012, 20:06

Beitrag #8 von 12
Beitrag ID: #489099

Bewertung:

(758 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Bartholome,

eine mögliche Lösung wäre folgendes Vorgehen:

1. Den Halbkreis mithilfe des Scripts von Roland erzeugen.
2. Das Objekt auswählen und um 180° drehen.
3. Das JavaScript UmrandungErzeugen starten.
4. Im Dialog die Eingaben laut dem angehängten Screenshot "dialog.png" vornehmen (Breite und Höhe: 12 x 3.67 = 45.12).
5. Mit Klick auf "OK" die Ausführung bestätigen.
6. Das Ergebnis: a), links im Screenshot "umrandung.png".
7. Die Elemente des linken Randes auswählen und nach links verschieben (b).
8. Dasselbe mit den Elementen des rechten Randes (b).
9. Die beiden Eck-Elemente rechts oben und rechts unten entfernen (c).

Das Verschieben ist rasch und präzise gemacht (dank der "intelligenten Hilfslinien").

Das JavaScript ist hier erhältlich: http://www.fachhefte.ch / Links "JavaScripts", "Mac OS X deutsch" (oder "Windows deutsch"), "InDesign CS5" und je nach Plattform und InDesign-Version und zwei mal auf "weiter" klicken, damit die Seite 3 sichtbar wird.

Gruss, Hans

als Antwort auf: [#489080] Top

Anhang:
dialog.png (67.1 KB)
  umrandung.png (29.7 KB)

Bartholome
Beiträge: 72

4. Feb 2012, 15:18

Beitrag #9 von 12
Beitrag ID: #489122

Bewertung:

(699 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Hans.

Danke für die Mühe.

____________________
freundliche Grüße,
Bartholome

als Antwort auf: [#489099] Top

Hans Haesler  M  p
Beiträge: 3883

4. Feb 2012, 15:37

Beitrag #10 von 12
Beitrag ID: #489123

Bewertung:

(686 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Bartholome,

bitteschön. Dieses Script habe ich zwar nicht speziell für Dich entwickelt. Aber es eignet sich gut für Deine Aufgabe.

Damit Du auch noch zum Scripten kommst, könntest Du versuchen das Script von Roland so zu ändern, dass die Drehung von 180 Grad nicht notwendig ist. :-)

Gruss, Hans

als Antwort auf: [#489122] Top

Bartholome
Beiträge: 72

4. Feb 2012, 17:10

Beitrag #11 von 12
Beitrag ID: #489128

Bewertung:

(663 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Hans.

Antwort auf [ Hans Haesler ] Dieses Script habe ich zwar nicht speziell für Dich entwickelt.

Kein Problem. Brauch es auch nicht. :-)


Antwort auf [ Hans Haesler ] könntest Du versuchen das Script von Roland so zu ändern, dass die Drehung von 180 Grad nicht notwendig ist..


Das war das Erste was ich versucht habe: :-)

Code
var _semiCirclePathpoint1 = _semiCirclePath.pathPoints[3];  
var _semiCirclePathpoint2 = _semiCirclePath.pathPoints[1];
_semiCirclePathpoint1.rightDirection = _semiCirclePathpoint1.anchor;
_semiCirclePathpoint2.leftDirection = _semiCirclePathpoint2.anchor;
_semiCirclePath.pathPoints[0].remove();

____________________
freundliche Grüße,
Bartholome

als Antwort auf: [#489123] Top

Hans Haesler  M  p
Beiträge: 3883

4. Feb 2012, 20:55

Beitrag #12 von 12
Beitrag ID: #489135

Bewertung:

(629 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Halber Kreis


Hallo Bartholome,

Zitat Das war das Erste was ich versucht habe: :-)

Geprüft und für gut befunden. :-)

Zitat Kein Problem. Brauch es auch nicht.

Kein Problem. Also dann: Gutes Gelingen!

Gruss, Hans

als Antwort auf: [#489128] Top


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Halber Kreis


^