【Illustratorスクリプト】ランダムに線幅を変更するスクリプト。
Windows10、CC2021
選択したオブジェクトの線幅をランダムに変更してくれるスクリプトです。
0.5刻みになるようにしてあります。
※選択したオブジェクトに線が無いものが含まれている場合、キャンセルをした場合に1つ前の状態に戻ってしまいます。(Ctri+zを押したのと同じことになります)
「もう1回」を2回以上押すとどんどん戻っていきます。
また、OKを押しても何も起きません。
「×」か「OK」を押せば正常に閉じれるはずです。
※全て線がある場合、スクリプトを実行した後に「×」を押してウインドウを消した場合、線幅が変わったままウインドウだけ閉じます。
「キャンセル」で閉じるのがいいです。
「×」で閉じた場合は「Ctri+z」で戻れます。
※グループ化しないで使ってください。
※数値の欄は小数点はいくつでも入れられますが、0.5刻みになります。
切り捨てか切り上げかは忘れちゃいました。
このスクリプト を使用して問題が起きた場合責任は負いません。
自分用に作ってるので、中途半端でごめんなさい。
こんなかんじです↓
ランダムに線幅を変更するスクリプト。
— ふわぷか (@float_jelly) 2021年9月9日
0.5刻み。 pic.twitter.com/GqtH0TwVki
以下ソースコードです。
#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 make(){
//2個以上の場合繰り返し
sel = activeDocument.selection;
for (i=0; i<sel.length; i++){
var a = parseInt(min.text);
var b = parseInt(max.text);
if(a >= b) {
var b = parseInt(min.text);
var a = parseInt(max.text);
}
else {
;
}
var ran1 = Math.floor(( Math.random() * (b+1 - a) ) + a) ;
var ran2 = Math.floor( Math.random() * (2 - 0) );
if (ran1 == b) {
var senhaba = ran1;
} else {
var senhaba = ran1 + ran2/2;
}
sel[i].strokeWidth = senhaba;
}
}
//ダイアログを表示
var dialog = new Window("dialog","線幅をランダムに変更",[0,0,280,120]);
dialog.add ("statictext", [10,20,60,40], "範囲");
var min = dialog.add("edittext",[50,20,100,40],"1");//最小値
dialog.add ("statictext", [110,20,130,40], "~");
var max = dialog.add("edittext",[130,20,180,40],"5");//最大値
var btnSai = dialog.add("button",[10,70,80,100],"もう1回",{name:'sai'});//もう1回
var btnOK = dialog.add("button",[100,70,170,100],"OK",{name:'ok'});//OK
var btnCancel = dialog.add("button",[190,70,260,100],"cancel",{name:'cancel'});//CANCEL
min.active = true; //テキストエリアをフォーカスする
dialog.onShow = function() {
make();
app.redraw(); //ドキュメントを再描画
}
//プレビュー
min.onChanging = function(){
make();
app.undo();
make();
app.redraw();
}
max.onChanging = function(){
make();
app.undo();
make();
app.redraw();
}
//もう1回の処理
btnSai.onClick = function(){
app.undo(); //アンドゥ
make();
app.redraw(); //ドキュメントを再描画
}
//キャンセルの処理
btnCancel.onClick = function(){
app.undo();
dialog.close(); }
//OKの処理
btnOK.onClick = function(){
dialog.close(); //ダイアログを閉じる
}
dialog.center();//ウインドウ表示位置をモニターの中心に移動
dialog.show();//作成したウインドウを表示
};