![見出し画像](https://assets.st-note.com/production/uploads/images/131743616/rectangle_large_type_2_d6957057cb008782b492f4c3b182cf22.png?width=1200)
Illustratorファイルから全角レイヤー名を雑に排除する(2024年2月)
ボードゲーム制作で初版と2版で入稿先を変更することにした。
海外発注することになったので、ファイル名やレイヤー名から全角文字を削除する。(ちゃんとした体裁の記事は改めてキレイにしてオ卓noteに載っけたいですね…こっちは…あの…雑に……)
お世話になったスクリプト
スクリプト例
![](https://assets.st-note.com/img/1708616281832-lC3hnxDqNo.png?width=1200)
1. 特定の名前のレイヤーを削除する
「入稿のご案内」という名前のレイヤーを削除させてもらいました。
日本語話者の入稿者向けの説明が書いてあるレイヤーで、ガイド線とは別になっていたためです。ガイド線は言語を超える…!超えてくれ。
// 「入稿のご案内」レイヤー削除
removeNYUKO(activeDocument);
function removeNYUKO(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を返す
}
// レイヤー削除
function removeLayer(layObj, tgtNum){
layObj[tgtNum].locked = false;
// 非表示レイヤはremove()しようとするとエラー失敗する
layObj[tgtNum].visible = true;
layObj[tgtNum].remove();
}
2. 特定の名前のレイヤーを変換する
「トンボ」を「registration marks」に変えました。
そのくらいはやったほうがいいと思って…
// 「トンボ」レイヤー→「registration marks」
renameTOMBO(activeDocument);
function renameTOMBO(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を返す
}
// レイヤー削除
function removeLayer(layObj, tgtNum){
layObj[tgtNum].locked = false;
// 非表示レイヤはremove()しようとするとエラー失敗する
layObj[tgtNum].visible = true;
layObj[tgtNum].name="registration marks";
}
3. objectの名前をとにかく半角に変える
全角で「長方形」とか生成するのやめてくれないかIllustrator…!
「<クリップグループ>」じゃないんだよ!やめてくれー!
すべて問答無用で「Obj001」とかにします
これは駆け込み寺さんのをそのまま使わせていただいてます
//----------------------------------------------------
//ダイアログ設定
//----------------------------------------------------
setDialog = function(inputText){
var win = new Window("dialog", "オブジェクト名一括変更");
var myText = win.add("edittext", [0, 0, 400, 300], "", {multiline: true});
myText.text = inputText;
myText.active = true;
win.add ("button", undefined, "OK");
win.add ("button", undefined, "Cancel");
if (win.show () == 1){
myName = myText.text;
changeName(selObj);
}
else{
return;
}
}
//----------------------------------------------------
var selObj = activeDocument.selection;
checkName(selObj);
var old_Name = set_Name.join("\n");
setDialog(old_Name);
function checkName(target)
{
set_Name = [];
var n = target.length;
for (var i=0; i<n; i++)
{
var set_old_Name = target[i].name;
set_Name.push(set_old_Name);
}
}
function changeName(target)
{
var new_Name = [];
new_Name = myName.split("\n");
var n = target.length;
for (var i=0; i<n; i++)
{
var set_new_Name = new_Name[i];
target[i].name = set_new_Name;
}
}
無事入稿できたとのことです。ありがとうございました。
場合によってはこちらもお世話になりそうでした。
日々のコーヒー代になります!