Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Prüfen, ob zwei Objekte überlappen...

Prüfen, ob zwei Objekte überlappen...

Marc Sidon
Beiträge gesamt: 262

24. Jul 2008, 13:47
Bewertung:

gelesen: 1173

Beitrag als Lesezeichen
Hallo zusammen,

da ich bislang vergebens nach einer InDesign-Funktion gesucht habe, die mir sagt, ob zwei Objekte überlappen, habe ich mir selber eine geschrieben.

zu Testzwecken muß man zwei Objekte markieren und dann das Skript ausführen. In dieser Verwendung macht das natürlich nur wenig Sinn (denn man sieht ja, dass die Objekte überlappen) aber eingebaut in ein anderes Skript kann das sehr hilfreich sein.

Vielleicht braucht der Eine oder Andere von Euch das auch irgendwann einmal...

Code
function objectsOverlap(b1, b2) { 

if (app.selection.length == 2) {

b1Top = b1.geometricBounds[0];
b1Left = b1.geometricBounds[1];
b1Bottom = b1.geometricBounds[2];
b1Right = b1.geometricBounds[3];

b2Top = b2.geometricBounds[0];
b2Left = b2.geometricBounds[1];
b2Bottom = b2.geometricBounds[2];
b2Right = b2.geometricBounds[3];

if ( ((b1Left < b2Left) && (b1Right > b2Left) && (b1Top < b2Top) && (b1Bottom > b2Top))
|| ((b1Left < b2Right)&& (b1Right > b2Right) && (b1Top < b2Top) && (b1Bottom > b2Top))
|| ((b1Left < b2Right) && (b1Right > b2Right) && (b1Top < b2Bottom) && (b1Bottom > b2Bottom))
|| ((b1Left < b2Left) && (b1Right > b2Left) && (b1Top < b2Bottom) && (b1Bottom > b2Bottom))
|| ((b2Left < b1Left) && (b2Right > b1Left) && (b2Top < b1Top) && (b2Bottom > b1Top))
|| ((b2Left < b1Right)&& (b2Right > b1Right) && (b2Top < b1Top) && (b2Bottom > b1Top))
|| ((b2Left < b1Right) && (b2Right > b1Right) && (b2Top < b1Bottom) && (b2Bottom > b1Bottom))
|| ((b2Left < b1Left) && (b2Right > b1Left) && (b2Top < b1Bottom) && (b2Bottom > b1Bottom))
) {
alert("JA");
} else {
alert("NEIN");
}
}

}

var obj1 = app.selection[0];
var obj2 = app.selection[1];

objectsOverlap(obj1, obj2);


P.S.: Sollte es doch eine bessere Möglichkeit geben, die ich noch nicht gefunden habe, bitte her damit...
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts

(Dieser Beitrag wurde von Marc Sidon am 24. Jul 2008, 13:51 geändert)

Reparatur von Photoshop-Beschneidungspfaden - nach INX-Export oder nach Konvertieren von CS2-Dokumenten

Martin Fischer
  
Beiträge gesamt: 12783

24. Jul 2008, 17:43
Bewertung:

gelesen: 1133

Beitrag als Lesezeichen
Und hier ein CS3-Skriptle zur Reparatur von Photoshop-Beschneidungspfaden - nach INX-Export oder nach Konvertieren von CS2-Dokumenten:


Code
// repairPhotoshopClippingPaths.jsx 

if (app.documents.length > 0)
repairPhotoshopClippingPaths( app.activeDocument );

function repairPhotoshopClippingPaths( d )
{
var g = d.allGraphics;
for ( i = 0; i < g.length; i++ )
{
if ( g[i].clippingPath.clippingType == ClippingPathType.photoshopPath && g[i].clippingPath.appliedPathName == '' )
{
try
{
g[i].clippingPath.appliedPathName = g[i].clippingPath.photoshopPathNames[0];
} catch(e){}
}
}
}


Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 24. Jul 2008, 17:43 geändert)