[AI CC-CC2021] Повернуть монтажную область.

Статус
Закрыто для дальнейших ответов.

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
  • Спасибо
Реакции: ~RA~ и Jeine

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Не, этот вариант еще хуже - Placed item будет трудноредактируемым черным ящиком

зато внутри ничего не развалится. мне тут пришлось спуск делать в AI скриптом из нескольких файлов, так я именно так закодил - группировать и копипастить как-то небезопасно
 

~RA~

Одарённая.
Топикстартер
12 лет на форуме
Сообщения
11 861
Реакции
3 450
Скриншот панели иллюстраторовской, наверное?
Предложение оканчивающиеся точкой — повествовательное. Зачем на него пытаешься отвечать? ;)
Для меня какое-то время было загадкой, как это сделано. Потом выяснил, и поделился сей радостью с коллегами. :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
Для меня какое-то время было загадкой, как это сделано.
Ну вот треугольный объект справа на твоем скриншоте иллюстраторовский скриптинг и не увидит, скорее всего никакими ухищрениями
 
  • Спасибо
Реакции: ~RA~ и Jeine

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
зато внутри ничего не развалится. мне тут пришлось спуск делать в AI скриптом из нескольких файлов, так я именно так закодил - группировать и копипастить как-то небезопасно
Для спуска вполне ничего, но когда на выходе должен быть вполне себе редактируемый макет, идея совсем плохая. Ибо (как уже писали в одной из местных тем) его даже эмбедом потом корректно не преобразуешь в нормальный - такой вот чудный лидер отрасли
 
  • Спасибо
Реакции: ~RA~ и Jeine

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а кто сказал, что нужен редактируемый?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
  • Спасибо
Реакции: ~RA~ и Jeine

~RA~

Одарённая.
Топикстартер
12 лет на форуме
Сообщения
11 861
Реакции
3 450
Мне надо, как минимум, заменить текст в одном текстовом боксе. Что нужно адресату сего чуда — мне неведомо. Они очень странные.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
  • Спасибо
Реакции: ~RA~ и Jeine

~RA~

Одарённая.
Топикстартер
12 лет на форуме
Сообщения
11 861
Реакции
3 450
Заменить и повернуть и повернуть и заменить, кмк результат один. ;)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
Заменить а затем экспортировать в файл, плэйснуть, повернуть и отослать? 'hmmm'
 
  • Спасибо
