[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Kontur bei Rechteck löschen (CS6, Win7)

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

Kontur bei Rechteck löschen (CS6, Win7)

cwenet
Beiträge gesamt: 1139

22. Feb 2014, 09:11
Beitrag # 1 von 44
Bewertung:
(14706 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

wie kann ich an einem ausgewählten rectangle via Script die untere bzw. obere Konturlinie entfernen?
Demodokument anbei: https://dl.dropboxusercontent.com/u/80200772/no-stroke.idml


Bitte um Hilfe.
Gruss
Christoph
X

Kontur bei Rechteck löschen (CS6, Win7)

Uwe Laubender
Beiträge gesamt: 5319

22. Feb 2014, 10:01
Beitrag # 2 von 44
Beitrag ID: #523963
Bewertung:
(14680 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Christoph!

Ich denke, Du ahnst es schon. Die Vorgehensweise folgt genau dem, was Du im UI auch tun musst: Einen neuen Pfadpunkt setzen und diesen dann löschen.

Den neuen Pfadpunkt setzen ist per Script ja kein Problem.
Den dann so zu entfernen, dass der gewünschte Effekt auftritt schon.

Die remove()-Methode des Objekt PathPoints führt da leider nicht zum Ziel.

Man müsste den einzelnen Pfadpunkt per Script "auswählen" können, um ihn dann zu löschen. Ist mir allerdings noch nicht gelungen.


als Antwort auf: [#523961]

Kontur bei Rechteck löschen (CS6, Win7)

Kai Rübsamen
Beiträge gesamt: 4684

22. Feb 2014, 11:17
Beitrag # 3 von 44
Beitrag ID: #523964
Bewertung:
(14642 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ich denke, Du ahnst es schon. Die Vorgehensweise folgt genau dem, was Du im UI auch tun musst: Einen neuen Pfadpunkt setzen und diesen dann löschen.

Uwe, das ist genau das, was man nicht im UI macht und deshalb funktioniert auch remove() nicht.

Im UI würdest du den weißen Pfeil nehmen, über das Pfadsegment (!) fahren und dann bei entsprechender Cursermeldung die Linie löschen. Du erhältst damit einen offenen Pfad.

Wenn ich im UI den Rahmen mit dem schwarzen Pfeil auswähle, Objekt > Pfade > Pfade öffnen wähle, passiert erstmal visuell gar nichts. Mache ich aber das gleiche per Script, scheint das schon die Lösung für das erste Beispiel.

Code
var curSel = app.selection[0]; 
var p = curSel.paths[0];
p.pathType = PathType.OPEN_PATH;


Leider hab ich keine Idee, wie ich entweder direkt an Pfadsegmente herankommen könnte oder den Pfad gezielt öffnen könnte. Pfad umkehren scheint nicht die Lösung.


als Antwort auf: [#523963]

Kontur bei Rechteck löschen (CS6, Win7)

cwenet
Beiträge gesamt: 1139

22. Feb 2014, 11:50
Beitrag # 4 von 44
Beitrag ID: #523966
Bewertung:
(14624 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke an Uwe und Kai,

hier noch das Video dazu, wie ich im UI die Linie gelöscht habe.

https://dl.dropboxusercontent.com/u/80200772/no-stroke.avi

Das Script von Kai ist ja schon sehr nah dran.

Grüße
Christoph


als Antwort auf: [#523964]
(Dieser Beitrag wurde von cwenet am 22. Feb 2014, 11:54 geändert)

Kontur bei Rechteck löschen (CS6, Win7)

cwenet
Beiträge gesamt: 1139

22. Feb 2014, 12:09
Beitrag # 5 von 44
Beitrag ID: #523968
Bewertung:
(14599 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich könnte ja für die zweite Variante noch das hinzufügen:
Code
app.activeWindow.transformReferencePoint = AnchorPoint.CENTER_ANCHOR; 
curSel.rotationAngle = 180;


Weiss aber noch nicht, ob das evtl. später stören könnte.

Gruss
Christoph


als Antwort auf: [#523966]

Kontur bei Rechteck löschen (CS6, Win7)

Kai Rübsamen
Beiträge gesamt: 4684

22. Feb 2014, 12:33
Beitrag # 6 von 44
Beitrag ID: #523970
Bewertung:
(14585 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Christoph, das mit dem Drehen hatte ich auch schon, aber das ist eigentlich doof, weil sich der Rahmen die Drehung merkt.

Ich hätte jetzt folgende Idee: curSel.paths[0].entirePath gibt dir 8 Koordinaten, z.B.

171,81,171,219,394,219,394,81 oder anders geschrieben:
[171,81],[171,219],[394,219],[394,81]

Die Reihenfolge ist dabei:
x1, y1, x2, y2 usw.

Wenn du jetzt im ersten Schritt den Pfad öffnest, und im zweiten Schritt die Koordinaten von y1 mit y2 usw. vertauschst, sollte das funktionieren. Ich versuche das jetzt noch mal kurz, weis aber noch nicht wie es geht, bzw. hab eigentlich keine Zeit dafür ;-)


als Antwort auf: [#523968]

Kontur bei Rechteck löschen (CS6, Win7)

Uwe Laubender
Beiträge gesamt: 5319

22. Feb 2014, 12:58
Beitrag # 7 von 44
Beitrag ID: #523971
Bewertung:
(14557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, zusammen!
Ja, bevor ich gepostet habe, hatte ich auch schon etliche Varianten durchprobiert.
Bin aber heute Morgen auf die Schnelle auf keine Lösung gekommen.

Mir ist die Problematik voll bewusst.

Mal sehen, ob ich heute noch 'was beitragen kann.
Bin gerade in Eile und unterbreche gerade meine Samstagseinkäufe im Café bei einer schönen Tasse Cappuccino ;-)


als Antwort auf: [#523964]

Kontur bei Rechteck löschen (CS6, Win7)

Kai Rübsamen
Beiträge gesamt: 4684

22. Feb 2014, 13:07
Beitrag # 8 von 44
Beitrag ID: #523972
Bewertung:
(14546 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Soderle, hier mein Vorschlag für die zweite Variante:

Code
var curSel = app.selection[0]; 
var p = new Array();
var gB = curSel.geometricBounds;

var y1, x1, y2, x2;
y1 = gB[0];
x1 = gB[1];
y2 = gB[2];
x2 = gB[3];

p.push( [x1, y2] , [x1, y1] , [x2, y1] , [x2, y2] );

curSel.paths[0].pathType = PathType.OPEN_PATH;
curSel.paths[0].entirePath = p;



als Antwort auf: [#523971]

Kontur bei Rechteck löschen (CS6, Win7)

WernerPerplies
Beiträge gesamt: 2768

22. Feb 2014, 13:39
Beitrag # 9 von 44
Beitrag ID: #523974
Bewertung:
(14505 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

nur mal zu Klarstellung:

Möchtest Du die untere oder die obere Konturlinie
oder vielleicht sogar auch
die untere und die obere Konturlinie entfernen?

Der zweite Fall scheint mir etwas schwieriger zu sein.


als Antwort auf: [#523961]

Kontur bei Rechteck löschen (CS6, Win7)

Kai Rübsamen
Beiträge gesamt: 4684

22. Feb 2014, 13:43
Beitrag # 10 von 44
Beitrag ID: #523975
Bewertung:
(14503 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Werner, der zweite Fall dürfte unmöglich sein. Was Christoph möchte, siehst du in seiner Beispieldatei.


als Antwort auf: [#523974]

Kontur bei Rechteck löschen (CS6, Win7)

WernerPerplies
Beiträge gesamt: 2768

22. Feb 2014, 13:56
Beitrag # 11 von 44
Beitrag ID: #523976
Bewertung:
(14472 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

Zitat Was Christoph möchte, siehst du in seiner Beispieldatei.


Die habe ich gesehen, habe aber trotzdem Zweifel, weil ich ich vom Corel Ventura gewohnt bin, dass ich jede Linie einzeln entfernen kann.

Und gerade hatte ich eine Anwendung, da sollte es eine Linie oben, rechts und unten sein.

Da bin ich dann auf eine Tabelle ausgewichen.

Ich habe mir deshalb in etwa so etwas gedacht:
Code
main() 

function main()
{
var selection = app.selection[0];
var paths = selection.paths;
var leftPath = paths.add();
var rigthPath = paths.add();
leftPath.entirePath = [paths[0].pathPoints[0].anchor, paths[0].pathPoints[1].anchor];
rigthPath.entirePath = [paths[0].pathPoints[2].anchor, paths[0].pathPoints[3].anchor];
}

Ich habe bloß keine Ahnung, wie man dem linken und rechten Pfad eine eigene Linienstärke zuweisen kann.

Gibt es da eine Möglichkeit?


als Antwort auf: [#523975]

Kontur bei Rechteck löschen (CS6, Win7)

cwenet
Beiträge gesamt: 1139

22. Feb 2014, 13:59
Beitrag # 12 von 44
Beitrag ID: #523977
Bewertung:
(14467 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Kai,

merci viel mal. Läuft prima. Super.


Schönen Tag
Christoph


als Antwort auf: [#523975]

Kontur bei Rechteck löschen (CS6, Win7)

Kai Rübsamen
Beiträge gesamt: 4684

22. Feb 2014, 14:13
Beitrag # 13 von 44
Beitrag ID: #523978
Bewertung:
(14441 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

bei deinem Beispiel passiert ja gerade noch nichts. Ich erklär es mal aus Sicht des Grafikers bzw. so wie ich es verstanden habe:

1. Ein Pfad besteht aus Pfadpunkten
2. Mehrere Pfadpunkte werden durch ein Pfadsegment verbunden
3. Es gibt offene und geschlossene Pfade
4. Sowohl offene als auch geschlossene Pfade können eine Kontur(stärke) und eine Farbfläche haben
5. Damit du die Farbfläche bei einem offenen rechteckigen Pfad siehst, benötigt es mindestens 3 Pfad- bzw. Ankerpunkte (bei einem mit Kurvenpunkten reichen auch 2)
6. Wenn du einem rechteckigen Rahmen das Pfadsegment oben und unten nimmst, erhältst du plötzlich zwei Linien und die Flächenfüllung ist weg.
7. Um jetzt Linien einzeln wegzunehmen, kann man über die Effekte irgendwelche Dirty Tricks anwenden. Ich kann aber nicht gezielt Linien wegnehmen. Das wiederum geht nur bei Tabellen.

Edit: Werner, dein Beispiel tut doch was. Technisch gesehen, erstellst du einen Verknüpften Pfad. Ich würde vermuten, dass man dem keine unterschiedliche Kontur zuweisen kann.


als Antwort auf: [#523977]
(Dieser Beitrag wurde von Kai Rübsamen am 22. Feb 2014, 14:19 geändert)

Kontur bei Rechteck löschen (CS6, Win7)

WernerPerplies
Beiträge gesamt: 2768

22. Feb 2014, 14:30
Beitrag # 14 von 44
Beitrag ID: #523980
Bewertung:
(14416 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

Zitat Edit: Werner, dein Beispiel tut doch was. Technisch gesehen, erstellst du einen Verknüpften Pfad. Ich würde vermuten, dass man dem keine unterschiedliche Kontur zuweisen kann.

Ja, ich weiß, wenn ich den ersten Pfad entferne. habe ich links und rechts eine Line, wie in Deinem Punkt 6.

Für mich stellt sich die Frage, gibt es einen Weg, ein Objekt zu konstrurieren, in dem man die Linien wir bei der Tabelle einzeln zu- und abschalten kann, ohne die einzelnen Element gruppieren zu müssen.


als Antwort auf: [#523978]

Kontur bei Rechteck löschen (CS6, Win7)

Uwe Laubender
Beiträge gesamt: 5319

23. Feb 2014, 09:12
Beitrag # 15 von 44
Beitrag ID: #523994
Bewertung:
(14240 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Kai!

Schöne Lösung!
Ich würde nur auf die boundingBox verzichten wollen und direkt mit den zunächst vorhandenen Pfadpunkten arbeiten. Dann funktioniert Dein Script auch mit gedrehten oder verzerrten Objekten:

Code
var curSel = app.selection[0]; 
var curPathPoints = curSel.paths[0].entirePath;

var p = new Array();

p.push(
curPathPoints[1],
curPathPoints[0],
curPathPoints[3],
curPathPoints[2]
);

curSel.paths[0].pathType = PathType.OPEN_PATH;
curSel.paths[0].entirePath = p;



als Antwort auf: [#523972]
X