[AI CC-CC2022] Вопросы по скриптингу в Иллюстраторе_2

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
Здравствуйте дамы и господа !

Итак продолжим…

Создаем AreaText

Script:

Untitled.jpg




Тут в общем все понятно и ясно создаем документ вставляем текст…. Есть предположение что в скобках (string 6) должны стоять значения чтоб задать размер документа.



Но вот так работать не будет....-
Untitled_2.jpg




И так тоже….-
Untitled_3.jpg




Тут надо сделать вот так;
Untitled_4.jpg




Меня интересует откуда взялась конструкция строки 5, а именно вот это (null,width,height);

и почему так – без null работать не будет….



Ладно идем дальше… Сейчас хотим создать новый документ и хотим задать параметры в диалоговом окне -

Untitled_6.jpg




Это будет выглядеть уже вот так -

Untitled_5a.jpg




Откуда взялась эта конструкция string 2? - ('', new DocumentPreset (), true);
 
Я никак не могу понять откуда они это берут.... может кто-нибудь ткуть палцем ? Я просмотрела все руководства все PDF но так и не поняла каким образом это надо делать
 
вот тут они пробуют обьяснить: Урок №1 – первый скрипт для Adobe Illustrator

Чтобы понимать как это сделать – давайте начнем с иерархии объектов в Иллюстраторе.
На самом верхнем уровне у нас находится Application . Обратиться к нему можно через объект по имени app

Все открытые документы хранятся в массиве app.documents

К активному документу можно обратиться через через app.activeDocument

Внутри документа есть слои. Находятся они в массиве Document.layers

Внутри слоев могут быть объекты разных видов – слои, группы, пути, меши и т.д. Объекты группируются по типам в массивы с соответствующими названиями. Текстовые объекты находятся в массиве textFrames

Информацию об остальных типах объектов – ждите в последующих уроках. Самостоятельно изучить их можно, почитав Reference и Scripting Guide.

Каждый объект (путь, текст и т.д.) находится в массиве соответствующего типа , а также в массиве pageItems.

Нумерация элементов в массивах начинается с 0.

Но как то все не очень понятно.... - нет там этих конструкций, ну я не нашла во всяком случае....))))



http://mai-tools.com/wp-content/uploads/2018/01/02-иерархия-объектов.png
 
Неужели это так сложно - просто брать куски кода и постить их в тэге, что за ночь не научиться?
Курим маны:
Тут в общем все понятно и ясно создаем документ вставляем текст…. Есть предположение что в скобках (string 6) должны стоять значения чтоб задать размер документа.
1579067198036.png

На самом деле это задание координат пути, по которому будет формироваться текст, к размерам документа никакого отношения не имеет
 
Неужели это так сложно - просто брать куски кода и постить их в тэге, что за ночь не научиться?
Курим маны:

Посмотреть вложение 126125
На самом деле это задание координат пути, по которому будет формироваться текст, к размерам документа никакого отношения не имеет

Hi MBK!

Я про строку 2.... - var doc = app.documents.addDocument ()

Please покажите пальцем где и откуда..
 
На моем скриншоте следующий метод за add
Первый пустой параметр DocumentPreset, второй presetSettings - оба по умолчанию
Что непонятного?
 
Там же и пример кода создания документа
JavaScript:
// Creates a new document with an RGB color space
app.documents.add( DocumentColorSpace.RGB );
 
там куда то надо перейти или нажать где то?
 

Не по теме:
Тигра реинкарнировалась?
 
тут нет этого .. -
Untitled_7.jpg


На моем скриншоте следующий метод за add
Первый пустой параметр DocumentPreset, второй presetSettings - оба по умолчанию
Что непонятного?

непонятно - где null
 
Последнее редактирование:
а где эта конструкция (null, width, height)
У метода add три параметра
null - это DocumentColorSpace
дальше ширина и длина
Все параметры опциональные (в квадратных скобках) значит любой можно пропустить или присвоить ему nill
По сути правильнее все их пропускать поскольку как показывает практика данная индийская конструкция работает нестабильно
Умные явакодеры просто создают в нужном ColorSpace а размеры задают позже артбоардами
 
Не в тот метод смотрите. Выше.
Там действительно addDocument по дурацки документирован (каломбур!)
Просто запомнить как надо, можно использовать код из примера - он работоспособный
 
Там действительно addDocument по дурацки документирован (каломбур!)
Просто запомнить как надо, можно использовать код из примера - он работоспособный

так я знаю что он рабочий я уже его воткнула куда мне надо было....
Я ж вчера спрашивала каким образом....

ну ладно допустим это запомнили.... - (null, width, height)

№ 2 а это как -
var doc = app.documents.addDocument ('', new DocumentPreset (), true);

откуда эта конструкция - ('', new DocumentPreset (), true);
Ps она тоже рабочая..))))
 
Последнее редактирование:
К слову сказать, напомню еще одну нехорошую особенность индийского говноскриптинга - вся автоматизация предполагалась изначально в рамках одного и того же документа, поэтому добавление новых документов и открытие старых в процессе работы скрипта делают всю систему нестабильной. Поэтому, при создании документа лучше от греха просто ограничиваться казанием цветовой модели а размер документа задавать через artboard позже
 
сам код -

Код:
// To create a new document using a pop-up dialog to ask the user what sort of document they need
var doc = app.documents.addDocument ('', new DocumentPreset (), true);

//create the path
var m = 30;//margin
var path1 = doc.pathItems.add();
path1.setEntirePath ([
    [m,m],
    [m,height-m],
    [width-m,height-m],
    [width-m,m]
]);
//create the text
var text1 = doc.textFrames.areaText( path1 );
text1.contents = '"She knew that technology was \
a means to an end — and that the end was people. \
She saw it as something you needed to get to the \
real work: improving people’s lives, making them \
feel more connected, bringing delight in big and \
small ways, and empowering them to affect change."';
var fontStyle = text1.textRange.characterAttributes;
fontStyle.textFont = app.textFonts.getByName("Georgia");
fontStyle.size = 2.5;