Illustratorで特定レイヤーを削除するscript

Illustratorで特定レイヤーを削除するscript:

納品のたびに「レイヤーの削除」「アートボードの削除」をやっているが、手作業だと漏れがある。

毎回の作業なので半自動化するために、レイヤーとアートボードの命名規則を作り、scriptを組む。


命名規則の例

  • 削除したいレイヤー名

    • 「抜き罫」、「図面用」
  • 削除したいアートボード名

    • 「図面用」


レイヤー名を指定して削除

行う操作の順序は以下の通り。

1. 特定のレイヤー名を検索 1

2. 検索したレイヤーのindexNumberを保存

3. indexNumberに基づいて削除

抜き罫削除.js
// 「抜き罫」レイヤー削除 
removeNUKIKEI(activeDocument); 
function removeNUKIKEI(docObj) 
{ 
    var i = searchLayerNum (docObj, "抜き罫"); 
    if( i == -1 ){ 
        // 抜き罫レイヤーがないなら何もしない 
    } 
    else{ 
        var layObj = docObj.layers; 
        removeLayer(layObj, i); 
    } 
} 
 
// レイヤー名検索 
function searchLayerNum(docObj,layName){ 
    layObj = docObj.layers; 
    for (i=0; i<layObj.length; i++){ 
        if( layObj[i].name == layName ){ 
            return i; 
        } 
    } 
    return -1;  // 見つからなかったら-1を返す 
} 


アートボードも名前から削除

アートボードもレイヤーと同様に名前から検索し、削除することが可能。

図面用削除.js
// 図面用アートボードとレイヤーの削除 
removeDRAWING(activeDocument); 
function removeDRAWING(docObj){ 
    var i = searchArtboardNum (docObj, "図面用"); 
    if( i == -1 ){ 
        // 図面用アートボードがないなら何もしない    
    } 
    else{ 
        var artObj = docObj.artboards; 
        artObj[i].remove(); 
    } 
 
    i = searchLayerNum (docObj, "図面用"); 
    if( i == -1 ){ 
        // 図面用レイヤーがないなら何もしない 
    } 
    else{ 
        var layObj = docObj.layers; 
        removeLayer(layObj, i); 
    } 
} 
// アートボード名検索 
function searchArtboardNum(docObj,artName){ 
    artObj = docObj.artboards; 
    for (i=0; i<artObj.length; i++){ 
        if( artObj[i].name == artName ){ 
            return i; 
        } 
    } 
    return -1;  // 見つからなかったら-1を返す 
} 
// レイヤー名検索 
function searchLayerNum(docObj,layName){ 
    layObj = docObj.layers; 
    for (i=0; i<layObj.length; i++){ 
        if( layObj[i].name == layName ){ 
            return i; 
        } 
    } 
    return -1;  // 見つからなかったら-1を返す 
} 


  1. 同名のレイヤーが存在しないことが前提。同名レイヤーをまとめて削除したい場合は、indexNumberを配列に格納すれば対応できるが、そもそも同名レイヤーがあると混乱の元なので避けたほうが良い。 


コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)