- Сообщения
- 48
- Реакции
- 2
Всем доброго дня! Уважаемые форумчане, может быть у кого-нибудь есть скрипт, который ставит направляющую по центру выделенного объекта, горизонтальную или вертикальную, по выбору пользователя? Поискал по форуму, не нашел.
Ну, наверное потому, что штатными средствами добавить направляющую и сделать выравнивание относительно ключевого объекта настолько не сложно, что писать для этого скрипт никто и не додумался Хотя по идее скрипт вроде и не сложный, но он точно нужен?Поискал по форуму, не нашел.
А чем "Align to Key Object" не устраивает?по центру выделенного объекта
Дело в том, что при обработке макетов заказчика нужно эту операцию выполнять десятки раз. Отсюда и вопрос.Ну, наверное потому, что штатными средствами добавить направляющую и сделать выравнивание относительно ключевого объекта настолько не сложно, что писать для этого скрипт никто и не додумался Хотя по идее скрипт вроде и не сложный, но он точно нужен?
Да почему не устраивает. Устраивает, но хотелось бы скриптом, так как по работе приходится иметь дело с макетами, в которых нужно выравнивать огромное количество мелких объектов. Ну вот буквально десятки раз.А чем "Align to Key Object" не устраивает?
Так почему не выравнивать эти объекты сразу? Зачем каждому направляющая?нужно выравнивать огромное количество мелких объектов
Если коротко - обрабатываю макет схемы наподобие таблицы со множеством стрелочек, и прочих разнообразных значков. Иду сверху вниз. Направляющую ставлю, чтобы видеть, надо ли выравнивать другой подобный объект. Выделить их все и выравнивать скопом не представляется возможным ввиду полной мешанины, все приходится вручную делать.Так почему не выравнивать эти объекты сразу? Зачем каждому направляющая?
Помогают. Сейчас я ими и пользуюсь. Но опять же, все эти объекты очень мелкие. Приходится туда-сюда приближать, иначе смарт гайд прицепляется к точке вместо центра. Сплошные потери времени.а smart guides не помогают?
туда-сюда
#target Illustrator
if (documents.length > 0 & app.activeDocument.selection.length > 0) {
var doc = app.activeDocument;
if (!(guidesLayer = doc.layers.getByName("Guides"))) {
var guidesLayer = doc.layers.add();
guidesLayer.name = "Guides";
};
var vb = [];
for ( var i =0; i < doc.selection.length; i++ ) {
vb[i] = doc.selection[i].visibleBounds;
//закомментировать 4 строки ниже если нужны только горизонтальные направляющие
x = (vb[i][2] + vb[i][0])/2;
newPath = guidesLayer.pathItems.add();
newPath.setEntirePath([[x, 8191.5], [x, -8191.5]]);
newPath.guides = true;
//закомментировать 4 строки ниже если нужны только вертикальные направляющие
y = (vb[i][3] + vb[i][1])/2;
newPath = guidesLayer.pathItems.add();
newPath.setEntirePath([[8191.5, y], [-8191.5, y]]);
newPath.guides = true;
};
};
#target Illustrator
if (documents.length > 0 & app.activeDocument.selection.length > 0) {
var doc = app.activeDocument;
try { var guidesLayer = doc.layers.getByName("Guides") } catch (e) {
var guidesLayer = doc.layers.add();
guidesLayer.name = "Guides";
};
var vb = [];
for ( var i =0; i < doc.selection.length; i++ ) {
vb[i] = doc.selection[i].visibleBounds;
//закомментировать 4 строки ниже если нужны только горизонтальные направляющие
x = (vb[i][2] + vb[i][0])/2;
newPath = guidesLayer.pathItems.add();
newPath.setEntirePath([[x, 8191.5], [x, -8191.5]]);
newPath.guides = true;
//закомментировать 4 строки ниже если нужны только вертикальные направляющие
y = (vb[i][3] + vb[i][1])/2;
newPath = guidesLayer.pathItems.add();
newPath.setEntirePath([[8191.5, y], [-8191.5, y]]);
newPath.guides = true;
};
};
Огромаднейшее спасибо! Вы мне очень помогли!Сорян ошибочка...
Вот так надо:
JavaScript:#target Illustrator if (documents.length > 0 & app.activeDocument.selection.length > 0) { var doc = app.activeDocument; try { var guidesLayer = doc.layers.getByName("Guides") } catch (e) { var guidesLayer = doc.layers.add(); guidesLayer.name = "Guides"; }; var vb = []; for ( var i =0; i < doc.selection.length; i++ ) { vb[i] = doc.selection[i].visibleBounds; //закомментировать 4 строки ниже если нужны только горизонтальные направляющие x = (vb[i][2] + vb[i][0])/2; newPath = guidesLayer.pathItems.add(); newPath.setEntirePath([[x, 8191.5], [x, -8191.5]]); newPath.guides = true; //закомментировать 4 строки ниже если нужны только вертикальные направляющие y = (vb[i][3] + vb[i][1])/2; newPath = guidesLayer.pathItems.add(); newPath.setEntirePath([[8191.5, y], [-8191.5, y]]); newPath.guides = true; }; };