[AI CC-CC2021] Скрипт Fit to Select Art + 5 мм по периметру

netik

Unregistered User
Топикстартер
20 лет на форуме
Сообщения
348
Реакции
111
Ищу простой скрипт для работы с артбоардом. Перепробовал много бесплатных вариантов, со сложными функциями, но то что нужно не нашел.

Действия такие:
1. На входе, файл с одним артбоардом и неким количеством размещенных на нем объектов.
2. Устанавливаем размеры артбоарда по границе видимых объектов, аналог - Fit to Select Art.
3. Расширяем артбоард на 5 мм по периметру. Размеры артборда должны быть без дробных значений и округляться в большую сторону.

Суть простая, чтобы между объектами и артбоардом было свободное поле 5 мм
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851

netik

Unregistered User
Топикстартер
20 лет на форуме
Сообщения
348
Реакции
111
Т.е. скорректировать размеры артбоарда с помощью скрипта невозможно?
 

Любимцев

15 лет на форуме
Сообщения
4 208
Реакции
2 058
базовая единица длины ни разу не кратна
да перестань, проблема разве в этом?
Устанавливаем дистанцию до объектов (ни каких попало, а значимых, чего скрипт точно не сможет понять) до линии реза
Очередное надевание штанов через голову...
 

Drawer

Участник
Сообщения
1 817
Реакции
799

netik

Unregistered User
Топикстартер
20 лет на форуме
Сообщения
348
Реакции
111
Устанавливаем дистанцию до объектов (ни каких попало, а значимых, чего скрипт точно не сможет понять) до линии реза
Цитата конечно интересная, но вроде такого не писал.
 
Последнее редактирование:

Любимцев

15 лет на форуме
Сообщения
4 208
Реакции
2 058
© В Австралии живет такой зверек — вомбат, но Кастанеда, (как и вы) о нем ничего
Тем не менее, он там живет.
А из описания
Размеры артборда должны быть без дробных значений и округляться
следует, что и размеры будут произвольные...
Вы начните с начала. Для чего это нужно?
Подозреваю, что мечтаете припуски таким странным образом добавить...
 

Drawer

Участник
Сообщения
1 817
Реакции
799
Тем не менее, он там живет
А с чего это
скрипт точно не сможет понять
дистанцию до объектов (ни каких попало, а значимых ...)
не объяснит?
 

Chiga

15 лет на форуме
Сообщения
802
Реакции
519
Код:
doc = app.activeDocument;
indent = 5;
var rect = doc.pageItems[0].controlBounds;
for (i = 1; i < doc.pageItems.length; i++){
    if (doc.pageItems[i].controlBounds[0] < rect[0]) rect[0] = doc.pageItems[i].controlBounds[0];
    if (doc.pageItems[i].controlBounds[1] > rect[1]) rect[1] = doc.pageItems[i].controlBounds[1];
    if (doc.pageItems[i].controlBounds[2] > rect[2]) rect[2] = doc.pageItems[i].controlBounds[2];
    if (doc.pageItems[i].controlBounds[3] < rect[3]) rect[3] = doc.pageItems[i].controlBounds[3];
}
rect[0] = toPoint(Math.round(toMM(rect[0]) - indent))
rect[1] = toPoint(Math.round(toMM(rect[1]) + indent))
rect[2] = toPoint(Math.round(toMM(rect[2]) + indent))
rect[3] = toPoint(Math.round(toMM(rect[3]) - indent))

doc.artboards[0].artboardRect = rect;

function toMM(point){
    return point * 0.35277777777778;
}
function toPoint(mm){
    return mm / 0.35277777777778;
}
 

netik

Unregistered User
Топикстартер
20 лет на форуме
Сообщения
348
Реакции
111
Большое спасибо! Работает как и хотел :)
 

egorus2010

12 лет на форуме
Сообщения
1 520
Реакции
51
А чтобы еще и выровнял получше? :)
1688992541225.png
 
  • Спасибо
Реакции: netik

netik

Unregistered User
Топикстартер
20 лет на форуме
Сообщения
348
Реакции
111
Поправил controlBounds на visibleBounds, чтобы размеры были с учетом контура ;]]
 
  • Спасибо
Реакции: Chiga

Drawer

Участник
Сообщения
1 817
Реакции
799

almastu

15 лет на форуме
Сообщения
535
Реакции
90
Хоть так, хоть эдак, с элементами в масках будет чехарда :) Но если масок нет, то все ок :)
Document.fitArtboardToSelectedArt (index: Int32 ): Boolean
Adobe Illustrator 19 Type Library
Change the artboard to selected art bounds.
index (optional): Data Type: Int32
The index of the artboard to update.


вроде же, этим спасались?
 
  • Спасибо
Реакции: Chiga

Drawer

Участник
Сообщения
1 817
Реакции
799

Chiga

15 лет на форуме
Сообщения
802
Реакции
519
  • Спасибо
Реакции: netik

netik

Unregistered User
Топикстартер
20 лет на форуме
Сообщения
348
Реакции
111
1. Есть один объект или группа объектов размером 40,6 mm x 40,6 mm.
2. Задаем артбоард по размерам объекта/ов. В нашем случае это будет 40,6 mm x 40,6 mm.
3. Расширяем артбоард во все стороны на 5 mm, будет 50,6 mm x 50,6 mm.
4. Округляем размеры артбоард до целого значения, будет 51 mm x 51 mm.
Объекты остаются по центру арбоарда. Если замерить расстояние от края объекта, до края артбоарда, со всех сторон будет по 5,2 mm.