今回のスクリプトは図形の中心から引き出し線を描画します。以下のスクリプトは選択した図形の中心から引き出し線を描画します。
// 選択した図形の中心から引き出し線を描く
(function(){
var lineWidth = 40; // 40pt。横の引き出し線の長さ
var lineHeight = 20; // 20pt。縦の引き出し線の長さ
var lineType = 0; // 引き出し線の種類
// 選択された図形の座標を取得して線を描画
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
var rect = selObj[i].geometricBounds;
var x1 = rect[0];
var y1 = rect[1];
var x2 = rect[2];
var y2 = rect[3];
var cx = x1 + (x2-x1)/2; // 中心X座標
var cy = y1 + (y2-y1) / 2; // 中心Y座標
var w = x2-x1;
var h = Math.abs(y2-y1);
switch(lineType){
case 0:
drawLine(cx, cy, cx+w/2+lineWidth, cy);
drawLine(cx, cy, cx, cy+h/2+lineHeight);
break;
case 1:
drawLine(cx-w/2-lineWidth, cy, cx+w/2+lineWidth, cy);
drawLine(cx, cy-h/2-lineHeight, cx, cy+h/2+lineHeight);
break;
}
}
})();
function drawLine(ax1, ay1, ax2, ay2){
var lineObj = app.activeDocument.pathItems.add();
lineObj.setEntirePath([[ax1, ay1],[ax2, ay2]]);
lineObj.stroked = true;
lineObj.strokeWidth = 1; // 1ptの線
lineObj.strokeColor = setColor(0, 0, 255, 100,100,0,0); // 青色の線
}
function setColor(r, g, b, c, m, y, k){
var dcs = app.activeDocument.documentColorSpace;
if (dcs == DocumentColorSpace.RGB){
var RGB = new RGBColor();
RGB.red = r;
RGB.green = g;
RGB.blue = b;
return RGB;
}
if (dcs == DocumentColorSpace.CMYK){
var CMYK = new CMYKColor();
CMYK.cyan = c;
CMYK.magenta = m;
CMYK.yellow = y;
CMYK.black = k;
return CMYK;
}
}
引き出し線の長さは縦と横を別々指定できます。長さは以下の2行にある40、20の値を変更してください。
var lineWidth = 40; // 40pt。横の引き出し線の長さ
var lineHeight = 20; // 20pt。縦の引き出し線の長さ
また、中心線をどこから描画するかは以下の数値を変更してください。0または1を指定することができます。
var lineType = 0;
[
サンプルをダウンロード]