解决想要“自动分组”所有画板问题的最佳方法是什么?
与拖动每个画板的选择框,然后按 CMD+G 不同,每个页面有 8 个画板,我可能有 80-150 页要浏览。
对于那些精通 javascript 的人来说,这段代码是否类似于可行的代码,或者我应该将其打包?
var doc = app.activeDocument;
for (var i = 0; i < doc.artboards.length; i++) {
doc.artboards.setActiveArtboardIndex(i);
var artboard = doc.artboards[i];
var itemsOnArtboard = [];
for (var j = 0; j < doc.pageItems.length; j++) {
var item = doc.pageItems[j];
if (artboard.artboardRect.toString() == item.visibleBounds.toString()) {
itemsOnArtboard.push(item);
}
}
if (itemsOnArtboard.length > 1) {
var group = doc.groupItems.add();
for (var k = 0; k < itemsOnArtboard.length; k++) {
itemsOnArtboard[k].moveToEnd(group);
}
}
}
我希望 Illustrator 能够循环浏览每个画板,并对每个画板的内容进行分组,直到最终到达最后一个画板。
代码似乎执行了,沙滩球旋转了一下,但没有结果。
大概是这样的:
var doc = app.activeDocument;
for (var i=0; i<doc.artboards.length; i++) {
var rect = doc.artboards[i].artboardRect;
var box = doc.pathItems.rectangle(rect[1], rect[0], rect[2]-rect[0], -rect[3]+rect[1]);
box.filled = false;
box.stroked = false;
doc.artboards.setActiveArtboardIndex(i);
doc.selectObjectsOnActiveArtboard();
app.executeMenuCommand('group');
}
该脚本在活动文档的所有画板周围创建框,并在每个画板上对其所有项目进行分组。