app.preferences.setBooleanPreference('ShowExternalJSXWarning', false);
function main() {
if (!isCorrectEnv('selection')) return;
var items = getStrokedItems(selection, true);
if (!items.length) return;
var totalW = getTotalWidth(items),
avgW = 1 * (totalW / items.length).toFixed(2);
items = getStrokedItems(selection, false);
for (var i = 0, len = items.length; i < len; i++) {
setStrokeWidth(items[i], avgW);
}
}
function isCorrectEnv() {
var args = ['app', 'document'];
args.push.apply(args, arguments);
for (var i = 0; i < args.length; i++) {
var arg = args[i].toString().toLowerCase();
switch (true) {
case /app/g.test(arg):
if (!/illustrator/i.test(app.name)) {
alert('Wrong application\nRun script from Adobe Illustrator', 'Script error');
return false;
}
break;
case /version/g.test(arg):
var rqdVers = parseFloat(arg.split(':')[1]);
if (parseFloat(app.version) < rqdVers) {
alert('Wrong app version\nSorry, script only works in Illustrator v.' + rqdVers + ' and later', 'Script error');
return false;
}
break;
case /document/g.test(arg):
if (!documents.length) {
alert('No documents\nOpen a document and try again', 'Script error');
return false;
}
break;
case /selection/g.test(arg):
if (!selection.length || selection.typename === 'TextRange') {
alert('Nothing selected\nPlease, select two or more paths', 'Script error');
return false;
}
break;
}
}
return true;
}
function getStrokedItems(coll, isFirstPath) {
var out = [];
for (var i = 0; i < coll.length; i++) {
var item = coll[i];
if (isType(item, 'group') && item.pageItems.length) {
out = [].concat(out, getStrokedItems(item.pageItems));
} else if (isType(item, '^compound') && item.pathItems.length) {
if (isFirstPath) {
if (isHasStroke(item.pathItems[0])) out.push(item.pathItems[0]);
} else {
out = [].concat(out, getStrokedItems(item.pathItems));
}
} else if (isType(item, 'path|text')) {
if (isHasStroke(item)) out.push(item);
}
}
return out;
}
function isType(item, type) {
var regexp = new RegExp(type, 'i');
return regexp.test(item.typename);
}
function isHasStroke(item) {
if (isType(item, 'text')) {
var attr = item.textRange.characterAttributes;
return !/nocolor/i.test(attr.strokeColor) && attr.strokeWeight > 0;
}
return item.stroked && item.strokeWidth > 0;
}
function getTotalWidth(coll) {
var total = 0;
for (var i = 0, len = coll.length; i < len; i++) {
if (isType(coll[i], 'text')) {
var attr = coll[i].textRange.characterAttributes;
total += attr.strokeWeight;
} else {
total += coll[i].strokeWidth;
}
}
return total;
}
function setStrokeWidth(item, val) {
if (val == undefined || val == 0) return;
if (isType(item, 'text')) {
var attr = item.textRange.characterAttributes;
attr.strokeWeight = val;
} else {
item.strokeWidth = val;
}
}
try {
main();
} catch (err) {}```