[AI CC2026] Скрипт, который увеличивает все разноформатные монтажные области на заданное значение со всех сторон.

siv05

Топикстартер
15 лет на форуме
Сообщения
44
Реакции
11
Приветствую всех уважаемых форумчан! Возникла потребность в таком скрипте.
При подготовке разноформатных макетов требуется увеличить все монтажные области на 5мм с каждой стороны для последующего потокового сохранения в pdf с помощью великого скрипта BatchRenamer.jsx. Но при этом, чтобы сохранялась очередность и нумерация монтажных областей.
Попытался осуществить это с помощью последовательного применения скриптов MakeRectangleAI.jsx и MakeArtboardsForSelectedAndNameByLinkedFilename.jsx. Но в этом случае нумерация областей меняется практически в произвольном порядке, что не удобно при расстановке тиражей.
Для наглядности прикрепляю два скрина с неверным результатом от применения MakeRectangleAI.jsx и MakeArtboardsForSelectedAndNameByLinkedFilename.jsx
Хотя по отдельности эти скрипты меня сильно выручают каждый день.
Может встречался кому-то такой скрипт, который не перенумеровывает монтажные области?
Буду признателен за помощь.
 

Вложения

  • 2026-04-24_14-36-06_Безымянный-4__@.jpg
    2026-04-24_14-36-06_Безымянный-4__@.jpg
    29.8 КБ · Просм.: 4
  • 2026-04-24_14-36-23_Безымянный-4__@.jpg
    2026-04-24_14-36-23_Безымянный-4__@.jpg
    19.3 КБ · Просм.: 3
Если все существующие артборды в документе нарастить от центра, то похожие скрипты были на официальном форуме Адоб. Вот адаптация

JavaScript:
(function () {
  if (app.documents.length > 0) {
    var doc = app.activeDocument;
    var input = prompt("Введите приращение стороны (мм):", "5");
    if (input !== null) {
      var length = parseFloat(input) * 2.834645; // mm -> pt
      for (var i = 0; i < doc.artboards.length; i++) {
        var ab = doc.artboards[i];
        var rect = ab.artboardRect; // [left, top, right, bottom]
        ab.artboardRect = [
          rect[0] - length,
          rect[1] + length,
          rect[2] + length,
          rect[3] - length
        ];
      }
    }
  }
})();
 
  • Спасибо
  • Огонь
Реакции: Chiga и siv05
В феврале знакомый показывал скрипт, который он "вайбкодил" с нейросетью для подобных задач, но с бОльшим количеством опций:
1. изменение размера одного или всех артбордов (mode),
2. изменение до точного размера или относительное приращение (relative флажок)
3. от какого угла менять размер (anchor)
4. рамка предпросмотра будущих границ артбордов.

Его файл не буду выкладывать без спроса, но на интерфейсе скрипта видно, где у автор в телеграм группе лежит бесплатно скрипт
1777033055256.png
 
Последнее редактирование:
Если все существующие артборды в документе нарастить от центра, то похожие скрипты были на официальном форуме Адоб. Вот адаптация

JavaScript:
(function () {
  if (app.documents.length > 0) {
    var doc = app.activeDocument;
    var input = prompt("Введите приращение стороны (мм):", "5");
    if (input !== null) {
      var length = parseFloat(input) * 2.834645; // mm -> pt
      for (var i = 0; i < doc.artboards.length; i++) {
        var ab = doc.artboards[i];
        var rect = ab.artboardRect; // [left, top, right, bottom]
        ab.artboardRect = [
          rect[0] - length,
          rect[1] + length,
          rect[2] + length,
          rect[3] - length
        ];
      }
    }
  }
})();
Да! Этот мне вполне подходит. Спасибо огромное за помощь и за многие другие ваши скрипты, Сергей.
 
  • Спасибо
Реакции: creold
Даже дипсик неплохо справляется с иллюстратором.
Сейчас есть еще обновленный Kimi, тоже от китайцев нейронка, работающая без обхода в России. Вроде хвалят. На сложных задачах китайские модели все же похуже справляются, чем западные Гемини, Клод, ГПТ. На простых задачах разницы конечно нет, документации по скриптингу Адоба все ИИ в целом обучены за несколько лет развития
 
  • Спасибо
Реакции: siv05
Даже дипсик неплохо справляется с иллюстратором.
Я тоже сначала попытался в Алиса Ai, но после 10й попытки редактирования собственного кода Алиса меня утомила, я сдался и пришел сюда. )) Каждая версия её кода выдавала ошибки. Какой-то результат был, но не тот, который бы меня устроил.
 
Я тоже сначала попытался в Алиса Ai, но после 10й попытки редактирования собственного кода Алиса меня утомила, я сдался и пришел сюда. )) Каждая версия её кода выдавала ошибки. Какой-то результат был, но не тот, который бы меня устроил.
Думаю дипсик бы справился с первой итерации.
 
Имеется в виду Алиса, которая Яндексовна, я правильно понял? 'shok2'
Она реально отличает JS от Java???? Я прямо серьезно сюрпризирован...:D
 
Спасибо, буду пробовать китайские аналоги. Иногда действительно нужно решить несложную, на мой непрофессиональный взгляд, задачу. Без интерфейса, быстро и результативно.
 
обычно для более-менее крупного есть смысл пробовать пару вариантов сетей. Один из них будет хуже, другой лучше. и подходы разные, прям заметно. попробуй qwen, он для мелочевки неплох, особенно, если не нужны прям последние версии библиотек и прочего.
 
  • Спасибо
Реакции: siv05
А с Kimi я чет так и не сумел подружиться
 

Вложения

  • Screenshot_20260424-182512.jpg
    Screenshot_20260424-182512.jpg
    60.4 КБ · Просм.: 10
Отчитываюсь. Попробовал поработать с Qwen и DeepSeek. Qwen утюжил свой код 12 раз, я ему закидывал ошибки Илюстратора. Так и не удалось ему выдать рабочий результат. DeepSeek же с первого раза выдал код, который сработал.
Вот его код:
Код:
// increaseArtboardsBy5mm.jsx
// Увеличивает все монтажные области на 5 мм с каждой стороны

#target illustrator
#targetengine main

function increaseArtboardSize(delta) {
    var doc = app.activeDocument;
    var artboards = doc.artboards;
    var deltaPoints = delta * 2.834645669291339; // 5 мм в пунктах (1 мм = 2.83465 pt)
    
    for (var i = 0; i < artboards.length; i++) {
        var ab = artboards[i];
        var rect = ab.artboardRect; // [left, top, right, bottom]
        
        var left   = rect[0] - deltaPoints;
        var top    = rect[1] + deltaPoints;
        var right  = rect[2] + deltaPoints;
        var bottom = rect[3] - deltaPoints;
        
        ab.artboardRect = [left, top, right, bottom];
    }
    
    alert("Размер всех монтажных областей увеличен на " + delta + " мм с каждой стороны.");
}

// Запуск: увеличить на 5 мм
if (app.documents.length > 0) {
    increaseArtboardSize(5);
} else {
    alert("Нет открытых документов.");
}

Посему буду теперь отдавать предпочтение DeepSeek в решении задач.
Но пользоваться буду кодом, любезно предоставленным мне Сергеем.
Классная штука оказывается, тем более для человека, который совсем не умеет кодить.
Благодарю всех за помощь. Очень помогли вы мне. Спасибо!