[GastForen Programme Print/Bildbearbeitung Adobe InDesign Linien mit bestimmter Stärke auswählen IDCS2 WIN

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

Linien mit bestimmter Stärke auswählen IDCS2 WIN

cwenet
Beiträge gesamt: 1131

13. Apr 2006, 18:46
Beitrag # 1 von 14
Bewertung:
(9660 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wie kann ich alle Linien auf einer Seite mit einer bestimmten Linienstärke markieren?

Wahrscheinlich nur mit Javascript?

Hat jemand eine Lösung für mich? Danke.

Gruß

Christoph
X

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Hans Haesler
Beiträge gesamt: 5822

19. Apr 2006, 12:00
Beitrag # 2 von 14
Beitrag ID: #224403
Bewertung:
(9591 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

versuch's bitte mal mit diesem JavaScript.

Code
//LinienAuswählen.js 
//© 19.04.06 / Hans Haesler, Châtelard 52, CH-1018 Lausanne
//Ein Script zum Auswählen von Linienrahmen mit bestimmter Stärke

// Dialoge, welche eventuell im Speicher sind, löschen
var numDialogs = app.dialogs.length;
if (numDialogs > 0) {
for (ctr=0; ctr<numDialogs; ctr++) {
app.dialogs.item(0).destroy();
}
}

// den Dialog aufbauen
var myDialog = app.dialogs.add({name:"Linien auswählen", canCancel:true});
with (myDialog) {
with (dialogColumns.add()) {
with (borderPanels.add()) {
with (dialogColumns.add()) {
staticTexts.add({staticLabel:"Linienstärke:"});
}
with (dialogColumns.add()) {
var myLineWeight = realEditboxes.add({editValue:1, minWidth:32});
}
}
}
}

// den Dialog zeigen
if (myDialog.show() == true) {
var myWeight = myLineWeight.editValue;
myDialog.destroy();
}
else {
myDialog.destroy();
exit();
}

// die Linienrahmen auflisten
var myLines = app.activeWindow.activePage.graphicLines;

// eine eventuelle Auswahl aufheben
app.selection = null;

// in einer Schleife die Linienrahmenstärke prüfen und bei
// Übereinstimmung zur Auswahl hinzufügen
var ctr = 0;
for (j=0; j<myLines.length; j++) {
curWeight = myLines[j].strokeWeight;
if (curWeight == myWeight) {
myLines[j].select(SelectionOptions.addTo);
ctr++
}
}

// den Anwender informieren
if (ctr > 0 ) {
alert ("Fertig.");
}
else {
alert ("Keine Linienrahmen mit der gewünschten Stärke gefunden.");
}

Gruss, Hans


als Antwort auf: [#223656]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

cwenet
Beiträge gesamt: 1131

19. Apr 2006, 12:41
Beitrag # 3 von 14
Beitrag ID: #224417
Bewertung:
(9581 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank. Funktioniert einwandfrei.


Gruß vom Bodensee
Christoph :-)


als Antwort auf: [#224403]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Hans Haesler
Beiträge gesamt: 5822

19. Apr 2006, 14:05
Beitrag # 4 von 14
Beitrag ID: #224439
Bewertung:
(9569 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

bitteschön. Danke für die Rückmeldung! (Habe das Script nur auf dem Mac getestet.)

Gruss vom Lac Léman,
Hans


als Antwort auf: [#224417]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

EssWeh
Beiträge gesamt: 532

21. Apr 2006, 11:35
Beitrag # 5 von 14
Beitrag ID: #224847
Bewertung:
(9543 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das funktioniert aber "nur" bei Linien, die mit dem "Linienzeichner" erstellt wurden (CS1 + CS2).
Ich hatte gehofft, dass Text-, Rechteck-, Oval-, Polygonrahmen, aber auch Freihandlinien gefunden würden. Gerade um Rahmen zu finden wäre dein Skript ungeheuer praktisch.

Doch leider ... schade ... (Hoffnung, Hoffnung ...) ... räusper, hust ...!

: - )


als Antwort auf: [#224439]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Martin Fischer
  
Beiträge gesamt: 12732

21. Apr 2006, 11:43
Beitrag # 6 von 14
Beitrag ID: #224849
Bewertung:
(9540 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,

Du brauchst nur die Zeile "var myLines = app.activeWindow.activePage.graphicLines; " durch folgende Zeile ersetzen:
Code
var myLines = app.activeWindow.activePage.pageItems; 


Die Variable "myLines" stimmt dann zwar inhaltlich nicht mehr so ganz, aber das macht dem Skript nix aus.

Allerdings stellte ich gerade fest, daß damit die Stärke "0" nicht auszuwählen ist.
Die entsprechenden Objekte behalten diesen Wert auch nicht, wenn man ihn explizit zuweist.
Um auch Objekte mit keiner Linie auszuwählen, müßte man das Skript mit einem Workaround erweitern.

Ein weiteres Allerdings:
Die Objekte ohne Linie können bei mir gefunden werden, wenn ich nach Linienstärke "1 pt" suche.
Wenn ich mir die Eigenschaft per Skript auslese, dann haben diese Objekte tatsächlich die Linienstärke "1 pt" (obwohl in der Konturpalette kein Wert angezeigt wird und zuvor dezidiert "0 pt" eingetragen wurde).
Erst wenn eine Konturfarbe zugewiesen wird, taucht ein Wert auf ("1 pt").
Dieser läßt sich aber nicht auf "0 pt" zurücksetzen: Beim entsprechenden Versuch verschwindet der Wert - und die Konturfarbe wird auf "[Keine]" zurückgesetzt.

Das ist m.E. nicht ganz sauber gelöst.
Andere würden vielleicht von einem Bug sprechen.

@Hans: Danke für Dein nettes Skript. Gehst Du jetzt mit JS fremd?


als Antwort auf: [#224847]
(Dieser Beitrag wurde von Martin Fischer am 21. Apr 2006, 11:57 geändert)

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Martin Fischer
  
Beiträge gesamt: 12732

21. Apr 2006, 12:06
Beitrag # 7 von 14
Beitrag ID: #224856
Bewertung:
(9529 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Noch ein (hoffentlich) allerletztes Allerdings:

Weist man den Objekten die Linienstärke "0 pt" per Skript zu, behalten sie diesen Wert und können z.B. über das Skript von Hans auch als Objekte mit "0 pt" gefunden werden. Auch die Konturfarbe bleibt erhalten.
Allerdings behält das Objekt tatsächlich eine kleine Kontur, die auf dem Bildschirm und dem Ausdruck sichtbar ist.

Jetzt bezeichne ich das auch als Bug.


als Antwort auf: [#224849]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Martin Fischer
  
Beiträge gesamt: 12732

21. Apr 2006, 12:12
Beitrag # 8 von 14
Beitrag ID: #224859
Bewertung:
(9527 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Was kann nach dem allerletzten Allerdings noch kommen?
Ein PostScriptum?

Weise ich dem Objekt, das per Skript die Strichstärke 0 pt zugewiesen bekommen hat, nun in der Kontur-Palette die Strichstärke 0 pt zu, verschwindet die hauchdünne Linie und - das Objekt wird bei der Suche nach einem Objekt mit 0 pt gefunden.

In Teamarbeit erreichen also Skript und UserInterface das, was Skript und UI alleine offensichtlich nicht hinbekommen. ;-)


als Antwort auf: [#224856]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Hans Haesler
Beiträge gesamt: 5822

21. Apr 2006, 12:21
Beitrag # 9 von 14
Beitrag ID: #224862
Bewertung:
(9520 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,

Dein Räuspern hat den Martin schneller geweckt als mich. ;-)

Denkbar wäre natürlich, den Dialog zu ergänzen, damit ein Rahmentyp ausgewählt werden kann.
(Und der nächste Wunsch wäre dann die Farbe der Kontur, und dann der Tonwert und ... :-).

@ Martin: Stimmt, das Problem mit der unsichbaren 1-pt-Rahmenstärke hat mir auch schon
zu schaffen gemacht. Warum das so gelöst worden ist? Ich kann nur raten. Sehr wahrscheinlich,
damit der Anwender der Kontur "nur" die Farbe zuweisen muss und – automatisch ist die Linie
sichtbar.

Und: Bitteschön. Ich ziehe immer noch die AppleScripts vor, habe aber in den letzten Wochen
eine Auswahl davon nach JavaScript portiert.

Gruss, Hans


als Antwort auf: [#224859]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Martin Fischer
  
Beiträge gesamt: 12732

21. Apr 2006, 12:28
Beitrag # 10 von 14
Beitrag ID: #224864
Bewertung:
(9519 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Denkbar wäre natürlich, den Dialog zu ergänzen, damit ein Rahmentyp ausgewählt werden kann.
(Und der nächste Wunsch wäre dann die Farbe der Kontur, und dann der Tonwert und ... :-).


Einen Ansatz zur Suche von Objekten nach Farbe findet sich in searchObjectByColor_3.jsx (http://www.hilfdirselbst.ch/..._P205751.html#205751

Jetzt müßte man die beiden Skripte noch irgendwie zusammenbringen ... und danach hätte man die Grundlage für so etwas ähnliches wie die komplexe Auswahlfunktion von Illustrator (Auswahl gleich ...).

Daß dies noch keinen Plugin-Entwicker in den Fingern gejuckt hat?


als Antwort auf: [#224862]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Martin Fischer
  
Beiträge gesamt: 12732

21. Apr 2006, 14:45
Beitrag # 11 von 14
Beitrag ID: #224893
Bewertung:
(9490 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Jetzt bezeichne ich das auch als Bug.

Diese Behauptung ziehe ich nun wieder zurück.
Ich habe mich belehren lassen, daß es bei verschiedenen Programmen durchaus Konvention ist, eine Haarlinie (die dünnste auf einem Gerät darstellbare Linie) mit 0 pt anzugeben.
0 pt wäre demnach nicht wie bei den Philosophen ein Nichts, sondern das kleinste gegenständlich Darstellbare (also das Nichten des Nichts?).

Frohes Nachosternwochenende
Martin


als Antwort auf: [#224856]
(Dieser Beitrag wurde von Martin Fischer am 21. Apr 2006, 15:06 geändert)

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Robert Zacherl
Beiträge gesamt: 4153

21. Apr 2006, 15:03
Beitrag # 12 von 14
Beitrag ID: #224896
Bewertung:
(9486 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo herr Fischer,

es gibt gemäß der PostScript- und PDF-Spezifikationen eine klare Definition, wie ein Pfad mit Linienstärke 0 pt zu behandeln ist. Es ist ein Pfad, der mit der Strichstärke, die einem Gerätepixel entspricht, wiedergegeben werden muss.

Da Adobes Bildschirmwiedergabe auf Display-PDF basiert, werden sich die Layoutprogramme auch an dieser Regelung orientieren.


als Antwort auf: [#224893]

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Martin Fischer
  
Beiträge gesamt: 12732

21. Apr 2006, 15:17
Beitrag # 13 von 14
Beitrag ID: #224898
Bewertung:
(9480 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Herr Zacherl,

danke für die Bestätigung.

Für mich bleibt allerdings verwirrend, daß bei Eingabe von 0 pt im UI die tatsächliche Strichstärke auf 1 pt springt (auch wenn dieser Wert also solcher in der Palette nicht mehr dargestellt wird, sondern nur per Skript auszulesen ist, oder durch Zuweisung einer Konturfarbe auch im UI wieder visualisierbar ist) und die Konturfarbe unter der Hand auf "[Keine]" wechselt.

Dieses Verhalten scheint mir nicht mehr Display-PDF-konform zu sein, sondern ein halbherziges Zugeständnis an mögliche Erwartungen bestimmter Benutzergruppen (soll etwa helfen, bei Eingabe einer Konturfarbe auch gleich eine Kontur anzuzeigen, ohne daß eigens eine Konturstärke definiert worden wäre).

M.E. bleibt es damit ein Fallstrick.

Bitte beachten Sie auch meine Hinweise bzgl. dem Phänomen bei erneuter Zuweisung von 0 pt über die Konturpalette nach der Zuweisung von 0 pt per Skript -> die Gerätepixel verschwinden und der per Skript auslesbare Wert der Strichstärke beträgt nun 0 pt.


als Antwort auf: [#224896]
(Dieser Beitrag wurde von Martin Fischer am 21. Apr 2006, 15:24 geändert)

Linien mit bestimmter Stärke auswählen IDCS2 WIN

Martin Fischer
  
Beiträge gesamt: 12732

21. Apr 2006, 15:29
Beitrag # 14 von 14
Beitrag ID: #224904
Bewertung:
(9475 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Und schon wieder muß ich mich korrigieren:
Die Zuweisung von 0 pt über die Konturpalette setzt den (internen unsichtbaren) Wert nicht auf 1 pt zurück, sondern behält den letzten Wert bei und setzt lediglich die Konturfarbe auf "[Keine]" zurück.

Die Zuweisung einer Konturfarbe fördert den alten Konturwert (vor der Rückstellung auf 0 pt) zu Tage.

Und jetzt schweige ich zu diesem Thema.


als Antwort auf: [#224898]
X