是否有可用于 Illustrator 的脚本,允许释放所有剪贴蒙版、分组和复合路径?本质上是一个可以将文件分解为原始部分的脚本。
释放所有剪贴蒙版和分组等的 Illustrator 脚本
平面设计
adobe-illustrator
自动化
插画脚本
剪贴蒙版
2022-02-04 18:15:07
4个回答
您不需要脚本即可一次性释放所有剪贴蒙版,只需执行以下操作:
- 选择->对象->剪贴蒙版
- 编辑->清除
但也可以通过脚本完成:
app.executeMenuCommand("Clipping Masks menu item");
app.executeMenuCommand("clear");
取消组合所有对象并释放所有复合路径也是如此:
app.executeMenuCommand("selectall");
app.executeMenuCommand("ungroup");
app.executeMenuCommand("noCompoundPath");
给你(这不是超级彻底的测试,如果它有一个错误让我知道我会支持你):
#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 );
}
}
})();
但是我个人不会使用这种东西。更好地进行选择性扁平化并具有更多的协同效益。
注意:这适用于整个文件。如果您希望它仅适用于选择,请将行更改var objs = app.activeDocument.pageItems;
为var objs = app.activeDocument.selection;
我认为根据需要交替使用 CMD-A 和 CMD-8 键命令并不难,但是如果您愿意,您可以在一个动作中进行 10 次迭代并根据需要播放它。
其它你可能感兴趣的问题