[AI CC-CC2022] Пакетная обработка (изменение размера монтажной области)

  • Автор темы Автор темы Sun4es
  • Дата начала Дата начала
Action по замене текущего Artboard на новый.

Работает только с ОДНИМ Artboard.
Заменяет текущий Artboard на новый размером 3000ps x 3000ps.
Увеличивает содержимое старого Artboard на 300% и переносит его на новый Artboard.

Необходимо для работы:
1.Держать на рабочем поле открытой палитру Artboards.
2.В палитре Align поставить галочку на Align to Artboard !!!

Инструкция,как пользоваться:
1.Откройте файл.
2.Запустите Action.
3.После команды STOP в палитре Artboards:
а.Выделить в стопке самый верхний Artboard.
b.Нажмите на три полоски в правом верхнем углу.
c.В открывшемся списке Delete Artboards.
4.Запустите Action.
 

Вложения

Инструкция,как пользоваться:
1.Откройте файл.
2.Запустите Action.
3.После команды STOP в палитре Artboards:
а.Выделить в стопке самый верхний Artboard.
b.Нажмите на три полоски в правом верхнем углу.
c.В открывшемся списке Delete Artboards.
4.Запустите Action.
и так 100 раз? :)) Веселый Вы парень :)
 
Ну, а я бы сделал так, чтобы ручками вообще не шевелить. (А можно вообще сделать один скрипт, в который запихнуть экшн и прочее, и прочее... )
Как и писал ранее:
- создать прямоугольник размером в артбоард
- Cut
- Select All
- Scale Tool (S) (300%)
- вставить вырезанный прямоугольник (Paste in front)
- Scale Tool (S) (300%)
- прямоугольник Convert to artboards
- insert menu item (указываем скрипт, который грохает ненужный артбоард)

сам скрипт (сохраняем в js. файлик в папку со скриптами):
Код:
activeDocument.artboards[0].remove();
 
  • Спасибо
Реакции: ITIT

Не по теме:
сильвупле =)
 
Теперь скрипт можно вставить в мой Action и можно спокойно пакетно обрабатывать
хоть 1000 файлов.
 
Ну, а я бы сделал так, чтобы ручками вообще не шевелить. (А можно вообще сделать один скрипт, в который запихнуть экшн и прочее, и прочее... )
Как и писал ранее:
- создать прямоугольник размером в артбоард
- Cut
- Select All
- Scale Tool (S) (300%)
- вставить вырезанный прямоугольник (Paste in front)
- Scale Tool (S) (300%)
- прямоугольник Convert to artboards
- insert menu item (указываем скрипт, который грохает ненужный артбоард)

сам скрипт (сохраняем в js. файлик в папку со скриптами):
Код:
activeDocument.artboards[0].remove();
Скрипт разве можно в экшн запихнуть?
 
Поднять якорь!
скрипт, в который запихнуть экшн
ЗЫ. Пожалуй, напишу ещё разборчивее. Берём экшн и запихиваем его в скрипт. И всё делаем одним скриптом
 
Последнее редактирование:
  • Спасибо
Реакции: Gad
Люди, у которых в епсах есть монтажные области и пикселы, и не такое могут!
А в чём проблема запихнуть скрипт в экшн?
- insert menu item (указываем скрипт)

Это ли не то?
 
  • Спасибо
Реакции: ~RA~
 
Как меня радует этот форум - сами спросили - сами ответили '))'
 
  • Спасибо
Реакции: Gad
JavaScript:
#target Illustrator
var scale = "250.0"; // задаем масштаб в процентах

if (app.activeDocument.artboards.length == 1) {
    action(scale);
    redraw();
};

function action(scale) {
    //redraw();
    var ActionString = [ '/version 3',
    '/name [ 12',
    '    536372697074416374696f6e',
    ']',
    '/isOpen 1',
    '/actionCount 1',
    '/action-1 {',
    '    /name [ 14',
    '        5363616c656453656c6563746564',
    '    ]',
    '    /keyIndex 0',
    '    /colorIndex 0',
    '    /isOpen 0',
    '    /eventCount 3',
    '    /event-1 {',
    '        /useRulersIn1stQuadrant 0',
    '        /internalName (adobe_commandManager)',
    '        /localizedName [ 16',
    '            416363657373204d656e75204974656d',
    '        ]',
    '        /isOpen 0',
    '        /isOn 1',
    '        /hasDialog 0',
    '        /parameterCount 3',
    '        /parameter-1 {',
    '            /key 1769238125',
    '            /showInPalette -1',
    '            /type (ustring)',
    '            /value [ 19',
    '                73656c656374616c6c696e617274626f617264',
    '            ]',
    '        }',
    '        /parameter-2 {',
    '            /key 1818455661',
    '            /showInPalette -1',
    '            /type (ustring)',
    '            /value [ 22',
    '                53656c65637420416c6c20496e20417274626f617264',
    '            ]',
    '        }',
    '        /parameter-3 {',
    '            /key 1668114788',
    '            /showInPalette -1',
    '            /type (integer)',
    '            /value 1934727834',
    '        }',
    '    }',
    '    /event-2 {',
    '        /useRulersIn1stQuadrant 0',
    '        /internalName (adobe_scale)',
    '        /localizedName [ 5',
    '            5363616c65',
    '        ]',
    '        /isOpen 1',
    '        /isOn 1',
    '        /hasDialog 1',
    '        /showDialog 0',
    '        /parameterCount 4',
    '        /parameter-1 {',
    '            /key 1970169453',
    '            /showInPalette -1',
    '            /type (boolean)',
    '            /value 1',
    '        }',
    '        /parameter-2 {',
    '            /key 1818848869',
    '            /showInPalette -1',
    '            /type (boolean)',
    '            /value 1',
    '        }',
    '        /parameter-3 {',
    '            /key 1935895653',
    '            /showInPalette -1',
    '            /type (unit real)',
    '            /value '+scale,
    '            /unit 592474723',
    '        }',
    '        /parameter-4 {',
    '            /key 1668247673',
    '            /showInPalette -1',
    '            /type (boolean)',
    '            /value 0',
    '        }',
    '    }',
    '    /event-3 {',
    '        /useRulersIn1stQuadrant 0',
    '        /internalName (adobe_deselectAll)',
    '        /localizedName [ 12',
    '            446573656c65637420416c6c',
    '        ]',
    '        /isOpen 0',
    '        /isOn 1',
    '        /hasDialog 0',
    '        /parameterCount 0',
    '    }',
    '}'].join('\n');

    var f = new File('~/ScriptAction.aia');
    f.open('w');
    f.write(ActionString);
    f.close();
    loadAction (f);
    f.remove();
    var myScriptString = [ 'var ar = app.activeDocument.artboards[0].artboardRect;',
    'var artLayer = app.activeDocument.layers.add();',
    'var rect = artLayer.pathItems.rectangle (ar[1], ar[0], ar[2]-ar[0], ar[1]-ar[3]);',
    'app.doScript("ScaledSelected", "ScriptAction");',
    'unloadAction("ScriptAction", "");',
    'var k = '+scale+'/100-1;',
    'app.activeDocument.artboards[0].artboardRect=[ar[0]-(ar[2]-ar[0])*k/2, ar[1]-(ar[3]-ar[1])*k/2, ar[2]+(ar[2]-ar[0])*k/2, ar[3]+(ar[3]-ar[1])*k/2];',
    'artLayer.remove();'].join('\n');
    var bt = new BridgeTalk;
    bt.target = "illustrator";
    bt.body = myScriptString;
    bt.send();
    ActionString = null;
};
 
Последнее редактирование:
  • Спасибо
Реакции: keramer82 и Chiga
Апплодирую номинанту на извращенное решение, но спросонья не вкурил, зачем из скрипта вызывать скрипт через бриджталк? 'hmmm'
JavaScript:
#target Illustrator
var scale = "250.0"; // задаем масштаб в процентах

if (app.activeDocument.artboards.length == 1) {
    action(scale);
    redraw();
};

