Hi, Thanks to Peter Kahrel who made this one Peter Kahrel -- Free script | Align objects I was ask him is there any chance to make modification. So he did it - and i'm very helpfoul for him. So - what i maded with this? I was created shortcut CTRL+SHIFT+C and attached script: And now what i have ?:D When i select two object's i can simply pres shorcut described above and have aligned two objects Mr. Peter Kharel - thank you for all - Your are Amazing!!! (BTW: First selected object is "key object") // DESCRIPTION Align frames CorelDraw-style: last selected frame is target // Peter Kahrel var obj = app.selection; if( obj.length < 2 ) { errorM('Select at least two objects'); } function errorM( m ){ alert( m ); exit() } function getPosition( o, pos ) { switch( pos ) { case 'top' : return o.geometricBounds[0]; case 'left' : return o.geometricBounds[1]; case 'bottom' : return o.geometricBounds[2]; case 'right' : return o.geometricBounds[3]; case 'hcentre' : return o.geometricBounds[1] + ((o.geometricBounds[3] - o.geometricBounds[1]) / 2); case 'vcentre' : return o.geometricBounds[0] + ((o.geometricBounds[2] - o.geometricBounds[0]) / 2); } } function align_hor( obj, source_align, target_align ){ var target = getPosition( obj[0], target_align ) for( var i = 1; i < obj.length; i++ ) { obj.move( undefined, [target - getPosition(obj,source_align), 0], true ); } } function align_vert( obj, source_align, target_align ){ var target = getPosition( obj[0], target_align ) for( var i = 1; i < obj.length; i++ ) { obj.move( undefined, [0, target - getPosition(obj,source_align)], true ) } } function alignFrames (type) { switch (type) { // horizontal alignment case 'RL' : align_hor( obj, 'right', 'left'); break; case 'RC' : align_hor( obj, 'right', 'hcentre'); break; case 'RR' : align_hor( obj, 'right', 'right'); break; case 'CL' : align_hor( obj, 'hcentre', 'left'); break; case 'CCH' : align_hor( obj, 'hcentre', 'hcentre'); break; case 'CR' : align_hor( obj, 'hcentre', 'right'); break; case 'LL' : align_hor( obj, 'left', 'left'); break; case 'LC' : align_hor( obj, 'left', 'hcentre'); break; case 'LR' : align_hor( obj, 'left', 'right'); break; // vertical alignment case 'BT' : align_vert( obj, 'bottom', 'top'); break; case 'BC' : align_vert( obj, 'bottom', 'vcentre'); break; case 'BB' : align_vert( obj, 'bottom', 'bottom'); break; case 'CT' : align_vert( obj, 'vcentre', 'top'); break; case 'CCV' : align_vert( obj, 'vcentre', 'vcentre'); break; case 'CB' : align_vert( obj, 'vcentre', 'bottom'); break; case 'TT' : align_vert( obj, 'top', 'top'); break; case 'TC' : align_vert( obj, 'top', 'vcentre'); break; case 'TB' : align_vert( obj, 'top', 'bottom'); break; default : errorM('Illegal input.') } } alignFrames ('CCH'); alignFrames ('CCV'); //~ function alignType(){ //~ var dlg = app.dialogs.add( { name: 'Align' }); //~ with( dlg.dialogColumns.add() ) //~ with( borderPanels.add() ) //~ var userSelect = textEditboxes.add( { editContents : 'CCH' } ); //~ if( dlg.show() ) //~ { //~ var temp = userSelect.editContents; //~ dlg.destroy(); //~ return temp; //~ } //~ else //~ { //~ dlg.destroy(); //~ exit(); //~ } //~ } So we can close ticket as it is fixed
... View more