[AI CC2023] Не встраивает связанные файлы при сохранении Ai после обновления программы.

  • Автор темы Автор темы KDbled
  • Дата начала Дата начала

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Здраствуйте.
Обновился иллюстратор до последней версии (официал 27.6.1 64bit) и перестали встраиваться связанные файлы при сохранении в ai.

Галка "Включить связанные файлы" стоит, а файл не встраивается.

Может есть метод записать линки через экшн или есть скриптик. Приходится встраивать всё руками на куче файлов.

1687765498917.png
 
Код:
#target illustrator
var pItems = app.activeDocument.placedItems;
for (p=pItems.length-1;p>=0;p--) {
    pItems[p].embed()
}
 
Скрипт работает, но когда картинок кажется не больше 3 шт. Если больше линки начинают прыгать по макетам.

Нашел на забугорном форуме очень похожий код. Мне показалось, что работает он дольше, но стабильно:

Код:
if ( app.documents.length > 0 ) {
    while ( app.activeDocument.placedItems.length > 0 ) {
        placedArt = app.activeDocument.placedItems[0];
        placedArt.embed();
    }
}

Думаю дело исключительно в цифре массива, в данном скрипте обращение всегда к [0].
 
  • Спасибо
Реакции: _MBK_
Еще можно скопировать placedItems в новый отдельный массив и работать с ним без бубна
 
  • Спасибо
Реакции: Drawer
в новый отдельный массив и работать с ним без бубна
Код:
#target illustrator
if ( app.documents.length > 0 ) {
    var arrObj = [];
    for (var i=0;i<app.activeDocument.placedItems.length;i++) {
        arrObj.push(app.activeDocument.placedItems[i]);
    }
    for (var i=0;i<arrObj.length;i++) {
        arrObj[i].embed();
    };
}
Да вроде и так должно работать было... Но на скорость по идее не повлияет, так что да, это наверное более правильное решение.
Если больше линки начинают прыгать по макетам
Не совсем понял... что значит "прыгать по макетам"? :)
 
Последнее редактирование:
  • Спасибо
Реакции: almastu и Drawer
Не помогло, после 6 линков, остальные начинает хаотично бросать по всем монтажкам.

Нашел какой-то якобы помогающий код, но естесственно не понимаю до конца его сути.

Цитирую иностранного гражданина:
Thanks Welz, I'm still seeing the same result, the Graphics are changing position as they embed.

The code that worked for me is below. I had to set an array to stop the Images from Jumping:

Код:
var idoc = app.activeDocument.placedItems;
var iplaced = app.activeDocument.placedItems[0, 1];{
var  p = 0; p > iplaced.length; p++;
var iplaced = app.activeDocument.placedItems[0];
iplaced.embed();
var iplaced = app.activeDocument.placedItems[1];
iplaced.embed();
var iplaced = app.activeDocument.placedItems[1];
iplaced.embed();

У самого в голове только идея прокручивать Ваш код заново несколько раз по 6 штук за 1 присест.
 
Последнее редактирование:
Не помогло, после 6 линков, остальные начинает хаотично бросать по всем монтажкам.

Нашел какой-то якобы помогающий код, но естесственно не понимаю до конца его сути.

Цитирую иностранного гражданина:


У самого в голове только идея прокручивать Ваш код заново несколько раз по 6 штук за 1 присест.
Через slice тоже не работает?
Воткните после каждого embed() животворящую строку redraw();
 
  • Спасибо
Реакции: KDbled
хаотично бросать по всем монтажкам
Я опять ничего не понял :) Но судя по всему после внедрения объект выделяется в AI и тот пытается отобразить артборд на котором текущий объект находится, у меня CS6 и такого не происходит. :) Надо пробовать в более новом видимо.
 
Иллюстратор 25.4.1, первая версия скрипта, 16 линков, все на месте.
 
  • Спасибо
Реакции: Chiga и Drawer
Через slice тоже не работает?
Воткните после каждого embed() животворящую строку redraw();

Redraw() сработал.

Конечный код:

Код:
if ( app.documents.length > 0 ) {
    while ( app.activeDocument.placedItems.length > 0 ) {
        placedArt = app.activeDocument.placedItems[0];
        placedArt.embed();
        redraw();
    }
}