- Сообщения
- 585
- Реакции
- 266
Пытаюсь заставить ИИ написать мне скрипт. Скрипт должен определить размеры выделенных объектов и выдать панельку, в которой дать выбор, как эти размеры выводить в текст: в одну строку, в одну колонку (один размер - одна строка), или рядом с объектом. ИИ радостно пишет, но скрипт не работает. Я его запускаю, панелька появляется и сразу пропадает. ИИ на мое недовольство снова пишет тот же скрипт.
Я решил, что коллективный разум или ЕИ (естественный интеллект) быстрее справятся. Где тут ошибка?
Я решил, что коллективный разум или ЕИ (естественный интеллект) быстрее справятся. Где тут ошибка?
Код:
#target illustrator
// Создаем панель
var win = new Window("palette", "Размеры объектов", undefined);
win.orientation = "column";
// Добавляем чек-боксы
var checkbox1 = win.add("checkbox", undefined, "Текст в одну строку");
var checkbox2 = win.add("checkbox", undefined, "Текст в одну колонку");
var checkbox3 = win.add("checkbox", undefined, "Текст возле каждого объекта");
// Добавляем кнопку
var runButton = win.add("button", undefined, "Запустить");
// Функция для форматирования размера
function formatSize(size) {
var roundedSize = Math.round(size * 10) / 10;
return (roundedSize % 1 === 0) ? roundedSize.toFixed(0) : roundedSize.toFixed(1);
}
// Обработчик нажатия кнопки
runButton.onClick = function() {
var doc = app.activeDocument;
if (doc.selection.length > 0) {
var allSizes = [];
for (var i = 0; i < doc.selection.length; i++) {
var selectedItem = doc.selection[i];
var widthPx = selectedItem.width;
var heightPx = selectedItem.height;
var widthMm = widthPx * 0.352777;
var heightMm = heightPx * 0.352777;
var formattedWidth = formatSize(widthMm);
var formattedHeight = formatSize(heightMm);
if (checkbox3.value) {
var textItem = doc.textFrames.add();
textItem.contents = formattedWidth + " мм х " + formattedHeight + " мм";
textItem.position = [selectedItem.position[0], selectedItem.position[1] - 20];
}
allSizes.push(formattedWidth + " х " + formattedHeight);
}
if (checkbox1.value) {
var allSizesTextItem = doc.textFrames.add();
allSizesTextItem.contents = allSizes.join("; ");
allSizesTextItem.position = [50, 50];
}
if (checkbox2.value) {
var allSizesTextItem = doc.textFrames.add();
allSizesTextItem.contents = allSizes.join("\n");
allSizesTextItem.position = [100, 50];
}
} else {
alert("Нет выделенных объектов.");
}
};
// Показываем панель
win.center();
win.show();