ふわふわぷかぷか

javaって何?から始めた初心者のandroidアプリ開発メモ。でも最近はイラレにはまってます。

【Illustratorスクリプト】左上の座標から任意の距離を移動した位置に四角形を作成するスクリプト


「オブジェクトの左上の座標から任意の距離を移動した位置に四角形を作成するスクリプト」。長い!

説明が難しいのですがこんな感じのイラレスクリプトを作りました。

f:id:fuwafuwapukapuka:20180324012950j:plain

アプリ開発のデモ用なので、普通にイラレを使ってたら必要なさそう?ですがソースコード公開します。

細かいチェックはしていません。このスクリプトを使用して問題が起きた場合責任は負いかねます。

2018/3/31.プレビューを表示するようにしました。

 

使用例↓

f:id:fuwafuwapukapuka:20180324005647p:plain → f:id:fuwafuwapukapuka:20180324005843p:plain → f:id:fuwafuwapukapuka:20180324005956p:plain

①画像を選択。(配置画像でもパスでできたオブジェクトでもOK)

②移動する距離と作成する四角形の辺の長さを入力。

③四角形が作成される。

※x座標は+が右方向、y座標は+が下方向に移動するようになっています。マイナスも入力できます。

 

画像はこちらを使用しています。AIデータあり。商用利用可能で無料でダウンロードできます。

草原と太陽の風景イラスト/無料イラストなら「イラストAC」

すかしの文字は無添加豆腐さんです。

 

以下ソースコードです。

#target "illustrator"  
  
	//選択中のオブジェクトを取得
		var sel = app.activeDocument.selection;

	//1個以上の場合のみ動作
		if(sel.length > 0){
			
			function setRGBColor(r,g,b){
			var tmpColor = new RGBColor();
			tmpColor.red = r;
			tmpColor.green = g;
			tmpColor.blue = b;
			return tmpColor;
}
			
			function main(){
		var bns = sel[0].visibleBounds;
		
		var x =  eval(x_coordinate.text);
		var y =  eval(y_coordinate.text);

		var n1 =  eval(vertical.text);
		var n2 =  eval(side.text);

		docObj = activeDocument.activeLayer;
		square = docObj.pathItems.rectangle((bns[1]-y),(bns[0]+x),n2,n1);
		square.filled = false; // 塗りなし
		square.stroked = true; // 線あり
		square.strokeWidth = 5; // 線幅5ポイント
		square.strokeColor = setRGBColor(100,100,100); // 線の色を指定(グレー)
}


	   
	//ダイアログを表示
		var dialog = new Window("dialog","長方形のサイズを入力",[0,0,300,150]);
		
		//座標
		dialog.add ("statictext", [10,20,50,40], "x座標");
		var x_coordinate = dialog.add("edittext",[50,15,120,40],"10");//数の入力
		dialog.add ("statictext", [10,60,50,80], "y座標");
		var y_coordinate = dialog.add("edittext",[50,55,120,80],"10");//数の入力
		
		//辺の長さ
		dialog.add ("statictext", [160,20,210,40], "横の長さ");
		var side = dialog.add("edittext",[210,15,280,40],"300");//数の入力
		dialog.add ("statictext", [160,60,210,80], "縦の長さ");
		var vertical = dialog.add("edittext",[210,55,280,80],"300");//数の入力

		x_coordinate.onChanging  = function(){
			main();
			app.redraw(); //ドキュメントを再描画
			app.undo(); //アンドゥ
			}
		y_coordinate.onChanging  = function(){
			main();
			app.redraw(); //ドキュメントを再描画
			app.undo(); //アンドゥ
			}
		side.onChanging  = function(){
			main();
			app.redraw(); //ドキュメントを再描画
			app.undo(); //アンドゥ
			}
		vertical.onChanging  = function(){
			main();
			app.redraw(); //ドキュメントを再描画
			app.undo(); //アンドゥ
			}
		dialog.onShow = function() {
			main();
			app.redraw(); //ドキュメントを再描画
			app.undo(); //アンドゥ
}
		
		
		var btnOK = dialog.add("button",[100,102,180,135],"OK",{name:'ok'});//OK
		var btnCancel = dialog.add("button",[200,102,280,135],"cancel",{name:'cancel'});//CANCEL
		x_coordinate.active = true;	//テキストエリアをフォーカスする

		
	//キャンセルの処理
		btnCancel.onClick = function(){ dialog.close(); }
		
	//OKの処理
		btnOK.onClick = function(){
		{ dialog.close(); }//ダイアログを閉じる
		
	//座標を取得
		var bns = sel[0].visibleBounds;
		
		var x =  eval(x_coordinate.text);
		var y =  eval(y_coordinate.text);

		var n1 =  eval(vertical.text);
		var n2 =  eval(side.text);

		docObj = activeDocument.activeLayer;
		square = docObj.pathItems.rectangle((bns[1]-y),(bns[0]+x),n2,n1);
		square.filled = false; // 塗りなし
		square.stroked = true; // 線あり
		square.strokeWidth = 5; // 線幅5ポイント
		square.strokeColor = (0,0,0); // 線の色を指定(黒)
		
	
	//現在の選択を解除
	    app.activeDocument.selection = null; 
		square.selected = true;
	}

		dialog.center();//ウインドウ表示位置をモニターの中心に移動
		dialog.show();//作成したウインドウを表示

   };
//----[ここまで]----

 

イラストダウンロードサイト【イラストAC】でフリー素材を投稿しています。よろしければご覧ください。

プロフィールページ:イラストレーター ふわぷかさんのプロフィール