Реакции: ~RA~ и Jeine

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
Впрочем, возможно, все не так плохо, как я описал выше и можно обойтись меньшей кровью без использования экшнов.
Сейчас проверил, таки, все действительно так плохо
Вариант с rotate на подобных объектах не работает принципиально - значит крутить можно только через вызов экшна :(
 
  • Спасибо
Реакции: ~RA~ и Jeine

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 197
Реакции
10 847
В общем, c учетом исправлений, у меня работает такой вариант:
Код:
/* Скрипт для пакетного или единичного поворота документа
Корректно работает, если в документе содержится один артборд.
*/

/* Окно меню с выбором вырианта работы:
поворачиваем активный документ или все документы в выбранной папке */
var doc = app.activeDocument;
var WorkPath = doc.path;
var Metka='Current';
var Rotate=[];
var Rotation;
var files;
var sourceFile;
var SaveOptionPdf = new PDFSaveOptions();

function RotateDoc () {
var doc = app.activeDocument;
var ArtBoardSize = doc.artboards[0].artboardRect;
var ParentLayer = doc.layers;
var LockedLayers = [];
var UnvisibleLayers = [];

var ArtBoardWidth=Math.abs(ArtBoardSize[2]-ArtBoardSize[0]);
var ArtBoardHeight=Math.abs(ArtBoardSize[3]-ArtBoardSize[1]);

var dX= (ArtBoardSize[2]+ ArtBoardSize[0])/2;
var dY = (ArtBoardSize[3]+ ArtBoardSize[1])/2;

//doc.artboards[0].artboardRect = [-ArtBoardWidth/2, ArtBoardHeight/2, ArtBoardWidth/2, -ArtBoardHeight/2];
if (Rotation!=180) {
 var ar=[doc.artboards[0].artboardRect[0]+(ArtBoardWidth-ArtBoardHeight)/2,   
             doc.artboards[0].artboardRect[1]+(ArtBoardWidth-ArtBoardHeight)/2,   
             doc.artboards[0].artboardRect[2]-(ArtBoardWidth-ArtBoardHeight)/2,   
             doc.artboards[0].artboardRect[3]-(ArtBoardWidth-ArtBoardHeight)/2];
 doc.artboards[0].artboardRect = ar; //[-ArtBoardHeight/2, ArtBoardWidth/2, ArtBoardHeight/2, -ArtBoardWidth/2];
 
}


for (var i=0; i<doc.layers.length; i++) {
        if (doc.layers[i].locked == true) {
            LockedLayers[i] = doc.layers[i];
            // alert (LockedLayers[i])
            }
        if (doc.layers[i].visible == false) {
            UnvisibleLayers[i] = doc.layers[i]
            }
    doc.layers[i].locked = false;
    doc.layers[i].visible = true;
/*    for (k=0; k<doc.layers[i].pageItems.length; k++) {
        if (doc.layers[i].pageItems[k].parent == ParentLayer[i]) {
        doc.layers[i].pageItems[k].translate(-dX, -dY);       
        doc.layers[i].pageItems[k].rotate(Rotation,true, true, true, true, Transformation.DOCUMENTORIGIN);
        }
    }*/
      // if (doc.layers[i].name == 'knife') { doc.layers[i].locked = true }
}

// Теперь можно повернуть объекты
doScript("Rotate "+Rotation,"Rotate Artboard");
// Снова блокируем
for (var i=0; i<LockedLayers.length; i++) {
        if (LockedLayers[i]!=null) {
     LockedLayers[i].locked = true;
     }
}
for (var i=0; i<UnvisibleLayers.length; i++) {
        if (UnvisibleLayers[i]!=null) {
     UnvisibleLayers[i].visible = false;
     }
}
}
// alert (WorkPath);
var WorkOptions = new Window ('dialog', 'Повернуть документ');
var AllFiles = WorkOptions.add ('group');
AllFiles.orientation = 'row';
var AllFilesTxt = AllFiles.add ('statictext', undefined, 'Все документы в этой папке');
var ChAllFiles = AllFiles.add ('checkbox');
var RotateGroup = WorkOptions.add ('group');
RotateGroup.orientation = "row";
Rotate[0] = RotateGroup.add ('button', [0,0, 54,18], '90\u00b0');
Rotate[0].active = true;
Rotate[1] = RotateGroup.add ('button', [0,0, 54,18], '180\u00b0');
Rotate[2] = RotateGroup.add ('button', [0,0, 54,18], '270\u00b0');
Rotate[0].onClick = function () {Rotation = 90; WorkOptions.close ()    }
Rotate[1].onClick = function () {Rotation = 180; WorkOptions.close () }
Rotate[2].onClick = function () {Rotation = 270; WorkOptions.close () }
WorkOptions.show ();
//alert (Rotation);
if (ChAllFiles.value == true) {
    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
    files = new Array();
    files = WorkPath.getFiles('*.pdf');
    // alert (files.length);
    for (a=0; a<files.length; a++) {
        sourceFile = app.open(files[a]);
        doc = app.activeDocument;
        NameFiles = doc.fullName;
        // alert (NameFiles);
        sourceFile = RotateDoc();
        doc.saveAs(NameFiles, SaveOptionPdf);
        doc.close(SaveOptions.DONOTSAVECHANGES);
    }
}
else { doc = RotateDoc ()}
Экшн для него выглядит так:
Код:
/version 3
/name [ 15
    526f7461746520417274626f617264
]
/isOpen 1
/actionCount 3
/action-1 {
    /name [ 9
        526f74617465203930
    ]
    /keyIndex 0
    /colorIndex 0
    /isOpen 0
    /eventCount 2
    /event-1 {
        /useRulersIn1stQuadrant 0
        /internalName (adobe_selectAll_in_artboard)
        /localizedName [ 22
            53656c65637420416c6c20496e20417274626f617264
        ]
        /isOpen 0
        /isOn 1
        /hasDialog 0
        /parameterCount 0
    }
    /event-2 {
        /useRulersIn1stQuadrant 0
        /internalName (ai_plugin_transformPalette)
        /localizedName [ 15
            5472616e73666f726d2050616e656c
        ]
        /isOpen 0
        /isOn 1
        /hasDialog 0
        /parameterCount 2
        /parameter-1 {
            /key 1954115685
            /showInPalette -1
            /type (enumerated)
            /name [ 7
                526f746174653a
            ]
            /value 5
        }
        /parameter-2 {
            /key 1986096245
            /showInPalette -1
            /type (unit real)
            /value 90.0
            /unit 591490663
        }
    }
}
/action-2 {
    /name [ 10
        526f7461746520323730
    ]
    /keyIndex 0
    /colorIndex 0
    /isOpen 0
    /eventCount 2
    /event-1 {
        /useRulersIn1stQuadrant 0
        /internalName (adobe_selectAll_in_artboard)
        /localizedName [ 22
            53656c65637420416c6c20496e20417274626f617264
        ]
        /isOpen 0
        /isOn 1
        /hasDialog 0
        /parameterCount 0
    }
    /event-2 {
        /useRulersIn1stQuadrant 0
        /internalName (ai_plugin_transformPalette)
        /localizedName [ 15
            5472616e73666f726d2050616e656c
        ]
        /isOpen 0
        /isOn 1
        /hasDialog 0
        /parameterCount 2
        /parameter-1 {
            /key 1954115685
            /showInPalette -1
            /type (enumerated)
            /name [ 7
                526f746174653a
            ]
            /value 5
        }
        /parameter-2 {
            /key 1986096245
            /showInPalette -1
            /type (unit real)
            /value -90.0
            /unit 591490663
        }
    }
}
/action-3 {
    /name [ 10
        526f7461746520313830
    ]
    /keyIndex 0
    /colorIndex 0
    /isOpen 0
    /eventCount 2
    /event-1 {
        /useRulersIn1stQuadrant 0
        /internalName (adobe_selectAll_in_artboard)
        /localizedName [ 22
            53656c65637420416c6c20496e20417274626f617264
        ]
        /isOpen 0
        /isOn 1
        /hasDialog 0
        /parameterCount 0
    }
    /event-2 {
        /useRulersIn1stQuadrant 0
        /internalName (ai_plugin_transformPalette)
        /localizedName [ 15
            5472616e73666f726d2050616e656c
        ]
        /isOpen 0
        /isOn 1
        /hasDialog 0
        /parameterCount 2
        /parameter-1 {
            /key 1954115685
            /showInPalette -1
            /type (enumerated)
            /name [ 7
                526f746174653a
            ]
            /value 5
        }
        /parameter-2 {
            /key 1986096245
            /showInPalette -1
            /type (unit real)
            /value 180.0
            /unit 591490663
        }
    }
}
Тестируйте
 
  • Спасибо
Реакции: Jeine и ~RA~
Статус
Закрыто для дальнейших ответов.