[AI CC-CC2022] Новый артборд по выделенным объектам, как?

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

Slx1

Топикстартер
15 лет на форуме
Сообщения
946
Реакции
106
Господа, столкнулся с задачей быстро создать новых артбордов по выделенным объектам в документе
Вариант родной командой, только новый артборд не создается а перемещается на новое выделение...
Нашел пару скриптов только они в 2018 работают некорректно

Буду благодарен за любую полезную информацию!
 
То есть я правильно понимаю, вам надо создать новый артборд по размеру выделенных обьектов, а потом переместить на него выделенные обьекты? Задача деструктивная и в общем случае нетривиальная, но скрипты, реализующие подобное здесь пробегали и тему обсуждали тоже. А зачем вам такое странное? И что именно не работает?
 
Вот наглядная иллюстрация чего нужно
Понятно что в реале не примитивы а сложные макеты
Если ткнете носом в рабочий скрипт буду очень благодарен, то я то я нашел работает криво
 

Вложения

  • 222.png
    222.png
    35.7 КБ · Просм.: 227
А зачем вам такое странное? И что именно не работает?

Родная команда просто переносит артборд на новое выделение, а нужно добавить новый
Скрипты не правильно строят артборд, а команда правильно
 
Родная команда просто переносит артборд на новое выделение, а нужно добавить новый
Скрипты не правильно строят артборд, а команда правильно
Покажите скрипты и что именно они некорректно делают именно в новой версии AI?
 
М?
Снимок экрана 2019-10-11 в 11.52.59.pngСнимок экрана 2019-10-11 в 11.53.02.pngСнимок экрана 2019-10-11 в 11.53.03.png
Предварительно скопировать объекты а потом вставить
 
Покажите скрипты и что именно они некорректно делают именно в новой версии AI?

Не знаю как выслать скрипт, но попробую так:

/*

Author: Alexander Ladygin (i@ladygin.pro)
Program version: Adobe Illustrator CC+
Name: createArtboardsFromTheSelection.jsx;

Copyright (c) 2018
www.ladygin.pro

*/

var win = new Window('dialog', 'Create artboard from the selection \u00A9 www.ladygin.pro');
win.orientation = 'column';
win.alignChildren = ['fill', 'fill'];

var panel = win.add('panel', undefined, 'Selection bounds:');
panel.orientation = 'column';
panel.alignChildren = ['fill', 'fill'];
panel.margins = 20;

var eachSel = panel.add('radiobutton', undefined, 'Each in the selection'),
selBnds = panel.add('radiobutton', undefined, 'Only selection bounds');
eachSel.value = true;

var panel = win.add('panel', undefined, 'Item bounds:');
panel.orientation = 'row';
panel.alignChildren = ['fill', 'fill'];
panel.margins = 20;

var bndsVis = panel.add('radiobutton', undefined, 'Vsiible'),
bndsGeo = panel.add('radiobutton', undefined, 'Geometric');
bndsVis.value = true;

var winButtons = win.add('group');
winButtons.alignChildren = 'center';
winButtons.margins = [0, 0, 0, 0];

var cancel = winButtons.add('button', undefined, 'Cancel');
cancel.helpTip = 'Press Esc to Close';
cancel.onClick = function () { win.close(); }

var ok = winButtons.add('button', [0, 0, 100, 30], 'OK');
ok.helpTip = 'Press Enter to Run';
ok.onClick = startAction;
ok.active = true;


function startAction() {
var items = selection,
i = items.length,
bounds = (bndsVis.value ? 'visible' : 'geometric') + 'Bounds';

if (eachSel.value) {
while (i--) activeDocument.artboards.add(items[bounds]);
}
else {
var x = [], y = [],
w = [], h = [];
while (i--) {
x.push(items[bounds][0]);
y.push(items[bounds][1]);
w.push(items[bounds][2]);
h.push(items[bounds][3]);
};
activeDocument.artboards.add([Math.min.apply(null, x), Math.max.apply(null, y), Math.max.apply(null, w), Math.min.apply(null, h)]);
}

win.close();
}

win.center();
win.show();
 
Не корректно создается размер если в выделенном сложная группа с масками, шрифтами и тд, на простом норм работает
Родная комманда Fit на том же самом отрабатывается корректно
 
Для скриптов вообще то есть специальные тэги на панели 'rtfm''rtfm' Так и что он делает не так?
 
Не корректно создается размер если в выделенном сложная группа с масками, шрифтами и тд,
А вон вы о чем. Я ж сказал - для общего случая нетривиально. Но попробовать пободаться можно, дайте пример на котором работает некорректно
 
К сожалению не могу публично светить макеты, но вот например есть такое:
В макете маской скрыты объекты, после скрипта размер становиться по этим скрытым размерам
 

Вложения

  • 333.png
    333.png
    45.9 КБ · Просм.: 347
А родной Fit тоже самое отрабатывает корректно
 
Вы сам макет выложите, скрипт по скриншотам отлаживать при всем желании не получится, даже нотариально заверенным
 
Хорошо, присылайте
 
Гм, так скрипт, который вы привели не переносит объекты в новый артборд - он фактически делает то же самое, что и встроенная иллюстраторовская команда, только неправильно изза бага в visibleBounds. А где скрипт, который переносит объекты на новую созданную область и где ее создавать?
 
Кстати, создать новую монтажную область с выделенными объектами можно безо всякого скрипта в два клика - Объект-Монтажные области - Подогнать по границам выделенного ; Монтажные области - Дублировать монтажные области
А вот в скрипт такое так просто не загонишь - последняя команда в экшн не пишется и придумать для нее скриптовой аналог не так просто