Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Zwei Kreise mit einer Linie orthogonal verbinden

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

Zwei Kreise mit einer Linie orthogonal verbinden

jewgeni
Beiträge gesamt: 5

16. Dez 2011, 19:24
Beitrag # 1 von 14
Bewertung:
(8262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo an alle!

Ich bin neu hier und habe das was ich gesucht habe, leider nicht efunden. Gleichzeitig eher unerfahren in Javascript, aber vielleicht kann jemand helfen oder einen Tipp geben.

Ist es möglich per Script eine Linie so zwischen 2 vorhandene Kreise zu zeichnen, dass sie orthogonal zu den beiden Kreiskonturen steht?

Vielen Dank und schöne Grüße!
Jewgeni
X

Zwei Kreise mit einer Linie orthogonal verbinden

-hans-
Beiträge gesamt: 748

16. Dez 2011, 20:13
Beitrag # 2 von 14
Beitrag ID: #486514
Bewertung:
(8244 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
... heisst, dass die Linie als gerade Gerade durch die Kreismittelpunkte geht¿ ... oder eine zu dieser Linie im 90-Grad-Winkel stehende Linie?

Kurzes Gegoogle und deine Beschreibung konnte ich jetzt nicht direkt zusammenbringen...

Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#486512]

Zwei Kreise mit einer Linie orthogonal verbinden

jewgeni
Beiträge gesamt: 5

16. Dez 2011, 20:45
Beitrag # 3 von 14
Beitrag ID: #486515
Bewertung:
(8234 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
genau, die Linie soll an der Kontur aufhören, sodass der Kreis ungefüllt bleiben kann, aber in ihrer Verlängerung durch die Kreismittelpunkte gehen.

Hoffe die Beschreibung macht Sinn?

Im Grunde so wie hier, nur ohne Pfeilspitzen:

http://www.mpg.de/470219/zoom.jpeg


als Antwort auf: [#486514]
(Dieser Beitrag wurde von jewgeni am 16. Dez 2011, 20:52 geändert)

Zwei Kreise mit einer Linie orthogonal verbinden

Gerald Singelmann
  
Beiträge gesamt: 6269

16. Dez 2011, 23:41
Beitrag # 4 von 14
Beitrag ID: #486518
Bewertung:
(8197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So was ist sehr leicht in AI zu zeichnen, mit dem neuen Formwerkzeug und dann per Zwischenablage in ID zu übernehmen.

In ID selbst würde ich von Mittelpunkt zu Mittelpunkt ziehen (Intelligente Hilfslinien) und dann mit der Schere die Spitzen abschneiden.


als Antwort auf: [#486515]

Zwei Kreise mit einer Linie orthogonal verbinden

jewgeni
Beiträge gesamt: 5

17. Dez 2011, 20:20
Beitrag # 5 von 14
Beitrag ID: #486537
Bewertung:
(8140 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

danke für die Vorschläge, wie man so etwas manuell macht ist mir ja auch klar, nur möchte man nicht ungedingt 60 Stück auf diese Weise machen, da die Kreise immer unterschiedlich positioniert werden müssen, usw.

Die Überlegung war, ob es mit einem Script schneller ginge und ob jemand einen Tipp hätte wie man da anfangen müsste. Ich würde jetzt von der Logik her sagen Koordinaten der Kreismittelpunkte bestimmen, Linie dazwischen zeichnen, Linie an den Schnittstellen trennen, Überstände löschen.

Bin selbst kein Scripter, aber vielleicht hat jemand etwas Ähnliches?

Vielen Dank und schöne Grüße!
Jewgeni


als Antwort auf: [#486518]

Zwei Kreise mit einer Linie orthogonal verbinden

Gerald Singelmann
  
Beiträge gesamt: 6269

17. Dez 2011, 22:49
Beitrag # 6 von 14
Beitrag ID: #486547
Bewertung:
(8119 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ach so...

Code
if (app.selection.length == 2) 
main();

function main() {
var c1 = app.selection[0];
var c2 = app.selection[1];

var gb = c1.geometricBounds;
var r1 = (gb[3]-gb[1])/2;
var x1 = gb[1]+r1;
var y1 = gb[0]+r1;

gb = c2.geometricBounds;
var r2 = (gb[3]-gb[1])/2;

var x2 = gb[1]+r2;
var y2 = gb[0]+r2;

//~ var gl = c1.parent.graphicLines.add();
//~ gl.paths[0].pathPoints[0].anchor = [x1,y1];
//~ gl.paths[0].pathPoints[1].anchor = [x2,y2];

var alpha = Math.atan2 (y2-y1, x2-x1);
var dx1 = Math.cos( alpha ) * r1;
var dy1 = Math.sin( alpha ) * r1;
var dx2 = Math.cos( alpha ) * r2;
var dy2 = Math.sin( alpha ) * r2;
var x11 = x1 + dx1;
var y11 = y1 + dy1;
var x21 = x2 - dx2;
var y21 = y2 - dy2;

var gl = c1.parent.graphicLines.add();
gl.paths[0].pathPoints[0].anchor = [x11,y11];
gl.paths[0].pathPoints[1].anchor = [x21,y21];
}



als Antwort auf: [#486537]

Zwei Kreise mit einer Linie orthogonal verbinden

jewgeni
Beiträge gesamt: 5

17. Dez 2011, 23:25
Beitrag # 7 von 14
Beitrag ID: #486548
Bewertung:
(8106 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Herzlichen Dank für die Hilfe Gerald!
Versuche das nachzuvollziehen :-)

Noch einen schönen Samstag!
Jewgeni


als Antwort auf: [#486547]

Zwei Kreise mit einer Linie orthogonal verbinden

Gerald Singelmann
  
Beiträge gesamt: 6269

18. Dez 2011, 00:11
Beitrag # 8 von 14
Beitrag ID: #486549
Bewertung:
(8090 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Versuche das nachzuvollziehen


Er... zwei Kreise zeichnen, beide markieren und das Script starten.
Ich war nicht sicher, ob eine Gebrauchsanweisung gebraucht wird...


als Antwort auf: [#486548]

Zwei Kreise mit einer Linie orthogonal verbinden

-hans-
Beiträge gesamt: 748

18. Dez 2011, 10:21
Beitrag # 9 von 14
Beitrag ID: #486550
Bewertung:
(8042 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Ach so, ...


Starkes Stück ;-)

Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#486549]

Zwei Kreise mit einer Linie orthogonal verbinden

jewgeni
Beiträge gesamt: 5

18. Dez 2011, 13:58
Beitrag # 10 von 14
Beitrag ID: #486557
Bewertung:
(8001 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Gerald,

ich meinte natürlich das Script an sich nachzuvollziehen :-) damit ich verstehe wie es aufgebaut ist. Es funktioniert wunderbar, nochmals herzlichen Dank!

Jewgeni


als Antwort auf: [#486549]

Zwei Kreise mit einer Linie orthogonal verbinden

fabiantheblind
Beiträge gesamt:

5. Jan 2012, 20:23
Beitrag # 11 von 14
Beitrag ID: #487411
Bewertung:
(7691 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wow.
Respekt, Applaus und Dank.


als Antwort auf: [#486547]

Zwei Kreise mit einer Linie orthogonal verbinden

planobogen
Beiträge gesamt: 1044

6. Jan 2012, 14:40
Beitrag # 12 von 14
Beitrag ID: #487443
Bewertung:
(7613 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wo kann ich bei dem genialen Script die Stärke der Verbindungslinien definieren?
Es wird immer eine Linie mit 1 pt Linienstärke erzeugt, ich möchte aber die Linienstärke an die Stärke der Kreislinien anpassen


als Antwort auf: [#486547]

Zwei Kreise mit einer Linie orthogonal verbinden

Gerald Singelmann
  
Beiträge gesamt: 6269

6. Jan 2012, 15:15
Beitrag # 13 von 14
Beitrag ID: #487445
Bewertung:
(7596 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die Zeile
Code
var gl = c1.parent.graphicLines.add(); 

sollte eigentlich nichts anderes machen als wenn man mit der Hand eine Linie zeichnet.
MaW: Vorher die gewünschte Linienstärke einstellen gilt als Vorgabe.

Man kann aber auch die letzten Zeilen ergänzen:
Code
	var gl = c1.parent.graphicLines.add();  
gl.paths[0].pathPoints[0].anchor = [x11,y11];
gl.paths[0].pathPoints[1].anchor = [x21,y21];
gl.strokeWeight = c1.strokeWeight;
gl.strokeColor = c1.strokeColor;

Habe ich aber nicht getestet...


als Antwort auf: [#487443]

Zwei Kreise mit einer Linie orthogonal verbinden

planobogen
Beiträge gesamt: 1044

6. Jan 2012, 15:44
Beitrag # 14 von 14
Beitrag ID: #487448
Bewertung:
(7578 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

Script rennt wunderbar nach dem Ergänzen der letzten Zeilen.

Die Verbindungslinie orientiert sich immer am zuerst aktivierten Kreis und nimmt die Attribute desselben (Farbe, Linienstärke) für die Verbindungslinie auf.

Danke.


als Antwort auf: [#487445]
X