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

KDbled

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

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

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

1687765498917.png
 

Drawer

Участник
Сообщения
1 824
Реакции
806
Код:
#target illustrator
var pItems = app.activeDocument.placedItems;
for (p=pItems.length-1;p>=0;p--) {
    pItems[p].embed()
}
 

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Скрипт работает, но когда картинок кажется не больше 3 шт. Если больше линки начинают прыгать по макетам.

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

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

Думаю дело исключительно в цифре массива, в данном скрипте обращение всегда к [0].
 
  • Спасибо
Реакции: _MBK_

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 236
Реакции
10 852
Еще можно скопировать placedItems в новый отдельный массив и работать с ним без бубна
 
  • Спасибо
Реакции: Drawer

Drawer

Участник
Сообщения
1 824
Реакции
806
в новый отдельный массив и работать с ним без бубна
Код:
#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();
    };
}
Да вроде и так должно работать было... Но на скорость по идее не повлияет, так что да, это наверное более правильное решение.
Если больше линки начинают прыгать по макетам
Не совсем понял... что значит "прыгать по макетам"? :)
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 236
Реакции
10 852
  • Спасибо
Реакции: almastu и Drawer

Drawer

Участник
Сообщения
1 824
Реакции
806

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Не помогло, после 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 присест.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 236
Реакции
10 852
Не помогло, после 6 линков, остальные начинает хаотично бросать по всем монтажкам.

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

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


У самого в голове только идея прокручивать Ваш код заново несколько раз по 6 штук за 1 присест.
Через slice тоже не работает?
Воткните после каждого embed() животворящую строку redraw();
 
  • Спасибо
Реакции: KDbled

Drawer

Участник
Сообщения
1 824
Реакции
806
хаотично бросать по всем монтажкам
Я опять ничего не понял :) Но судя по всему после внедрения объект выделяется в AI и тот пытается отобразить артборд на котором текущий объект находится, у меня CS6 и такого не происходит. :) Надо пробовать в более новом видимо.
 

Chiga

15 лет на форуме
Сообщения
804
Реакции
519
Иллюстратор 25.4.1, первая версия скрипта, 16 линков, все на месте.
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 919
Реакции
3 469

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 919
Реакции
3 469

suntory

Administrator
15 лет на форуме
Сообщения
23 475
Реакции
12 485
  • Спасибо
Реакции: Chiga и Drawer

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Через slice тоже не работает?
Воткните после каждого embed() животворящую строку redraw();

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

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

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