[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt überlappende Elemente

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

überlappende Elemente

thahammer
Beiträge gesamt: 127

2. Nov 2009, 14:50
Beitrag # 1 von 7
Bewertung:
(2862 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Gibt es einen Befehl um rauszufinden ob ein Objekt über einem anderen liegt?
Könnte man so etwas per JS lösen?
X

überlappende Elemente

franzi_ska
Beiträge gesamt:

2. Nov 2009, 15:07
Beitrag # 2 von 7
Beitrag ID: #413389
Bewertung:
(2852 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

du kannst bei den betroffenenen Objekten überprüfen ob sich die geometricBounds überlagen, also in einem Skript die Werte-Arrays vergleichen (denn die diese Eigenschaft gibt letztendlich an welchen Bereich der Seite die Objekte einnehmen). Sollte dies der Fall sein, kannst du eines von beiden verschieben.


als Antwort auf: [#413381]

überlappende Elemente

Uwe Laubender
Beiträge gesamt: 5319

2. Nov 2009, 16:11
Beitrag # 3 von 7
Beitrag ID: #413400
Bewertung:
(2823 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, franzi_ska!
Durch den Vergleich der geometricBounds läßt sich nur feststellen, ob sich die Objekte überlagern. Die geometricBounds im Vergleich wäre schon mal ein guter Anfang. Allerdings funktioniert der strenggenommen nur bei rechteckigen Objekten, die nicht gedreht sind.

Ich stelle mir den Vergleich sehr kompliziert vor für:
1. unregelmäßige Formen
2. Polygone
3. Kreise und Ovale
2. gedrehte Objekte (egal welcher Coleur)

Um herauszufinden, ob ein bestimmtes Objekt *überhalb* einem anderen liegt, müßte dazu noch die Stapelreihenfolge der Ebenen und die Objekt-Stapelreihenfolge geprüft werden.

Interessante Aufgabe.

Hier ein Stückchen Code, das die geometricBounds eines Objekts vom Typ Textrahmen mit der Skriptbezeichnung "VORGABE" mit denjenigen vergleicht, die dem Objekttyp Rechteck mit der Skriptbezeichnung "ZIEL" entsprechen (einschränkend für die Seite 1 für das activeDocument):

Code
// Folgendes Script untersucht, ob ein Rechteck mit der Scriptbezeichnung "ZIEL" 
// auf oder unterhalb eines Textrahmens mit der Scriptbezeichnung "VORGABE" liegt.
// Falls JA, wird mit dem Rechteck eine Aktion ausgeführt, z.B. Gelb eingefärbt:

var myDoc = app.activeDocument;
var myPage = myDoc.pages[0];

var myVORGABE = myPage.textFrames.item("VORGABE");

var myVGBounds = myVORGABE.geometricBounds;

var Vy1 = myVGBounds[0];
var Vx1 = myVGBounds[1];
var Vy2 = myVGBounds[2];
var Vx2 = myVGBounds[3];

//Das ZIEL wird hier bestimmt; in diesem Fall alle Rechtecke, die die Skriptbeschreibung "ZIEL" tragen:
var myZIEL = myPage.rectangles.item("ZIEL").getElements();

for (n=0; n<myZIEL.length;n++){

var myZGBounds = myZIEL[n].geometricBounds;
var Zy1 = myZGBounds[0];
var Zx1 = myZGBounds[1];
var Zy2 = myZGBounds[2];
var Zx2 = myZGBounds[3];

//Liegt das Ziel vollständig INNERHALB der geometricBounds der VORGABE?
if(Zx1 >= Vx1 && Zx2<=Vx2 && Zy1>=Vy1 && Zy2<=Vy2){
//DANN wird mit dem Ziel gearbeitet; z.B. eingefärbt:
myZIEL[n].fillColor = "Yellow";
};

};



als Antwort auf: [#413389]

überlappende Elemente

thahammer
Beiträge gesamt: 127

2. Nov 2009, 17:22
Beitrag # 4 von 7
Beitrag ID: #413426
Bewertung:
(2806 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habs befürchtet!

Gibts da keinen Script Befehl dafür? :-)


als Antwort auf: [#413400]

überlappende Elemente

Hans Haesler
  
Beiträge gesamt: 5826

2. Nov 2009, 19:27
Beitrag # 5 von 7
Beitrag ID: #413450
Bewertung:
(2789 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

nein, einen Scriptbefehl dafür gibt es nicht. Und Uwe hat schon erklärt, wie die Objekte beschaffen sein müssen, damit es mit 'geometricBounds' zuverlässige Ergebnisse gibt.

Nachstehend – zur Abwechslung – eine Lösung, welche auch teilweises Überlappen meldet.

Das Script erwartet ein neues Dokument, welches zwei Bildrahmen (oder Grafikrahmen) enthält.

Code
var curDoc = app.documents[0]; 

var vA = curDoc.rectangles.item(0).visibleBounds;
var vB = curDoc.rectangles.item(1).visibleBounds;

if (vA[0]<vB[0]) {
if (vA[2]<=vB[0]) {
alert ("Die beiden Objekte überlappen sich nicht.", "Kein Problem");
}
else {
if (vA[1]<vB[1] && vA[3]<=vB[1] || vA[1]>=vB[3]) {
alert ("Die beiden Objekte überlappen sich nicht.", "Kein Problem");
}
else {
alert ("Überlappung.", "Achtung");
}
}
}
else {
if (vA[0]>=vB[2]) {
alert ("Die beiden Objekte überlappen sich nicht.", "Kein Problem");
}
else {
if (vA[1]<vB[1] && vA[3]<=vB[1] || vA[1]>=vB[3]) {
alert ("Die beiden Objekte überlappen sich nicht.", "Kein Problem");
}
else {
alert ("Überlappung.", "Achtung");
}
}
}

Nicht die 'geometricBounds' sondern die 'visibleBounds' werden verglichen. Damit auch Konturstärken berücksichtigt werden.

Gruss, Hans


als Antwort auf: [#413426]

überlappende Elemente

thahammer
Beiträge gesamt: 127

3. Nov 2009, 08:00
Beitrag # 6 von 7
Beitrag ID: #413520
Bewertung:
(2770 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für die Infos!


als Antwort auf: [#413450]

überlappende Elemente

Uwe Laubender
Beiträge gesamt: 5319

3. Nov 2009, 14:40
Beitrag # 7 von 7
Beitrag ID: #413578
Bewertung:
(2746 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, zusammen!
Ich hätte da noch 'ne Idee zum Thema "Überlappen". Wie wäre es, wenn man den Pathfinder dafür instrumentalisieren würde?
Dort ist die Funktion "Schnittmenge bilden" interessant (JavaScript=intersectPath()). Man kann anschließend feststellen, ob sich die Anzahl der Seitenobjekte geändert hat.

Folgende kleine Skriptstudie hängt dem oberen Element bei Überschneidung die Skriptbezeichnung "Überlappend" an. Überschneiden sich die Elemente nicht, bekommt das obere Element die Skriptbezeichnung "NICHT überlappend":

Code
//VORAUSSETZUNG: Mindestens 2 Objekte sind auf der Seite vorhanden: 
try {
var a = app.activeDocument.pages.item(0).pageItems.item(0);
var b = app.activeDocument.pages.item(0).pageItems.item(1);

c=app.activeDocument.pages.item(0).pageItems.length;

b.intersectPath(a);
} catch(err) {};


d=app.activeDocument.pages.item(0).pageItems.length;
if (c>d){var e=true};
else {var e=false};
try {
//Hier wird die Schnittmengenbildung rückgängig gemacht:
app.menuActions.item("$ID/Rückgängig: Schnittmenge bilden").invoke();
} catch(err) {};

if (e==true){a.label="Überlappend"};
if (e==false){a.label="NICHT Überlappend"};

Damit wäre man vollkommen unabhängig von der Form und Drehung der Objekte.


als Antwort auf: [#413520]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!