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

  • Автор темы Автор темы Slx1
  • Дата начала Дата начала
Гм, так скрипт, который вы привели не переносит объекты в новый артборд - он фактически делает то же самое, что и встроенная иллюстраторовская команда, только неправильно изза бага в visibleBounds. А где скрипт, который переносит объекты на новую созданную область и где ее создавать?

Нет, мне хватит создания НОВОГО атрборда по выделенным объектам
 
Кстати, создать новую монтажную область с выделенными объектами можно безо всякого скрипта в два клика - Объект-Монтажные области - Подогнать по границам выделенного ; Монтажные области - Дублировать монтажные области
А вот в скрипт такое так просто не загонишь - последняя команда в экшн не пишется и придумать для нее скриптовой аналог не так просто

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

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

Вложения

  • 222.png
    222.png
    35.7 КБ · Просм.: 213
Объекты под артборды все разные
Я чтото совсем запутался
Вы выделяете объект, подгоняете под него артборд затем дублируете артбоард с выделенным объектом
Это ли не то, что вам надо?
 
Я чтото совсем запутался
Вы выделяете объект, подгоняете под него артборд затем дублируете артбоард с выделенным объектом
Это ли не то, что вам надо?

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

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

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

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

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

и так 50 раз?)
 
А приведенным скриптом корректно без шансов?
 
А приведенным скриптом корректно без шансов?
Ну теоретически новый артборд можно скриптом создавать, но не совсем понятно в каком месте :(
Я ж правильно понимаю вам артборд надо именно в новом месте создавать?
 
Ну теоретически новый артборд можно скриптом создавать, но не совсем понятно в каком месте :(

Ну вот скрипт как то создает....(
Кривовато только на сложных группах
 
Скрипт создает на месте объекта - так же как и встроенная команда
Или вам так и надо??

Мне так и надо!!!
И мне надо чтобы размеры артборда были корректные!!!
 
Что ж вы сразу не сказали!
Примерно так:
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