[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt einfachste methode um objekte einer auswahl anhand des Objektformats zu selektieren

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

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

faxinger
Beiträge gesamt: 195

24. Sep 2018, 17:09
Beitrag # 16 von 26
Beitrag ID: #566484
Bewertung:
(947 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,
vielen vieln Dank, ja das trifft es ziemlich genau was ich möchte.

Allerdings erhalte ich einen Fehler wenn ich nur den Rahmen A und C auswähle.

Ich habe mal durchgetestet:
Auswahl von
A funktioniert
B funktioniert
C funktioniert

A + B funktioniert
B + C funktioniert
A + C funktioniert nicht

A + B + C funktioniert.

Ich weiss allerdings nicht woran das liegt.

LG
faxinger


als Antwort auf: [#566482]
X

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

Kai Rübsamen
Beiträge gesamt: 4582

24. Sep 2018, 17:28
Beitrag # 17 von 26
Beitrag ID: #566485
Bewertung:
(943 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hm, da sollte eigentlich gar nichts passieren. Mach mal einen Screenshot aus dem ESTK und schick ihn mir per pm.

Gruß Kai Rübsamen


als Antwort auf: [#566484]

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

faxinger
Beiträge gesamt: 195

25. Sep 2018, 08:51
Beitrag # 18 von 26
Beitrag ID: #566494
Bewertung:
(901 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

ich habs jetzt nochmal überprüft.
Das Problem ist wenn ich bei den rahmen ein contents dranhänge
"rahmen_A.contents"

Das funktioniert nur wenn auch der rahmen_A in der Auswahl enthalten ist.

Selbiges gilt für B, C etc..


LG
faxinger


als Antwort auf: [#566485]
(Dieser Beitrag wurde von faxinger am 25. Sep 2018, 08:54 geändert)

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

Kai Rübsamen
Beiträge gesamt: 4582

25. Sep 2018, 10:02
Beitrag # 19 von 26
Beitrag ID: #566500
Bewertung:
(883 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxe. Ist es denn so schwer, mal einen Screenshot oder ein Beispiel zu schicken bzw. ein Problem richtig zu formulieren?

Wenn du nur zwei auswählst und dann den contents von einem prüfst, sollte es da normalerweise keinen Fehler geben, s. screenshot.

Gruß Kai Rübsamen


als Antwort auf: [#566494]
Anhang:
Bildschirmfoto 2018-09-25 um 09.57.08.png (103 KB)

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

Kai Rübsamen
Beiträge gesamt: 4582

25. Sep 2018, 13:58
Beitrag # 20 von 26
Beitrag ID: #566503
Bewertung:
(858 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxe,

danke für den Screenshot, den ich hier für Alle anhänge. Der interessante Teil mit der Fehlermeldung am Fuß fehlt allerdings ;-)

Sie lautet sehr wahrscheinlich "undefined is not an object". Du versuchst, den contents von C auszulesen, hast aber nur A+B markiert. Dass das nicht funktioniert, hatte ich dir bereits oben erklärt und Gerald hatte auch schon eine Lösung geliefert.

Du musst mit einer if-Anweisung prüfen, ob der Rahmen in der Variablen liegt:

if (rahmen_C != undefined) alert(rahmen_C.contents);

Gruß Kai Rübsamen


als Antwort auf: [#566500]
(Dieser Beitrag wurde von Kai Rübsamen am 25. Sep 2018, 14:03 geändert)

Anhang:
Bildschirmfoto 2018-09-25 um 13.44.31.JPG (258 KB)

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

faxinger
Beiträge gesamt: 195

26. Sep 2018, 10:29
Beitrag # 21 von 26
Beitrag ID: #566527
Bewertung:
(797 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

ja das mit der Prüfung ist mir nun klar geworden. Danke.

Jetzt hakt es woanders:
Ich wähle einen Rahmen aus und lasse mir das erste Zeichen ausgeben, das funktioniert auch. Jedoch kann ich nicht die pointSize auslesen.

Code
var preis_erste_zahl = preis.contents[0]; 
alert (preis_erste_zahl);
// das funktioniert
var font_groesse_preis = preis_erste_zahl.pointSize;
alert (font_groesse_preis);

Das funktioniert nicht, hier erhalte ich ein undefined.

LG
faxinger


als Antwort auf: [#566503]

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

Kai Rübsamen
Beiträge gesamt: 4582

26. Sep 2018, 14:41
Beitrag # 22 von 26
Beitrag ID: #566536
Bewertung:
(775 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxe,

du könntest im ESTK untersuchen, welche Eigenschaften dein 'contents[0] hat und von welchem Typ es ist:

Code
var sel = app.selection[0]; 

var t1 = sel.contents[0];
var t2 = sel.characters[0];
alert("t1\r" + t1.constructor.name);
alert("t2\r" +t2.constructor.name);

alert(t2.pointSize);




Gruß Kai Rübsamen


als Antwort auf: [#566527]
Anhang:
screenESTK.png (170 KB)

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

faxinger
Beiträge gesamt: 195

26. Sep 2018, 15:24
Beitrag # 23 von 26
Beitrag ID: #566540
Bewertung:
(764 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

ich habs schon gelöst:
Code
 var preis_erste_zahl = preis.contents[0]; 
//alert (preis_erste_zahl);
var font_groesse_preis = preis.characters[0].pointSize;


Es muss natürlich das erste Zeichen als solches ausgewählt sein...

Danke
faxinger


als Antwort auf: [#566536]

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

faxinger
Beiträge gesamt: 195

12. Okt 2018, 15:49
Beitrag # 24 von 26
Beitrag ID: #566841
Bewertung:
(551 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

nochmals ein großes Dankeschön an alle die mich bei des Skript so tatkräftig unterstützt haben.
Aber leider gibt es noch zwei Punkte die noch nicht in mein Hirn durchgedrungen sind.

1. Ich möchte den Grundpreiszusatz am Punkt des Preises ausrichten
2. Wie kann ich eine optionale Auswahl treffen? Sprich es müssen nicht alle Objektformate ausgewählt sein.

Das ist mein Code bisher:
[code]// die Auswahl
var sel = app.selection;

// eine Liste mit Variablen-Namen vorbereiten
var
preis,
streichpreis,
preishit,
streichpreis_hit,
preiszusatz,
preiszusatz_palettenabnahme,
grundpreis_zusatz,
grundpreis_zusatz_palette,
palettenpreis,
palettenpreis_einzelabnahme,
feature_1,
feature_2,
feature_3,
feature_4,
feature_hit_1,
feature_hit_2,
feature_hit_3;

// eine Scheife durch die Auswahl
for (var i = 0; i < sel.length; i++) {
// das gerade untersuche Objekt in der Auswahl
var curSel = sel[i];
// das gerade verwendete Objektformat
var objStyleName = curSel.appliedObjectStyle.name;

//den Namen des Objektformats prüfen und der Variablen zuweisen
if (objStyleName == "preis") preis = curSel;
else if (objStyleName == "streichpreis") streichpreis = curSel;

else if (objStyleName == "preishit") preishit = curSel;
else if (objStyleName == "streichpreis_hit") streichpreis_hit = curSel;

else if (objStyleName == "preiszusatz") preiszusatz = curSel;
else if (objStyleName == "preiszusatz") preiszusatz_palettenabnahme = curSel;

else if (objStyleName == "grundpreis_zusatz") grundpreis_zusatz = curSel;
else if (objStyleName == "grundpreis_zusatz") grundpreis_zusatz_palette = curSel;

else if (objStyleName == "palettenpreis") palettenpreis = curSel;
else if (objStyleName == "palettenpreis") palettenpreis_einzelabnahme = curSel;
else if (objStyleName == "grundpreis_zusatz") grundpreis_zusatz_palette = curSel;

else if (objStyleName == "feature") feature_1 = curSel;
else if (objStyleName == "feature") feature_2 = curSel;
else if (objStyleName == "feature") feature_3 = curSel;

else if (objStyleName == "feature_hit") feature_hit_1 = curSel;
else if (objStyleName == "feature_hit") feature_hit_2 = curSel;
else if (objStyleName == "feature_hit") feature_hit_3 = curSel;
};


/* PREISZUSATZ A U S R I C H T E N A M P R E I S */
if (preiszusatz.isValid)
{
var preis_erste_zahl = preis.contents[0];
//alert (preis_erste_zahl);
var font_groesse_preis = preis.characters[0].pointSize;
//alert (font_groesse_preis);
var faktor = font_groesse_preis*0.001;
//alert (faktor);
var abstand_preis = preis_erste_zahl;
switch(preis_erste_zahl) {
case "0":
abstand_preis = faktor*0.9
break;
case "1":
abstand_preis = faktor*-31.2
break;
case "2":
abstand_preis = faktor*10
break;
case "3":
abstand_preis = faktor*10.75
break;
case "4":
abstand_preis = faktor*7.5
break;
case "5":
abstand_preis = faktor*13.1
break;
case "6":
abstand_preis = faktor*1
break;
case "7":
abstand_preis = faktor*-18
break;
case "8":
abstand_preis = faktor*10.5
break;
case "9":
abstand_preis = faktor*-0.75
break;
};
var preiszusatz_gb = preiszusatz.geometricBounds;
var preiszusatz_breite = preiszusatz_gb[3] - preiszusatz_gb[1];
var preiszusatz_hoehe = preiszusatz_gb[2] - preiszusatz_gb[0];
var preis_hoehe = preis.geometricBounds[2] - preis.geometricBounds[0];
var preisgbX = preis.geometricBounds[1];
var preisgbY = preis.geometricBounds[0];
//alert (preisgbX);
//alert (preiszusatz_gb);
preiszusatz.move([preisgbX - preiszusatz_breite - abstand_preis, preisgbY + preis_hoehe - preiszusatz_hoehe]) ;
}
else
{};



/* GRUNDPREISZUSATZ A U S R I C H T E N A M P R E I S */
if (grundpreis_zusatz.isValid)
{
var preis_inhalt = preis.contents;
var kommaindex = preis_inhalt.indexOf("\.");
var kommaposition = preis_inhalt[kommaindex];
alert (kommaposition);
var x_koord_preis_komma_stelle = kommaposition.endhorizontalOffset;
alert (x_koord_preis_komma_stelle);
/*
var grundpreis_zusatz_gb = grundpreis_zusatz.geometricBounds;
var grundpreis_zusatz_hoehe = grundpreis_zusatz_gb[2] - grundpreis_zusatz_gb[0];
var preis_hoehe = preis.geometricBounds[2] - preis.geometricBounds[0];
var preisgbX = preis.geometricBounds[1];
var preisgbY = preis.geometricBounds[0];
// alert (preisgbX);
// alert (preiszusgb);
// grundpreis_zusatz.move([x_koord_preis_komma_stelle, preisgbY + preis_hoehe - grundpreis_zusatz_hoehe]) ;
*/
};
else
{};
[/code]


Wenn ich den Preis und den Preiszusatz auswähle funktioniert es, wenn ich den Preis und den Grundpreiszusatz auswähle bekomme ich ein undefined.


als Antwort auf: [#566540]
Anhang:
test.idml (36.5 KB)

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

faxinger
Beiträge gesamt: 195

16. Okt 2018, 14:18
Beitrag # 25 von 26
Beitrag ID: #566876
Bewertung:
(457 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

leider hat bisher noch niemand geantwortet auf diese Frage:
Wie kann ich den Grundpreiszusatz am Punkt des Preises ausrichten?

Der Punkt selbst wird richtig abgefragt, wo es scheitert ist
kommaposition.endhorizontalOffset

Hier bekomme ich ein undefined.

Und die 2. Sache wäre noch mit der Auswahl.
Es kann sein dass der Grundpreiszusatz in meiner Auswahl enthalten ist muss aber nicht.
Habs schon mit if else probiert, das hat aber nicht funktioniert.

Bitte um eure Inputs.
Danke

LG
faxinger


als Antwort auf: [#566841]

einfachste methode um objekte einer auswahl anhand es Objektformats zu selektieren

Gerald Singelmann
  
Beiträge gesamt: 6196

17. Okt 2018, 09:55
Beitrag # 26 von 26
Beitrag ID: #566898
Bewertung: ||
(402 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zwei Tipps für höhere Antwort-Chancen:

Machen Sie bitte für neue Fragen ein neues Thema auf.

Und finden Sie bitte raus, wie der code-Tag in diesem Forum funktioniert.


als Antwort auf: [#566876]
X
Hier Klicken

Aktuell

Aktuell
phoenix_300

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
12.11.2018 - 14.11.2018

Schulungen und Präsentationen, praktische Trainings zu den Themen Druck, Publishing und Verpackung.

Golden Tulip, Berlin
Montag, 12. Nov. 2018, 09.00 Uhr - Mittwoch, 14. Nov. 2018, 17.00 Uhr

Informationsveranstaltung

Das VIP Event ist eine von axaio software, callas software und Four Pees organisierte Informationsveranstaltung. Als offenes Event ist es eine großartige Gelegenheit für alle, die sich vertiefende Kenntnisse und praktische Erfahrungen mit callas pdfToolbox, pdfaPilot oder pdfChip, axaio MadeToPrint oder MadeToTag, Insoft Imp, Aleyant tFLOW oder Pressero, Creative Edge iC3D, Laidback FileTrain oder einem der anderen Produkte, die Four Pees vertreibt, aneignen möchten. Die Veranstaltung findet vom 12. bis 14. November 2018 in Berlin statt. Während der ersten beiden Tage wird es parallele Tracks mit technischen Schulungen und Präsentationen zu den Themen Druck, Publishing und Verpackung geben. Der dritte Tag steht im Zeichen maßgeschneiderten Trainings. Sie haben die einmalige Chance, ein praktisches Training zu einem beliebigen unserer Produkte zu erhalten. Lassen Sie uns einfach wissen, woran Sie interessiert sind und wir sorgen dafür, dass es auf der Tagesordnung steht!

Wenn Sie sich jetzt anmelden, profitieren Sie von der Frühbucherrabatt. Nutzen Sie die Gelegenheit und sichern Sie sich Ihr Frühbucherticket mit einem Rabatt von € 100 bis zum 2. Juli 2018!

Frühbucherticket bis 2. Juli 2018:
€ 275 pro Teilnehmer (exklusive 19% Ust., exklusive Hotelzimmer)

Reguläres Ticket bis 10. September 2018:
€ 375 pro Teilnehmer (exklusive 19% Ust., exklusive Hotelzimmer)

Spätbucherticket bis 1. November 2018:
€ 449 pro Teilnehmer (exklusive 19% Ust., exklusive Hotelzimmer)

Inbegriffene Leistungen:

- Abendessen am 11. November 2018
- Zugang zu allen Sessions des Seminars, in denen Sie direkten Kontakt zu Entwicklern, Produktmanagement & Management haben
- Kaffeepausen, Mittagessen, Abendaktivitäten und Abendessen am 12. November 2018
- Kaffeepausen und Mittagessen am 13. November 2018
- Training mit Entwicklern und Produktmanagement am 14. November 2018
- Kaffeepausen und Mittagessen am 14. November 2018

Wenn Sie Ihren Partner nach Berlin mitnehmen möchten, beträgt die Gebühr € 199 (exklusive 19% Ust). Das Abendessen am 11. November sowie die Abendveranstaltung und das Abendessen am 12. November sind in dieser Gebühr enthalten.

Ja

Organisator: callas software GmbH, Berlin

https://www.callassoftware.com/de/events/2018/11/vip-event

 VIP Event
Veranstaltungen
16.11.2018

München
Freitag, 16. Nov. 2018, 09.30 - 17.00 Uhr

Workshop

Hochwertig umsetzen, sicher beurteilen: Im Fokus dieses Vertiefungs-Workshops steht Ihre eigene Design-Leistung. Der Praxis-Workshop bietet Profis wertvolle Tipps zu Detail- und Lesetypografie im Kommunikationsdesign. Vom Arbeiten mit halben Leerzeilen im Grundlinienraster über lückenlosen Blocksatz bis zur stilistisch richtigen Schriftmischung: Sie kennen das Handwerk, dieser Workshop macht Sie zum Meister.

Ein-Tages-Workshop von 9:30 bis 17 Uhr
Während des Workshops stehen jedem Teilnehmer ein iMac + Adobe CC zur Verfügung.
Max. 8 Teilnehmer
Normalpreis: € 281,51 netto (€ 335,– brutto)
Ermäßigung: € 239,50 netto (€ 285,– brutto),

Ja

Organisator: TypeSCHOOL

Kontaktinformation: Uwe Steinacker, E-Mailsteinacker AT typeschool DOT de

www.typeschool.de

Detail-Typografie und Layout im Kommunikationsdesign zur Vertiefung
Hier Klicken