- Сообщения
- 277
- Реакции
- 24
Всем привет, написал скрипт, который создаёт обводку в цвет заливки, делает скругления и прочее. Это треппинг.
Если запускать скрипт через панель ScriptBay, всё работает как надо, если закидывать его из папки в окно иллюстратора, выделение сбрасывается и не у всех выделенных объектов задаются нужные параметры, например скругление обводки. Пробовал в двух версиях илла, результат один. Как вариант думаю сохранять выделенные объекты в массиве и в конце ещё раз выделять объекты и проходится по второму кругу.
Если запускать скрипт через панель ScriptBay, всё работает как надо, если закидывать его из папки в окно иллюстратора, выделение сбрасывается и не у всех выделенных объектов задаются нужные параметры, например скругление обводки. Пробовал в двух версиях илла, результат один. Как вариант думаю сохранять выделенные объекты в массиве и в конце ещё раз выделять объекты и проходится по второму кругу.
JavaScript:
// Stroke as Fill
// make stroke the same color as fill and make it inside with overprint and rounded cap and join
// by S. Hoffman 03 2021
var doc = app.activeDocument;
var sel = doc.selection;
var mmp = 2.8346457481;
for ( i = 0; i < sel.length; i++ )
{
sel[ i ].stroked = true;
sel[ i ].strokeWidth = 0.3 * mmp;
sel[ i ].strokeColor = sel[ i ].fillColor;
sel[ i ].strokeOverprint = true;
sel[ i ].strokeCap = StrokeCap.ROUNDENDCAP; //ROUNDENDCAP, PROJECTINGENDCAP,
sel[ i ].strokeJoin = StrokeJoin.ROUNDENDJOIN; //BEVELENDJOIN, MITERENDJOIN
/////////////////////////////////
_addSwatchSel()
function _addSwatchSel() { // align stroke to inside via action
var ActionString = [
'/version 3',
'/name [ 3',
' 536574',
']',
'/isOpen 1',
'/actionCount 1',
'/action-1 {',
' /name [ 3',
' 333333',
' ]',
' /keyIndex 0',
' /colorIndex 0',
' /isOpen 1',
' /eventCount 1',
' /event-1 {',
' /useRulersIn1stQuadrant 0',
' /internalName (ai_plugin_setStroke)',
' /localizedName [ 10',
' 536574205374726f6b65',
' ]',
' /isOpen 0',
' /isOn 1',
' /hasDialog 0',
' /parameterCount 1',
' /parameter-1 {',
' /key 1634494318',
' /showInPalette -1',
' /type (enumerated)',
' /name [ 6',
' 496e73696465',
' ]',
' /value 1',
' }',
' }',
'}'
].join('\n');
createAction(ActionString);
var ActionString = null;
app.doScript("333", "Set", false);
app.unloadAction("Set","");
}
function createAction (str) {
var f = new File('~/temp.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
}
} // END for ( i = 0; i < sel.length; i++ )
// с певрого раза не круглит для нескольких объектов обводки, приходится пускать второй круг
for ( i = 0; i < sel.length; i++ )
{
sel[ i ].strokeCap = StrokeCap.ROUNDENDCAP; //ROUNDENDCAP, PROJECTINGENDCAP,
sel[ i ].strokeJoin = StrokeJoin.ROUNDENDJOIN; //BEVELENDJOIN, MITERENDJOIN
}