[AI CC-CC2022] Channel Mixer by S.H.

Чтобы изменить градиент, тебе не просто надо его изменить, а добавить новый с нужной раскраской и плюс скопировать все атрибуты...

хм, вообще в градиенте цвета у GradientStops можно менять
 
Как по мне, так нет других вариантов -- только собирать Swatch через Action. Далее создаются дубликаты -- с ними и работает скрипт. И только когда Ок исходные Swatсh заменяются дубликатами.
 
Как по мне, так нет других вариантов -- только собирать Swatch через Action. Далее создаются дубликаты -- с ними и работает скрипт. И только когда Ок исходные Swatсh заменяются дубликатами.
всё проще, дубликаты не нужны. Мне, по началу, показалось слегка запарным создавать группу свотчей через Recolor Artwork, как было предложено в первой версии скрипта splxgf. Позже им было найдено решение делать то же самое через панель свотчей, что удобнее. Прикручивать action ради двух кликов - это слишком, учитывая, что action постоянно слетает при перезапуске иллюстратора (давний глюк самого ai, есть даже спец. скрипт для перезагрузки action, которым я постоянно пользуюсь после перезапуска).
Вчера переписал скрипт под свотчи, работает. Скорость не замерял, это позже, но кода и массивов поубавилось и это хорошо. После работы доделаю пару мелочей, надо будет кнопки поменять - fill, strokes больше не нужны, будет preview.
 
action постоянно слетает при перезапуске иллюстратора
Я имел ввиду прямо из скрипта записывать его и загружать.
Что-то типа этого.
PHP:
_addSwatchSel()
function _addSwatchSel(){
    var ActionString = [
'/version 3',
'/name [ 4',
'    5f747474',
']',
'/isOpen 1',
'/actionCount 1',
'/action-1 {',
    '/name [ 12',
'        41646453776174634853656c',
'    ]',
    '/keyIndex 0',
    '/colorIndex 0',
    '/isOpen 0',
    '/eventCount 1',
    '/event-1 {',
        '/useRulersIn1stQuadrant 0',
        '/internalName (ai_plugin_swatches)',
        '/localizedName [ 8',
'            5377617463686573',
'        ]',
        '/isOpen 0',
        '/isOn 1',
        '/hasDialog 0',
        '/parameterCount 2',
        '/parameter-1 {',
            '/key 1835363957',
            '/showInPalette -1',
            '/type (enumerated)',
            '/name [ 19',
'                4164642053656c656374656420436f6c6f7273',
'            ]',
'            /value 9',
'        }',
        '/parameter-2 {',
            '/key 1634495605',
            '/showInPalette -1',
            '/type (boolean)',
            '/value 0',
'        }',
'    }',
'}'

    ].join('\n');
    createAction(ActionString);   
    var ActionString = null;
    app.doScript("AddSwatcHSel", "_ttt", false);
    app.unloadAction("_ttt","");
 
}

function createAction (str) {   
        var f = new File('~/_ttt.aia');   
        f.open('w');   
        f.write(str);   
        f.close();   
        app.loadAction(f);   
        f.remove();   
    } 
function readFile (_file) {   
       _file.open('r'); 
        var _arrStr=_file.read();   
        _file.close();   
        return _arrStr
    }
 
Я имел ввиду прямо из скрипта записывать его и загружать.
Что-то типа этого.
PHP:
_addSwatchSel()
function _addSwatchSel(){
    var ActionString = [
'/version 3',
'/name [ 4',
'    5f747474',
']',
'/isOpen 1',
'/actionCount 1',
'/action-1 {',
    '/name [ 12',
'        41646453776174634853656c',
'    ]',
    '/keyIndex 0',
    '/colorIndex 0',
    '/isOpen 0',
    '/eventCount 1',
    '/event-1 {',
        '/useRulersIn1stQuadrant 0',
        '/internalName (ai_plugin_swatches)',
        '/localizedName [ 8',
'            5377617463686573',
'        ]',
        '/isOpen 0',
        '/isOn 1',
        '/hasDialog 0',
        '/parameterCount 2',
        '/parameter-1 {',
            '/key 1835363957',
            '/showInPalette -1',
            '/type (enumerated)',
            '/name [ 19',
'                4164642053656c656374656420436f6c6f7273',
'            ]',
'            /value 9',
'        }',
        '/parameter-2 {',
            '/key 1634495605',
            '/showInPalette -1',
            '/type (boolean)',
            '/value 0',
'        }',
'    }',
'}'

    ].join('\n');
    createAction(ActionString); 
    var ActionString = null;
    app.doScript("AddSwatcHSel", "_ttt", false);
    app.unloadAction("_ttt","");
 
}

function createAction (str) { 
        var f = new File('~/_ttt.aia'); 
        f.open('w'); 
        f.write(str); 
        f.close(); 
        app.loadAction(f); 
        f.remove(); 
    }
function readFile (_file) { 
       _file.open('r');
        var _arrStr=_file.read(); 
        _file.close(); 
        return _arrStr
    }
попробовал, работает. Таким способом отпадает необходимость создавать группу цветов вручную. Спасибо.

Напишите, какие команды для action использовали, только swatches -> add selected colors?
 
Последнее редактирование:
Есть проблема, с белым 0/0/0/0 и черным 0/0/0/100. Создается Swatch не глобальный! Как обойти не знаю.
 
Через New Color Group создаются глобальные, но выскакивает окно с заданием имени группы. Плохо...
 
Есть проблема, с белым 0/0/0/0 и черным 0/0/0/100. Создается Swatch не глобальный! Как обойти не знаю.
можно вручную добавить белый и чёрный глобальные свотчи и присвоить их каждому соответ. объекту.
Это плохой вариант. Возвращаемся к варианту создания группы свотчей вручную.
 
Может эти цвета просто и не трогать?
 
Ну на белый-то можно забить, а вот черный надо как-то искать.
 
Я к тому,что, может, не создавать дубликат черного, а как то уже готовый использовать?
 
При ручном создании группы свотчей черный перекрашивается в глобальный.
 
нет, я имею в виду то, что написал.
у меня есть экшен из скрипта, который создает новую группу свотчей, и диалог не показывается

у add selected colors диалога вообще нет, там видимо добавляли что-то
 
Последнее редактирование: