var doc = app.activeDocument; var grid_settings = {} var dlg = new Window('dialog', 'Создание сетки'); dlg.add('statictext', undefined, 'Количество колонок'); colInput = dlg.add('edittext', undefined, '12'); dlg.add('statictext', undefined, 'Межколонная ширина'); gutInput = dlg.add('edittext', undefined, '20'); dlg.add('statictext', undefined, 'Ширина полей'); marInput = dlg.add('edittext', undefined, '30'); dlg.add('statictext', undefined, 'Интерлиньяж'); blInput = dlg.add('edittext', undefined, '18'); dlg.add('statictext', undefined, 'Группировка строк'); grInput = dlg.add('edittext', undefined, '4'); var crButton = dlg.add('button', undefined, 'Создать сетку'); var d_width = Number(doc.width); var d_height = Number(doc.height); crButton.onClick = function(){ grid_settings.baseline = Number(blInput.text) //px grid_settings.group = Number(grInput.text) //num grid_settings.columns = Number(colInput.text) //num grid_settings.gutter = Number(gutInput.text) //px grid_settings.margin = Number(marInput.text) //px grid_settings.color = app.foregroundColor; drawAll(); dlg.hide(); } dlg.show(); /* try{ eval("grid_settings ="+ doc.info.caption);} catch(e){} alert(grid_settings) if (grid_setting == ""){ } else { //doc.info.caption = "{ baseline: "+grid_settings.baseline+", group: "+grid_settings.group+", columns: "+grid_settings.columns+", gutter: "+grid_settings.gutter+", margin: "+grid_settings.margin+"}"; } */ function drawAll(){ var c_width = (d_width-(grid_settings.margin*2)-(grid_settings.gutter*(grid_settings.columns-1)))/grid_settings.columns //draw columns drawStrokes(0, 0, c_width, d_height, grid_settings.margin, grid_settings.gutter, "h", grid_settings.color); var cols = doc.activeLayer cols.name = "Cols" //draw rows drawStrokes(0, 0, d_width, (grid_settings.group*grid_settings.baseline), 0, grid_settings.baseline, "v", grid_settings.color); var rows = doc.activeLayer rows.name = "Rows" //draw baseline drawStrokes(0, 0, d_width, 1, grid_settings.baseline-1, grid_settings.baseline-1, "l", grid_settings.color); var baseline = doc.activeLayer baseline.name = "Baseline" addToSelection(rows); addToSelection(cols); convertToSmart(); var grid = doc.activeLayer grid.name = "[grid]" } function drawStrokes(x, y, w, h, m, g , d, c){ var prevColor = app.foregroundColor; app.foregroundColor = grid_settings.color; // ======================================================= var id2631 = charIDToTypeID( "Mk " ); var desc192 = new ActionDescriptor(); var id2632 = charIDToTypeID( "null" ); var ref77 = new ActionReference(); var id2633 = stringIDToTypeID( "contentLayer" ); ref77.putClass( id2633 ); desc192.putReference( id2632, ref77 ); var id2634 = charIDToTypeID( "Usng" ); var desc193 = new ActionDescriptor(); var id2635 = charIDToTypeID( "Type" ); var id2636 = stringIDToTypeID( "solidColorLayer" ); desc193.putClass( id2635, id2636 ); var id2637 = charIDToTypeID( "Shp " ); var desc194 = new ActionDescriptor(); var id2638 = charIDToTypeID( "Top " ); var id2639 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc194.putUnitDouble( id2638, id2639, y ); } else { desc194.putUnitDouble( id2638, id2639, y+m ); } var id2640 = charIDToTypeID( "Left" ); var id2641 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc194.putUnitDouble( id2640, id2641, x+m ); } else { desc194.putUnitDouble( id2640, id2641, x ); } var id2642 = charIDToTypeID( "Btom" ); var id2643 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc194.putUnitDouble( id2642, id2643, y+h ); } else { desc194.putUnitDouble( id2642, id2643, y+h+m ); } var id2644 = charIDToTypeID( "Rght" ); var id2645 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc194.putUnitDouble( id2644, id2645, x+w+m ); } else { desc194.putUnitDouble( id2644, id2645, x+w ); } var id2646 = charIDToTypeID( "Rctn" ); desc193.putObject( id2637, id2646, desc194 ); var id2647 = stringIDToTypeID( "contentLayer" ); desc192.putObject( id2634, id2647, desc193 ); executeAction( id2631, desc192, DialogModes.NO ); var it=0; if (d == "h"){ it = grid_settings.columns-1 } else { it = Math.round(d_height/(h+g)) - 1; } for (var i= 0; i < it; i++){ // ======================================================= var id2648 = charIDToTypeID( "AddT" ); var desc195 = new ActionDescriptor(); var id2649 = charIDToTypeID( "null" ); var ref78 = new ActionReference(); var id2650 = charIDToTypeID( "Path" ); var id2651 = charIDToTypeID( "Ordn" ); var id2652 = charIDToTypeID( "Trgt" ); ref78.putEnumerated( id2650, id2651, id2652 ); desc195.putReference( id2649, ref78 ); var id2653 = charIDToTypeID( "T " ); var desc196 = new ActionDescriptor(); var id2654 = charIDToTypeID( "Top " ); var id2655 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc196.putUnitDouble( id2654, id2655, y ); } else{ desc196.putUnitDouble( id2654, id2655, h*(i+1)+g*(i+1)+m ); } var id2656 = charIDToTypeID( "Left" ); var id2657 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc196.putUnitDouble( id2656, id2657, ( m + (w*(i+1)) + (g*(i+1))) ); } else{ desc196.putUnitDouble( id2656, id2657, (x)); } var id2658 = charIDToTypeID( "Btom" ); var id2659 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc196.putUnitDouble( id2658, id2659, y+h ); } else{ desc196.putUnitDouble( id2658, id2659, h*(i+1)+g*(i+1)+h+m ); } var id2660 = charIDToTypeID( "Rght" ); var id2661 = charIDToTypeID( "#Pxl" ); if (d == "h"){ desc196.putUnitDouble( id2660, id2661, ( (m + (w*(i+1)) + (g*(i+1)))+w )); } else{ desc196.putUnitDouble( id2660, id2661, (x+w) ); } var id2662 = charIDToTypeID( "Rctn" ); desc195.putObject( id2653, id2662, desc196 ); executeAction( id2648, desc195, DialogModes.NO ); } app.foregroundColor = prevColor; doc.activeLayer.opacity = 10; } function addToSelection(layer){ var id549 = charIDToTypeID( "slct" ); var desc107 = new ActionDescriptor(); var id550 = charIDToTypeID( "null" ); var ref93 = new ActionReference(); var id551 = charIDToTypeID( "Lyr " ); ref93.putName( id551, layer.name ); desc107.putReference( id550, ref93 ); var id552 = stringIDToTypeID( "selectionModifier" ); var id553 = stringIDToTypeID( "selectionModifierType" ); var id554 = stringIDToTypeID( "addToSelection" ); desc107.putEnumerated( id552, id553, id554 ); var id555 = charIDToTypeID( "MkVs" ); desc107.putBoolean( id555, false ); executeAction( id549, desc107, DialogModes.NO ); } function convertToSmart(){ var id583 = stringIDToTypeID( "newPlacedLayer" ); executeAction( id583, undefined, DialogModes.NO ); } function deleteLayer(layer){ var id653 = charIDToTypeID( "slct" ); var desc130 = new ActionDescriptor(); var id654 = charIDToTypeID( "null" ); var ref112 = new ActionReference(); var id655 = charIDToTypeID( "Lyr " ); ref112.putName( id655, layer.name ); desc130.putReference( id654, ref112 ); var id656 = charIDToTypeID( "MkVs" ); desc130.putBoolean( id656, false ); executeAction( id653, desc130, DialogModes.NO ); // ======================================================= var id657 = charIDToTypeID( "Dlt " ); var desc131 = new ActionDescriptor(); var id658 = charIDToTypeID( "null" ); var ref113 = new ActionReference(); var id659 = charIDToTypeID( "Lyr " ); var id660 = charIDToTypeID( "Ordn" ); var id661 = charIDToTypeID( "Trgt" ); ref113.putEnumerated( id659, id660, id661 ); desc131.putReference( id658, ref113 ); executeAction( id657, desc131, DialogModes.NO ); }