//@target illustrator
(function doc_dupl() {
var doc = activeDocument,
docPath = doc.fullName + '',
docFile = new File(docPath),
docFileCopyPath = docPath.slice(0, -3) + '_copy.ai',
docFileCopy = new File(docFileCopyPath);
if (!doc.saved) doc.save();
docFile.copy(docFileCopyPath);
open(docFileCopy);
}());
Гм, тогда боюсь, что дублирование содержимого - гораздо более верный способ убить иллюстраторна некоторых файлах виснет иллюстратор
function _sortLayer(_Doc){
//alert(_Doc.layers.length)
for (var i=0;i<_Doc.layers.length;i++){
_Doc.layers.visible=true;
_Doc.layers.locked=false;
if (_Doc.layers.name.indexOf(noDelIndicate)==-1){varLayer.push(_Doc.layers)}else{noDelLayer.push(_Doc.layers)}
}
Большое спасибо! Странно, что он работал.вот тут явно ошибка
Код:function _sortLayer(_Doc){ //alert(_Doc.layers.length) for (var i=0;i<_Doc.layers.length;i++){ _Doc.layers.visible=true; _Doc.layers.locked=false; if (_Doc.layers.name.indexOf(noDelIndicate)==-1){varLayer.push(_Doc.layers)}else{noDelLayer.push(_Doc.layers)} }
в цикле при обращении к слоям нет индекса i нигде
varLayer и noDelLayer у вас объявлены в конце основного цикла внутри его области видимости еще раз, поэтому при втором проходе там по идее должны после вызова _sortLayer остаться пустые массивы.
undo два раза не уверен что нужно делать, но в точке, куда хотите вернуться по undo нужно поставить app.redraw()
вообще я бы не рисковал с undo, а открывал каждый раз оригинальный файл заново, удалял слои, сохранял pdf, и закрывал оригинал без сохранения
Вместо undo() каждый раз открывать исходник конечно можно, но будет ли это надежней?
Document.selectObjectsOnActiveArtboard (): Boolean
Adobe Illustrator 21 Type Library
Select art objects in active artboard.