Gibt es ein Skript für Illustrator, mit dem alle Schnittmasken, Gruppierungen und zusammengesetzten Pfade freigegeben werden können? Im Wesentlichen ein Skript, das eine Datei in ihre ursprünglichen Teile zerlegen kann.
Sie brauchen kein Skript, um alle Schnittmasken in einem Schritt freizugeben, tun Sie einfach:
Es geht aber auch per Script:
app.executeMenuCommand("Clipping Masks menu item");
app.executeMenuCommand("clear");
Dasselbe gilt für das Aufheben der Gruppierung aller Objekte und das Freigeben aller zusammengesetzten Pfade:
app.executeMenuCommand("selectall");
app.executeMenuCommand("ungroup");
app.executeMenuCommand("noCompoundPath");
Bitte schön (dies ist nicht besonders gründlich getestet, wenn es einen Fehler hat, lassen Sie es mich wissen, und ich werde Sie unterstützen):
#target illustrator
// releaseEverything.jsx
//
// Copyright (c) 2017 Janne Ojala
//
// Licence: https://opensource.org/licenses/MIT
(function(){
var objs = app.activeDocument.pageItems;
// or if you want only selection use app.activeDocument.selection
traverseSceneObjects(objs);
function traverseSceneObjects(pageItems){
for (var iter=0 ; iter<pageItems.length; iter++ ){
var item = pageItems[iter];
var typename = item.typename;
// apply action or get the subitems of object
if (typename === "PathItem"){
item.clipping = false;
} else if (typename === "GroupItem") {
traverseSceneObjects( item.pageItems );
release( item, "pageItems" );
} else if (typename === "CompoundPathItem" ) {
traverseSceneObjects( item.pathItems );
release( item, "pathItems" );
}
}
}
function release(obj, action) {
for (var i=obj[action].length-1 ; i>=0; i--){
obj[action][i].move( obj, ElementPlacement.PLACEAFTER );
}
}
})();
Allerdings würde ich persönlich so etwas nicht verwenden. Selektives Flattening ist besser und hat mehr Synergievorteile.
Hinweis : Dies gilt für die gesamte Datei. Wenn Sie möchten, dass es nur für eine Auswahl gilt, ändern Sie die Zeile var objs = app.activeDocument.pageItems;
invar objs = app.activeDocument.selection;
Ich denke nicht, dass es so schwierig ist, die Tastenbefehle CMD-A und CMD-8 abwechselnd so oft wie nötig zu verwenden, aber wenn Sie möchten, können Sie 10 Iterationen in eine Aktion werfen und so oft wie nötig spielen.
Hier ist ein Skript zum Entfernen aller Schnittmasken in einer Datei.
Wenn Sie .remove durch .release ersetzen, wird es vielleicht Ihre gewünschte Funktion ausführen.
Scott
buslink
joojaa
buslink