[AI CC-CC2021] Масштабирование всех объектов

Gfr

Участник
Топикстартер
Сообщения
9
Реакции
0
Не могу понять, как отмасштабировать все объекты так как это делает «Transform»

Функция item.resize маштабирует каждый объект отдельно

А для меня, группировать все нельзя, так как объекты на разных слоях и это нарушит структуру документа

Прошу подсказать что нужно сделать!
 

_MBK_

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
JavaScript:
   var myItems = docRef.pageItems;
   var ratio = 0.5;

    for (var i = myItems.length - 1; i >= 0; i--) {
        myItems[i].resize(ratio, ratio, true, true, true, true, ratio, Transformation.DOCUMENTORIGIN);
    }


есть некоторые нюансы, надо пропускать pathItems внутри compoundPathItem, иначе они два раза трансформируются. но для начала так
 
  • Спасибо
Реакции: catpaw

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Ну это, во первых, не одной командой, а во вторых относительно чего?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Transformation.DOCUMENTORIGIN

где был запрос одной командой?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Ну
А надо скорее всего относительно центра выделенной группы или как то так небось
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
переместить потом не проблема все на одну величину, главное что в процессе масштабирования не сбивается положение относительно друг друга
 

_MBK_

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Тема в разделе скриптинга значит имеется в виду именно реализация Transform
как отмасштабировать все объекты так как это делает «Transform»
причем куча resize не годится по условию
Функция item.resize маштабирует каждый объект отдельно
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
и что с того? проблема не в количестве команд, а в том, что смещение объектов происходит, если я правильно понимаю.
по крайней мере, я так делаю все время, проблем не возникает )
 
Последнее редактирование:

Gfr

Участник
Топикстартер
Сообщения
9
Реакции
0
JavaScript:
   var myItems = docRef.pageItems;
   var ratio = 0.5;

    for (var i = myItems.length - 1; i >= 0; i--) {
        myItems[i].resize(ratio, ratio, true, true, true, true, ratio, Transformation.DOCUMENTORIGIN);
    }


есть некоторые нюансы, надо пропускать pathItems внутри compoundPathItem, иначе они два раза трансформируются. но для начала так

Спасибо!
То что нужно
 

hhandy

Участник
Сообщения
38
Реакции
0
переместить потом не проблема все на одну величину,
А не подскажете, как вычислить эту величину?
Задачка очень похожая - нужно отмасштабировать все на выбранном артборде. Идеально - продублировать команду Transform-Scale с заданными параметрами (98, 93, например). Масштабировать нужно относительно центра артборда. Артбордов куча - слева, справа, снизу, сверху. Много слоев, сливать нельзя. Вот прям затык на ровном месте..
То, что вы предложили - вроде пожходит, но масштабируется относительно непонятно чего и тудаже сдвигается. Или правильный вопрос - что такое Transformation.DOCUMENTORIGIN? )
Как вариант - группировать, а что потом с этим добром делать и как по слоям растаскивать?
Бэн, ай нид хелп!!! ©
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Ответ на второй вопрос - насколько я понимаю, относительно центра документа (не артборда а именно документа) из него же следует и ответ на второй - все обьекты надо сдвинуть на разницу между центром документа и центром нужного артборда
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
относительно центра документа (не артборда а именно документа)

по-моему это не центр, а левый верхний угол, но в общем-то какая разница, главное что относительно друг друга объекты не разъезжаются

Transformation.DOCUMENTORIGIN (Read Only)
Data Type: int, Value: 1
Adobe Illustrator 24 Type Library
Transform relative to the illustration's page origin.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Я не настаиваю, все равно иллюстратора под рукой нет, а можно ж по идее программно поставить начало координат в центр артборда и после этого масштабировать?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
вроде можно - Document.pageOrigin, надо попробовать
 

seregasss435

Участник
Сообщения
142
Реакции
9
Спасибо!
То что нужно
Доброго дня . Скиньте пожалуйста весь код. У меня стоит аналогичная задача необходимо после увеличения артборда с 1000 px на 6000 px ( кодом я уже сделал эту часть ) необходимо увеличить все объкты без включения в группу или выделив все объекты (аналогично транформированию от центра , но не трансформировать каждый). Тот код что есть уменьшает объекты и выбрасывает на левую сторону за артборд.