function action(scale) {
    //redraw();
    var ActionString = [ '/version 3',
    '/name [ 12',
    '    536372697074416374696f6e',
    ']',
    '/isOpen 1',
    '/actionCount 1',
    '/action-1 {',
    '    /name [ 14',
    '        5363616c656453656c6563746564',
    '    ]',
    '    /keyIndex 0',
    '    /colorIndex 0',
    '    /isOpen 0',
    '    /eventCount 3',
    '    /event-1 {',
    '        /useRulersIn1stQuadrant 0',
    '        /internalName (adobe_commandManager)',
    '        /localizedName [ 16',
    '            416363657373204d656e75204974656d',
    '        ]',
    '        /isOpen 0',
    '        /isOn 1',
    '        /hasDialog 0',
    '        /parameterCount 3',
    '        /parameter-1 {',
    '            /key 1769238125',
    '            /showInPalette -1',
    '            /type (ustring)',
    '            /value [ 19',
    '                73656c656374616c6c696e617274626f617264',
    '            ]',
    '        }',
    '        /parameter-2 {',
    '            /key 1818455661',
    '            /showInPalette -1',
    '            /type (ustring)',
    '            /value [ 22',
    '                53656c65637420416c6c20496e20417274626f617264',
    '            ]',
    '        }',
    '        /parameter-3 {',
    '            /key 1668114788',
    '            /showInPalette -1',
    '            /type (integer)',
    '            /value 1934727834',
    '        }',
    '    }',
    '    /event-2 {',
    '        /useRulersIn1stQuadrant 0',
    '        /internalName (adobe_scale)',
    '        /localizedName [ 5',
    '            5363616c65',
    '        ]',
    '        /isOpen 1',
    '        /isOn 1',
    '        /hasDialog 1',
    '        /showDialog 0',
    '        /parameterCount 4',
    '        /parameter-1 {',
    '            /key 1970169453',
    '            /showInPalette -1',
    '            /type (boolean)',
    '            /value 1',
    '        }',
    '        /parameter-2 {',
    '            /key 1818848869',
    '            /showInPalette -1',
    '            /type (boolean)',
    '            /value 1',
    '        }',
    '        /parameter-3 {',
    '            /key 1935895653',
    '            /showInPalette -1',
    '            /type (unit real)',
    '            /value '+scale,
    '            /unit 592474723',
    '        }',
    '        /parameter-4 {',
    '            /key 1668247673',
    '            /showInPalette -1',
    '            /type (boolean)',
    '            /value 0',
    '        }',
    '    }',
    '    /event-3 {',
    '        /useRulersIn1stQuadrant 0',
    '        /internalName (adobe_deselectAll)',
    '        /localizedName [ 12',
    '            446573656c65637420416c6c',
    '        ]',
    '        /isOpen 0',
    '        /isOn 1',
    '        /hasDialog 0',
    '        /parameterCount 0',
    '    }',
    '}'].join('\n');

    var f = new File('~/ScriptAction.aia');
    f.open('w');
    f.write(ActionString);
    f.close();
    loadAction (f);
    f.remove();
    var myScriptString = [ 'var ar = app.activeDocument.artboards[0].artboardRect;',
    'var artLayer = app.activeDocument.layers.add();',
    'var rect = artLayer.pathItems.rectangle (ar[1], ar[0], ar[2]-ar[0], ar[1]-ar[3]);',
    'app.doScript("ScaledSelected", "ScriptAction");',
    'unloadAction("ScriptAction", "");',
    'var k = '+scale+'/100-1;',
    'app.activeDocument.artboards[0].artboardRect=[ar[0]-(ar[2]-ar[0])*k/2, ar[1]-(ar[3]-ar[1])*k/2, ar[2]+(ar[2]-ar[0])*k/2, ar[3]+(ar[3]-ar[1])*k/2];',
    'artLayer.remove();'].join('\n');
    var bt = new BridgeTalk;
    bt.target = "illustrator";
    bt.body = myScriptString;
    bt.send();
    ActionString = null;
};
 
не вкурил, зачем из скрипта вызывать скрипт через бриджталк?
Смысла делать этот скрипт как таковой мне не было, возился как раз с бриджталк и запуском скрипта содержащего экшен через экшен :) Вот этот пример и взял на опыты :)
 
Как меня радует этот форум - сами спросили - сами ответили '))'
А если посмотреть глазами оптимиста?
Задал человек вопрос,послушал советы умных и добрых людей и сам потом нашёл решение.
 
Не сочтите за оффтоп и объясните пжл., где в епсе пиксели и почему их хочет какой-то сток?
 

Не по теме:

где в епсе пиксели и почему их хочет какой-то сток?
Роман, не видит суслика? :))


Я например сам в непонятках :) сильно подозреваю что если разобраться, то проблема как и решение будут совсем иными, нежели увеличение артборда вместе с содержимым.
 
Чтобы не создавать новую тему,задам вопрос здесь.
Можно ли создать скрипт выполняющий команду ,,Удалить пустой(ые) артборд(ы),,
(Delete Empty Artboards)?
Заранее благодарю.
 
Последнее редактирование: