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

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Гм, так скрипт, который вы привели не переносит объекты в новый артборд - он фактически делает то же самое, что и встроенная иллюстраторовская команда, только неправильно изза бага в visibleBounds. А где скрипт, который переносит объекты на новую созданную область и где ее создавать?

Нет, мне хватит создания НОВОГО атрборда по выделенным объектам
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Кстати, создать новую монтажную область с выделенными объектами можно безо всякого скрипта в два клика - Объект-Монтажные области - Подогнать по границам выделенного ; Монтажные области - Дублировать монтажные области
А вот в скрипт такое так просто не загонишь - последняя команда в экшн не пишется и придумать для нее скриптовой аналог не так просто

Хорошо, я сдублирую.... а перенести НОВЫЕ объекты на нее руками?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Тогда не пойму, чем вас не устраивает встроенная команда ?

Предствьте что у вас в макете 50 объектов (разных) по которым надо создать монтажные области (на каждый свою)
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Все объекты РАЗНЫЕ
 

Вложения

  • 222.png
    222.png
    35.7 КБ · Просм.: 189

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Объекты под артборды все разные
Я чтото совсем запутался
Вы выделяете объект, подгоняете под него артборд затем дублируете артбоард с выделенным объектом
Это ли не то, что вам надо?
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Я чтото совсем запутался
Вы выделяете объект, подгоняете под него артборд затем дублируете артбоард с выделенным объектом
Это ли не то, что вам надо?

Наверно плохо объясняю(

У нас файл, в нем несколько объектов (разных, разного размера и содержания)

Нужно под КАЖДЫЙ объект подложить артборд размером с этот объект
Приведенный скрипт это делает, только некорректно

Если использовать родную команду Fit^ то это нормально работает только на один объект, вы выделяете следующий объект и артборд перепрыгивает уже на него

Ка то так)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
вы выделяете следующий объект и артборд перепрыгивает уже на него
Ну хорошо - в три команды - выделить объект - подогнать артборд - продублировать артборд - снова выделить первый артборд - выделить новый объект - снова продублировать... и т д
К сожалению почему то индусы забыли сделать запись в экшн дублирования артбордов :(
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Ну хорошо - в три команды - выделить объект - подогнать артборд - продублировать артборд - снова выделить первый артборд - выделить новый объект - снова продублировать... и т д
К сожалению почему то индусы забыли сделать запись в экшн дублирования артбордов :(

и так 50 раз?)
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
А приведенным скриптом корректно без шансов?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
А приведенным скриптом корректно без шансов?
Ну теоретически новый артборд можно скриптом создавать, но не совсем понятно в каком месте :(
Я ж правильно понимаю вам артборд надо именно в новом месте создавать?
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Ну теоретически новый артборд можно скриптом создавать, но не совсем понятно в каком месте :(

Ну вот скрипт как то создает....(
Кривовато только на сложных группах
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Скрипт создает на месте объекта - так же как и встроенная команда
Или вам так и надо??

Мне так и надо!!!
И мне надо чтобы размеры артборда были корректные!!!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Что ж вы сразу не сказали!
Примерно так:
JavaScript:
/*

  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 fitArtboard(item)
{
    app.executeMenuCommand("deselectall");
    item.selected=true;
    app.redraw();
    app.executeMenuCommand("Fit Artboard to selected Art");
}

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

    if (eachSel.value) {
        while (i--) {
            activeDocument.artboards.add(items[i][bounds]);
            fitArtboard(items[i]);
         }
    }
        else {
            var x = [], y = [],
                w = [], h = [];
            while (i--) {
                x.push(items[i][bounds][0]);
                y.push(items[i][bounds][1]);
                w.push(items[i][bounds][2]);
                h.push(items[i][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)]);
            fitArtboard(items[i]);
        }
    
    win.close();
}

win.center();
win.show();
 
  • Спасибо
Реакции: Haka3aTe/|b и Slx1