일러스트 스크립트

선택 개체의 크기를 알아낸 다음, 개체 주변에 일정 간격을 두고 사각형을 그리는 일러스트레이터 스크립트

illustscript 2024. 7. 24. 09:07

선택 개체의 크기를 알아낸 다음, 개체 주변에 일정 간격을 두고 사각형을 그리는 일러스트레이터 스크립트

 

// getBounds.jsx
// illustscript.tistory.com

var title = "getBounds";

var mm = 2.83464566929134;

var noColor = new NoColor();

var myRed = new CMYKColor();
	myRed.black = 0;
	myRed.cyan = 0;
	myRed.magenta = 100;
	myRed.yellow = 100;
	
var docRef = activeDocument; 
var Sel = docRef.selection;
var margin = (prompt ("margin?(mm)", 10, title));

if(margin){
	var WHXY = getBounds(Sel[0]).split(",");
	var W = WHXY[0]*1;
	var H = WHXY[1]*1;
	var X = WHXY[2]*1;
	var Y = WHXY[3]*1;

	margin = margin*mm;

	drawRect(X-margin, Y+margin, W+margin*2, H+margin*2);	
}

function getBounds(sel){
	var gBounds = (0,0,0,0);
	gBounds = sel.geometricBounds;
	gBounds_L = gBounds[0];	
	gBounds_T = gBounds[1];
	gBounds_R = gBounds[2];
	gBounds_B = gBounds[3];
	
	W = gBounds_R-gBounds_L;
	H = gBounds_T-gBounds_B;
	X = gBounds_L;
	Y = gBounds_T;
	
	return  W+","+H+","+X+","+Y;
}

function drawRect(X, Y, W, H){
	var rect = docRef.pathItems.rectangle(Y, X, W, H);
		rect.fillColor = noColor;
		rect.stroked = true;
		rect.strokeWidth = 2*mm;
		rect.strokeColor = myRed;
}

 

 

결과 :