書いたコード
#targetengine "getDistance"
var i = 0;
var doc = app.activeDocument;
var selObjs = doc.selection;
var resultX = "";
var resultY = "";
if (selObjs.length !== 2) {
alert("2つのオブジェクトを選択してください");
} else {
var x1_1 = selObjs[0].geometricBounds[1];
var x1_2 = selObjs[0].geometricBounds[3];
var x2_1 = selObjs[1].geometricBounds[1];
var x2_2 = selObjs[1].geometricBounds[3];
if (x1_2 < x2_2) {
leftObj = selObjs[0];
rightObj = selObjs[1];
} else {
leftObj = selObjs[1];
rightObj = selObjs[0];
}
if (leftObj.geometricBounds[3] > rightObj.geometricBounds[1]) {
resultX = "--";
} else {
resultX = rightObj.geometricBounds[1] - leftObj.geometricBounds[3];
}
var y1_1 = selObjs[0].geometricBounds[0];
var y1_2 = selObjs[0].geometricBounds[2];
var y2_1 = selObjs[1].geometricBounds[0];
var y2_2 = selObjs[1].geometricBounds[2];
if (y1_2 < y2_2) {
topObj = selObjs[0];
bottomObj = selObjs[1];
} else {
topObj = selObjs[1];
bottomObj = selObjs[0];
}
if (topObj.geometricBounds[2] > bottomObj.geometricBounds[0]) {
resultY = "--";
} else {
resultY = bottomObj.geometricBounds[0] - topObj.geometricBounds[2];
}
var myDlg = new Window("palette", "距離");
var main = myDlg.add("group {alignChildren: 'left', orientation: 'column'}");
var Xrow = main.add("group");
var Xtitle = Xrow.add("statictext", undefined, "X: ");
var Xtxt = Xrow.add("edittext", [0, 0, 110, 20], resultX);
var Yrow = main.add("group");
var Ytitle = Yrow.add("statictext", undefined, "Y: ");
var Ytxt = Yrow.add("edittext", [0, 0, 110, 20], resultY);
myDlg.show();
}
メモ
積み残し
参考