Доброго времени суток
Нужно написать небольшой скрипт
которьій будет копировать вьіделеньій елемент указаное количество раз по горизонтали и вертикали
и добавлять определеньіе маркерьі но єто уже след етап
для начала хочу разобраться с копированием(duplicate) и размещением елементов на листе (geometricBounds)
взял код с Урока №2 но у меня копирует с отступом а нужно что б елементьі распологались один к одному без отступа
и можно ли как-то указать сразу количество копий ну например через диалоговое окно вписать сколько нужно сделать копий
есть вот код окна
Нужно написать небольшой скрипт
которьій будет копировать вьіделеньій елемент указаное количество раз по горизонтали и вертикали
и добавлять определеньіе маркерьі но єто уже след етап
для начала хочу разобраться с копированием(duplicate) и размещением елементов на листе (geometricBounds)
взял код с Урока №2 но у меня копирует с отступом а нужно что б елементьі распологались один к одному без отступа
Код:
function main () {
var doc = app.activeDocument;
//Сохраняем в отдельные переменные для удобства
var aLeft = activeDocument.selection[0];
var aRight = activeDocument.selection[2];
var aTop = activeDocument.selection[1];
var aBottom = activeDocument.selection[3];
var aWidth = aRight - aLeft;
var aHeight = aTop - aBottom;
//Выделенные объекты находятся в массиве doc.selection их необходимо скопировать в отдельный массив, иначе при копировании объектов массив с выделением нарушится
var sel = [];
for (var i = 0 ; i < doc.selection.length; i++) {
sel.push(doc.selection[i]);
}
for (var i = 0 ; i < sel.length; i++) {
var item = sel[i];
var iBounds = item.geometricBounds;
var iLeft = iBounds[0];
var iRight = iBounds[2];
var iTop = iBounds[1];
var iBottom = iBounds[3];
var copyItem = undefined;
var copyItem2 = undefined;
}
copyItem = item.duplicate(item, ElementPlacement.PLACEAFTER);
copyItem.translate(iRight,0);
}
main ();
var doc = app.activeDocument;
var docVB = doc.visibleBounds;
var left = docVB[0];
var top = docVB[1];
var right = docVB[2];
var bottom = docVB[3];
var ab = doc.artboards.getActiveArtboardIndex();
doc.artboards[ab].artboardRect = [left,top,right,bottom];
и можно ли как-то указать сразу количество копий ну например через диалоговое окно вписать сколько нужно сделать копий
есть вот код окна
Код:
// DIALOG
// ======
var dialog = new Window("dialog");
dialog.text = "Montaż_WITO";
dialog.orientation = "column";
dialog.alignChildren = ["center","top"];
dialog.spacing = 10;
dialog.margins = 16;
// PANEL1
// ======
var panel1 = dialog.add("panel", undefined, undefined, {name: "panel1"});
panel1.text = "Wypełnij i lecimy z koksem";
panel1.orientation = "column";
panel1.alignChildren = ["left","center"];
panel1.spacing = 17;
panel1.margins = 20;
// GROUP1
// ======
var group1 = panel1.add("group", undefined, {name: "group1"});
group1.orientation = "row";
group1.alignChildren = ["left","center"];
group1.spacing = 10;
group1.margins = 0;
var statictext1 = group1.add("statictext", undefined, undefined, {name: "statictext1"});
statictext1.text = "Ilość zębów:";
statictext1.preferredSize.width = 94;
var Z = group1.add('edittext {justify: "center", properties: {name: "Z"}}');
Z.text = "72";
Z.preferredSize.width = 70;
// GROUP2
// ======
var group2 = panel1.add("group", undefined, {name: "group2"});
group2.orientation = "row";
group2.alignChildren = ["left","center"];
group2.spacing = 10;
group2.margins = 0;
var statictext2 = group2.add("statictext", undefined, undefined, {name: "statictext2"});
statictext2.text = "Ilość użytków:";
var UH = group2.add('edittext {properties: {name: "UH"}}');
UH.text = "2";
var statictext3 = group2.add("statictext", undefined, undefined, {name: "statictext3"});
statictext3.text = "x";
var UW = group2.add('edittext {properties: {name: "UW"}}');
UW.text = "4";
// DIALOG
// ======
var button1 = dialog.add("button", undefined, undefined, {name: "button1"});
button1.text = "ok";
button1.preferredSize.width = 100;
button1.onClick = function (event) {
dialog.close();
}
dialog.show();
var ZM = parseInt(Z.text); // сохраняем полученньіе данньіе в переменньіе
var WU = parseInt(UW.text);
var HU= parseInt(UH.text);
Последнее редактирование: