Windows10、CC2021
オブジェクトの大きさが入力した数値になるように拡大or縮小します。
縦と横、大きい方が入力した数値になります。
線がある場合、少しだけ誤差があります。
※このスクリプト を使用して問題が起きた場合責任は負いません。
こんな感じです↓
大きさを一括で変更 pic.twitter.com/risdJ8G8Kw
— ふわぷか (@float_jelly) 2024年7月29日
以下ソースコードです。
#target "illustrator" //選択中のオブジェクトを取得 var sel = app.activeDocument.selection; //選択している場合のみ動作 if(sel.length > 0){ //ダイアログの設定 var dialog = new Window("dialog","サイズの変更",[0,0,190,120]); dialog.add ("statictext", [10,20,60,40], "サイズ"); var length = dialog.add("edittext",[60,15,150,40],"480");//数の入力 var btnOK = dialog.add("button",[10,70,80,100],"OK",{name:'ok'});//OK var btnCancel = dialog.add("button",[100,70,170,100],"cancel",{name:'cancel'});//CANCEL length.active = true; //テキストエリアをフォーカスする //キャンセルの処理 btnCancel.onClick = function(){ dialog.close(); } //OKの処理 btnOK.onClick = function(){ dialog.close(); //ダイアログを閉じる var n=parseInt(length.text); for (i=0; i<sel.length; i++){ x1 = sel[i].visibleBounds[0]; y1 = sel[i].visibleBounds[1]; x2 = sel[i].visibleBounds[2]; y2 = sel[i].visibleBounds[3]; width = x2-x1; height = -(y2-y1); //大きさの変更 if(width>height){ //横長の場合 rwidth=n/(width)*100; sel[i].resize(rwidth,rwidth,true,true,true,true,rwidth); }else{ //縦長の場合 rheight=n/(height)*100; sel[i].resize(rheight,rheight,true,true,true,true,rheight); } } } dialog.center();//ダイアログ表示位置をモニターの中心に移動 dialog.show();//作成したダイアログを表示 }
resizeの中身
sel[i].resize(rheight,rheight,true,true,true,true,rheight);
sel[i].resize(横幅,高さ,オブジェクトの変形,パターンの変形,グラデーション,線のパターン,線幅);
参考:
スクリプトでイラストのサイズを相対的に変更する【Illustrator】 | 生焼けプログラマーの雑記帳
Illustrator JavaScript Reference イラストレーター JavaScript リファレンス