#target Illustrator
/*
#info К выделенным объектам поочередно применяется операция "Shear" из панели "Transform"
*/
if (app.documents.length > 0 ) {
var doc = app.activeDocument;
var sel = doc.selection;
if (sel.length > 0 ) {
dialog (sel);
};
};
function dialog (sel) {
var dialog = new Window("dialog");
dialog.text = "Set the shear angle";
dialog.orientation = "row";
dialog.alignChildren = ["center","top"];
dialog.spacing = 15;
dialog.margins = 9;
var edittext1 = dialog.add('edittext {properties: {name: "edittext1"}}');
edittext1.text = "0";
edittext1.preferredSize.width = 40;
edittext1.alignment = ["center","center"];
var batOK = dialog.add("button", undefined, undefined, {name: "batOK"});
batOK.text = "Ok";
batOK.preferredSize.width = 90;
batOK.onClick = function() {
var angle = edittext1.text;
angle = angle.replace(',', '.')*1
if (angle) {
if (angle > 89.9) {angle = 89.9};
if (angle < -89.9) {angle = -89.9};
angle = String(angle.toFixed(1));
addAction (angle);
doc.selection = null;
for ( i = 0; i < sel.length; i++ ) {
sel[i].selected = true;
redraw ();
app.doScript("ScriptAction", "ScriptSet");
sel[i].selected = false;
redraw ();
};
unloadAction("ScriptSet", "");
};
};
dialog.show();
};
function addAction (angle) {
var ActionString = [ '/version 3',
'/name [ 9',
' 536372697074536574',
']',
'/isOpen 1',
'/actionCount 1',
'/action-1 {',
' /name [ 12',
' 536372697074416374696f6e',
' ]',
' /keyIndex 0',
' /colorIndex 0',
' /isOpen 1',
' /eventCount 1',
' /event-1 {',
' /useRulersIn1stQuadrant 0',
' /internalName (ai_plugin_transformPalette)',
' /localizedName [ 15',
' 5472616e73666f726d2050616e656c',
' ]',
' /isOpen 1',
' /isOn 1',
' /hasDialog 0',
' /parameterCount 2',
' /parameter-1 {',
' /key 1954115685',
' /showInPalette -1',
' /type (enumerated)',
' /name [ 6',
' 53686561723a',
' ]',
' /value 4',
' }',
' /parameter-2 {',
' /key 1986096245',
' /showInPalette -1',
' /type (unit real)',
' /value ' + angle,
' /unit 591490663',
' }',
' }',
'}'].join('\n');
var f = new File('~/ScriptSet.aia');
f.open('w');
f.write(ActionString);
f.close();
loadAction (f);
f.remove();
ActionString = null;
};