- Сообщения
- 946
- Реакции
- 106
А в чем проблема то - увеличивайте geometricBounds - содержимое просто перераспределится по фреймам не изменяясьНужно увеличивать фреймы
Наверно возможно, но мне кажется проще и правильней использовать стили объектов. Там можно задать размер и положение относительно полейГоспода, возможно ли реализовать через скриптинг, выравнивание фреймов по ближайшим направляющим
Добрый день, вы нашли скрипт? Если нет, могу поделиться своей поделкой. у меня есть скрипт который притягивает выделенные объекты к ближайшим гайдам. только у меня сс2018
Большое спасибо за скрипт! Еще бы найти то же самое для baseline!попробуйте:
snapToGuides
Скрипт выравнивает выделенные объекты по ближайшим направляющим Растояние до направляющей определяется константой myDelta Если константа includingStroke = true выравнивание с учетом толщины линийforum.rudtp.ru
наверно это тоже возможно, но энтузиазма у меня на это не хватитЕще бы найти то же самое для baseline!
Думаю, да! Буду признателен, если поделитесь.Есть скрипт с привязкой к Документ Грид
подойдет?
with (app) {
try {
for (i = 0; i < selection.length; i++) {
newBounds = selection[i].geometricBounds;
gridStepH = activeDocument.gridPreferences.horizontalGridlineDivision / activeDocument.gridPreferences.horizontalGridSubdivision;
gridStepV = activeDocument.gridPreferences.verticalGridlineDivision / activeDocument.gridPreferences.verticalGridSubdivision;
delta0 = mod(newBounds[0], gridStepV);
delta2 = mod(newBounds[2], gridStepV);
delta1 = mod(newBounds[1], gridStepH);
delta3 = mod(newBounds[3], gridStepH);
newBounds[0] = newBounds[0] - delta0;
newBounds[2] = newBounds[2] - delta2;
if (newBounds[2] == newBounds[0]) {
if (delta0 * delta0 < delta2 * delta2) {
newBounds[2] = newBounds[2] + gridStepV;
} else {
newBounds[0] = newBounds[0] - gridStepV;
}
}
newBounds[1] = newBounds[1] - delta1;
newBounds[3] = newBounds[3] - delta3;
if (newBounds[3] == newBounds[1]) {
if (delta1 * delta1 < delta3 * delta3) {
newBounds[3] = newBounds[3] + gridStepH;
} else {
newBounds[1] = newBounds[1] - gridStepH;
}
}
selection[i].geometricBounds = newBounds;
}
} catch(e) {}
}
function mod(division, divider) {
while (division > 0) {
division = division - divider;
}
if (division > -divider / 2)
return division
else
return division + divider;
}
Огромное спасибо! То, что надо!JavaScript:with (app) { try { for (i = 0; i < selection.length; i++) { newBounds = selection[i].geometricBounds; gridStepH = activeDocument.gridPreferences.horizontalGridlineDivision / activeDocument.gridPreferences.horizontalGridSubdivision; gridStepV = activeDocument.gridPreferences.verticalGridlineDivision / activeDocument.gridPreferences.verticalGridSubdivision; delta0 = mod(newBounds[0], gridStepV); delta2 = mod(newBounds[2], gridStepV); delta1 = mod(newBounds[1], gridStepH); delta3 = mod(newBounds[3], gridStepH); newBounds[0] = newBounds[0] - delta0; newBounds[2] = newBounds[2] - delta2; if (newBounds[2] == newBounds[0]) { if (delta0 * delta0 < delta2 * delta2) { newBounds[2] = newBounds[2] + gridStepV; } else { newBounds[0] = newBounds[0] - gridStepV; } } newBounds[1] = newBounds[1] - delta1; newBounds[3] = newBounds[3] - delta3; if (newBounds[3] == newBounds[1]) { if (delta1 * delta1 < delta3 * delta3) { newBounds[3] = newBounds[3] + gridStepH; } else { newBounds[1] = newBounds[1] - gridStepH; } } selection[i].geometricBounds = newBounds; } } catch(e) {} } function mod(division, divider) { while (division > 0) { division = division - divider; } if (division > -divider / 2) return division else return division + divider; }