Illustrator レイヤー名を連番にリネーム スクリプト
4546 ワード
イラレのレイヤー名を連番(000.001.002...~099)にリネーム
79個ある大量のレイヤーネームを変更する。
イラレスクリプトはやった事無いけど、調べながら&昔作ったゼロパディングリネームも使いました。
コード
var doc = app.activeDocument;
var numLay = doc.layers.length; // layer length
function zeropaddingNum(num,thisNum){
var zerocount = '';
var toNum = String(num).length;
for (var i = 0 ; i < toNum; i++ ){
zerocount = zerocount+'0';
}
return ( String ( zerocount + String ( thisNum ) ). slice(- (toNum+1) ) );
}
function Rename(){
for ( var i = 0 ; i < numLay ; i ++ ){
doc.layers[i].name= zeropaddingNum(numLay,i);
}
}
Rename();
var doc = app.activeDocument;
var numLay = doc.layers.length; // layer length
function zeropaddingNum(num,thisNum){
var zerocount = '';
var toNum = String(num).length;
for (var i = 0 ; i < toNum; i++ ){
zerocount = zerocount+'0';
}
return ( String ( zerocount + String ( thisNum ) ). slice(- (toNum+1) ) );
}
function Rename(){
for ( var i = 0 ; i < numLay ; i ++ ){
doc.layers[i].name= zeropaddingNum(numLay,i);
}
}
Rename();
ゼロパディングは以前にも記事を書いていますが、
レイヤー数が2桁なら0**
レイヤー数が3桁なら0***
と最大数の桁数の頭に0が付くようになっています。
こんな感じです。
気付いたこと
さすがに大量の変更を加えるので、アンドゥグループを使おうと思ったんですがエラー。
恐る恐るこのコードで実行してみると、AEみたいに、レイヤー1つ1つではなく
一括でやってくれているみたいです。
UNDOしたら全ての名前が元に戻ってくれます。
app.beginUndoGroup("undo");
app.endUndoGroup();
このメソッドは必要ないようです。
Author And Source
この問題について(Illustrator レイヤー名を連番にリネーム スクリプト), 我々は、より多くの情報をここで見つけました https://qiita.com/TimeToEdit/items/3c882f90df1f2cd2a5de著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .