[GastForen Programme Print/Bildbearbeitung Adobe InDesign Prüfen, ob zwei Objekte überlappen...

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

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

Marc Sidon
Beiträge gesamt: 262

24. Jul 2008, 13:47
Beitrag # 1 von 2
Bewertung:
(1132 mal gelesen)
URL zum Beitrag
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...

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

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

Martin Fischer
  
Beiträge gesamt: 12714

24. Jul 2008, 17:43
Beitrag # 2 von 2
Beitrag ID: #360230
Bewertung:
(1092 mal gelesen)
URL zum Beitrag
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){}
}
}
}



als Antwort auf: [#360167]
(Dieser Beitrag wurde von Martin Fischer am 24. Jul 2008, 17:43 geändert)