Использовать app.executeMenuCommand - это понятно, так делал - а дальше?Двумя вызовами app.executeMenuCommand - "selectAll" и "group"
Подумаешь бином Ньютона!
как перебросить этот объект в открытый документи отмасштабировать его там
Использовать app.executeMenuCommand - это понятно, так делал - а дальше?Двумя вызовами app.executeMenuCommand - "selectAll" и "group"
Подумаешь бином Ньютона!
Копипастнуть (ну или duplicate как было сказано выше) в открытый документ, затем масштабировать экшнома дальше?
var aDoc = app.activeDocument;
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;
var abIdx = aDoc.artboards.getActiveArtboardIndex();
var actAbBds = aDoc.artboards[abIdx].artboardRect;
var obj2move = aDoc.selection[0];
obj2move.position = new Array ((actAbBds[2]-actAbBds[0])/2 - obj2move.width/2, (actAbBds[3]-actAbBds[1])/2 + obj2move.height/2);
var aDoc = app.activeDocument;
var Sel = aDoc.selection;
if (Sel.length >0 ) {
var abIdx = aDoc.artboards.getActiveArtboardIndex();
var actAbBds = aDoc.artboards[abIdx].artboardRect;
var vBounds = Sel[0].visibleBounds;
vBounds_Li = vBounds[0];
vBounds_Ob = vBounds[1];
vBounds_Re = vBounds[2];
vBounds_Un = vBounds[3];
if (Sel.length >1 ) {
for (i=1; i<Sel.length ; i++) {
vBdsI = Sel.visibleBounds;
if( vBounds_Li > vBdsI[0] ) {vBounds_Li = vBdsI[0]};
if( vBounds_Ob < vBdsI[1] ) {vBounds_Ob = vBdsI[1]};
if( vBounds_Re < vBdsI[2] ) {vBounds_Re = vBdsI[2]};
if( vBounds_Un > vBdsI[3] ) {vBounds_Un = vBdsI[3]};
}
aDoc.artboards[abIdx].artboardRect = [vBounds_Li +((vBounds_Re - vBounds_Li)/2-(actAbBds[2]-actAbBds[0])/2), vBounds_Ob -((vBounds_Ob - vBounds_Un)/2+(actAbBds[3]-actAbBds[1])/2), vBounds_Li +((vBounds_Re - vBounds_Li)/2-(actAbBds[2]-actAbBds[0])/2)+(actAbBds[2]-actAbBds[0]), vBounds_Ob -((vBounds_Ob - vBounds_Un)/2+(actAbBds[3]-actAbBds[1])/2)+(actAbBds[3]-actAbBds[1])];
}
} else {
alert ("No selection");
}
Так там и нашлаЗачем так далеко ходила?
да работает тоже ))))Так там и нашла
if ( app.documents.length > 0 ) {
var ad=app.activeDocument;
var ar=ad.artboards[ad.artboards.getActiveArtboardIndex()].artboardRect;
var cX=(ar[0]+ar[2])/2;
var cY=(ar[1]+ar[3])/2;
var cnt=new Array();
var x1=0;
var x2=0;
var y1=0;
var y2=0;
var first=true;
for (var j=0;j<ad.pageItems.length;j++)
{
pi=ad.pageItems[j];
if ((pi.parent.typename=="Layer") && (pi.selected))
{
cnt.push(pi);
if (first || (x1<pi.controlBounds[0])) x1=pi.controlBounds[0];
if (first || (x2>pi.controlBounds[2])) x2=pi.controlBounds[2];
if (first || (y1<pi.controlBounds[3])) y1=pi.controlBounds[3];
if (first || (y2>pi.controlBounds[1])) y2=pi.controlBounds[1];
if (first || (x1<pi.controlBounds[2])) x1=pi.controlBounds[2];
if (first || (x2>pi.controlBounds[0])) x2=pi.controlBounds[0];
if (first || (y1<pi.controlBounds[1])) y1=pi.controlBounds[1];
if (first || (y2>pi.controlBounds[3])) y2=pi.controlBounds[3];
first=false;
}
}
cx=(x1+x2)/2;
cy=(y1+y2)/2;
if (cnt.length)
for (var j=0;j<cnt.length;j++)
{
cnt[j].translate(cX-cx,cY-cy);
}
else alert("No selection!");
} else alert("No document!");
проще та да, но как поменять выравнивание если стоит к примеру "по выделенному", на выравнивание "по артборду"?проще экшен запустить
ну это уже слишком сложно....))))проще та да, но как поменять выравнивание если стоит к примеру "по выделенному", на выравнивание "по артборду"?
Посмотреть вложение 146948
Ну или его непросто запустить нужно, а создать таки сначала
if ( app.documents.length > 0 ) {
var ad=app.activeDocument;
var ar=ad.artboards[ad.artboards.getActiveArtboardIndex()].artboardRect;
var cX=(ar[0]+ar[2])/2;
var cY=(ar[1]+ar[3])/2;
var cnt=new Array();
var x1=0;
var x2=0;
var y1=0;
var y2=0;
var first=true;
for (var j=0;j<ad.pageItems.length;j++)
{
pi=ad.pageItems[j];
if ((pi.parent.typename=="Layer") && (pi.selected))
{
x1=pi.controlBounds[0];
x2=pi.controlBounds[2];
y1=pi.controlBounds[3];
y2=pi.controlBounds[1];
cx=(x1+x2)/2;
cy=(y1+y2)/2;
pi.translate(cX-cx,cY-cy);
}
}
} else alert("No document!");