レイヤー 簡易的なレイヤーリネーム


前にもやった、レイヤーを操作するものの亜種。
レイヤー名を変更する、簡易的なスクリプトを乗せてみた。

やっている事は、プレフィックスに追加するか
または、対象の文字列を削除するといった感じ。
現在選択中のレイヤーを対象にしたかったけど、
どうも、選択状態の取得方法がイマイチ分からなかったので、
ひとまず、対象は全てレイヤー。

エディットテキストとか、ボタンとか、適当に修正して使ってもらえればOK。
現在オレ専用プラグインに搭載中。

役に立つかな??

レイヤー名の頭文字に特定の文字列を追加する。

  button allLayerPfxBt “全レイヤーにプレフィックス” width:160
  editText allLayerPfxTxt “” width:160 height:16

on allLayerPfxBt pressed do
(

–テキストはあるか?
 if (allLayerPfxTxt.text != “”) then
 (
 Local layerCount, layer, layerRT;
 Local tagLayer = #(); 
 –レイヤーの数
 layerCount = (layermanager.count – 1);
 
 –レイヤー内にオブジェクトが無いレイヤーの名前を回収
 for i = 1 to layerCount do
 (
  –レイヤーを取得
  layer = layermanager.getlayer i;
  –レイヤーの名前を変える
  layer.setname (allLayerPfxTxt.text + layer.name);
 );–for end
 
 )else(messageBox”テキストが入力されていません”title:”エラー”);–if end
);
);

以下は、レイヤー名から文字列を検索して
対象の文字列を削除する機能。

  button allLayerDlPxBt “全レイヤー対象文字を削除” width:160
  editText allLayerDlPxTxt “” width:160 height:16

on allLayerDlPxBt pressed do
(

 –テキストはあるか?
 if (allLayerDlPxTxt.text != “”) then
 (
 Local layerCount, layer, layerRT, hitText, myText;
 Local tagLayer = #();
 
 –レイヤーの数
 layerCount = (layermanager.count – 1);
 
 –レイヤー内にオブジェクトが無いレイヤーの名前を回収
 for i = 1 to layerCount do
 (
  –レイヤーを取得
  layer = layermanager.getlayer i;
  –レイヤーの名前から見つけて削除
  hitText = findString layer.name allLayerDlPxTxt.text;
  –文字が見つかったら!(検索結果undefindでなければ)
    if hitText != undefined then
    (
     –文字列を空にはしない
     if (layer.name.count != allLayerDlPxTxt.text.count) then
     (
     –文字数分を空の文字に文字を置き換えます
     –<対象のString> <開始文字番号> <置き換える文字数> <置き換える文字>
     myText = replace layer.name hitText allLayerDlPxTxt.text.count “”;
     layer.setname myText;
     );–if end
    );–ifend
 );–for end
 
 )else(messageBox”テキストが入力されていません”title:”エラー”);–if end

);

内容は、さほど難しくないと思うけども・・・。
コメント分を使いまくっている事はツッコまないで。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください