[ID CC-CC2021] Поиск фрейма по размерам

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530
нужно добавить перед -
sourceDoc.pages.pageItems.everyItem().select();
строку
app.menuActions.item("Override All Master Page Items").invoke();
Почему-то выдаёт ошибку:
upload_2018-2-16_13-15-30.png
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530
И если фреймы повёрнуты на разные углы, то не узнаёт одинаковые по размерам, но повёрнутые по-разному...


Не по теме:
Вот у меня хотелка-то разошлась. Причём сам не знаю, к чему :) Просто из любви к искусству! '))'
 

DrEgor

Участник
Сообщения
774
Реакции
68
И если фреймы повёрнуты на разные углы, то не узнаёт одинаковые по размерам, но повёрнутые по-разному...


Не по теме:
Вот у меня хотелка-то разошлась. Причём сам не знаю, к чему :) Просто из любви к искусству! '))'
угу, поворот должен быть 0, д-90, 180 гразусов... размер по координатам вершин же считается. ;)
нужно поискать как еще выдернуть размер можно... из вехней панели например, но я с таким не сталкивался.
 

DrEgor

Участник
Сообщения
774
Реакции
68
И если фреймы повёрнуты на разные углы, то не узнаёт одинаковые по размерам, но повёрнутые по-разному...


Не по теме:
Вот у меня хотелка-то разошлась. Причём сам не знаю, к чему :) Просто из любви к искусству! '))'

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
это немного нетривиально делается, нужно преобразовать координаты из общего пространства в координатную плоскость объекта - метод resolve
 

DrEgor

Участник
Сообщения
774
Реакции
68
это немного нетривиально делается, нужно преобразовать координаты из общего пространства в координатную плоскость объекта - метод resolve
если я в панели info и в верхней панельке для объекта 30х30 мм вне зависимости от поворота вижу одни и те-же цифры, то можно предположить, что их таки можно как-то скопипастить? ну знает индиз какого размера объект... уже знает. Вот чтобы скриптом его не пересчитывать, а взять готовые? 'hmmm' импосибл?
 

DrEgor

Участник
Сообщения
774
Реакции
68
это немного нетривиально делается, нужно преобразовать координаты из общего пространства в координатную плоскость объекта - метод resolve
таки откопал я способ узнать тру размер... сейчас соберу до кучи и выложу суда... мало-ли, может кому пригодится
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
если я в панели info и в верхней панельке для объекта 30х30 мм вне зависимости от поворота вижу одни и те-же цифры, то можно предположить, что их таки можно как-то скопипастить? ну знает индиз какого размера объект... уже знает. Вот чтобы скриптом его не пересчитывать, а взять готовые? 'hmmm' импосибл?

resolve это не пересчет, это получение координат точки в другом координатном пространстве. вот немного кода в помощь, дальше там нечего делать

Код:
var refPoint = currFrame.resolve(AnchorPoint.topLeftAnchor,CoordinateSpaces.INNER_COORDINATES)[0];
            var topRightFr = currFrame.resolve(AnchorPoint.topRightAnchor,CoordinateSpaces.INNER_COORDINATES)[0];
            var bottomRightFr = currFrame.resolve(AnchorPoint.bottomRightAnchor,CoordinateSpaces.INNER_COORDINATES)[0];
            var bottomLeftFr = currFrame.resolve(AnchorPoint.bottomLeftAnchor,CoordinateSpaces.INNER_COORDINATES)[0];
 
  • Спасибо
Реакции: Flame и DrEgor

DrEgor

Участник
Сообщения
774
Реакции
68
resolve это не пересчет, это получение координат точки в другом координатном пространстве. вот немного кода в помощь, дальше там нечего делать

Код:
var refPoint = currFrame.resolve(AnchorPoint.topLeftAnchor,CoordinateSpaces.INNER_COORDINATES)[0];
            var topRightFr = currFrame.resolve(AnchorPoint.topRightAnchor,CoordinateSpaces.INNER_COORDINATES)[0];
            var bottomRightFr = currFrame.resolve(AnchorPoint.bottomRightAnchor,CoordinateSpaces.INNER_COORDINATES)[0];
            var bottomLeftFr = currFrame.resolve(AnchorPoint.bottomLeftAnchor,CoordinateSpaces.INNER_COORDINATES)[0];

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну да. там через resolve и сделано
Код:
var getCoords = function(cornerPt)
    { // <this>: PageItem - return [x,y]
    return this.resolve([cornerPt,boxLimits],
        CoordinateSpaces.innerCoordinates)[0];
    }