JavaScript
JSX
illustrator

【illustrator】マルチ解除 17のコマンドを1つのショートカットに【ショートカット拡張】

オブジェクトを1つ選択

  • グループを選択時 ・・・ 「グループ解除」
  • クリッピングマスクを選択時 ・・・ 「クリッピングマスクを解除」
  • ライブペイントを選択時 ・・・ 「ライブペイントを解除」
  • ブレンドを選択時 ・・・ 「ブレンドを解除」
  • 画像トレースフィルタのかかった画像を選択時 ・・・ 「画像トレースを解除」
  • 複合シェイプを選択時 ・・・ 「複合シェイプを解除」
  • メッシュを選択時 ・・・ 「メッシュのもととなるパスに変換」※メッシュは解除できない
  • 複合パスを選択時 ・・・ 「複合パスを解除」
  • シンボルを選択時 ・・・ 「シンボルへのリンクを解除」
  • ガイドを選択時 ・・・ 「ガイドの解除」
  • 不透明マスクのかかったパスを選択時 ・・・ 「不透明マスクを解除」
  • 塗と線以外の効果のかかったパスを選択時 ・・・ 「線と幅以外の効果を解除」
  • エリア文字を選択時 ・・・ 「ポイント文字に変換」
  • 複数行のポイント文字を選択時 ・・・ 「1行ごとにテキストを分割」
  • 1行のポイント文字を選択時 ・・・ 「1文字づつテキストを分割」

オブジェクトを複数選択

  • 「グループ解除」

選択なし

  • アウトライン表示のレイヤーがない場合、すべてのレイヤーをアウトライン表示
  • アウトライン表示のレイヤーがある場合、すべてのレイヤーをプレビュー表示

 

var doc = app.activeDocument;
var selects = doc.selection;

if (selects.length === 1){
    for (iS=0; iS<selects.length; iS+=1){
        if (selects[iS].typename === "GroupItem"){
            if (selects[iS].clipped){
                app.executeMenuCommand('releaseMask'); // クリッピングマスク解除
            }
            else{
                app.executeMenuCommand('ungroup'); // グループ解除
            }
        }
        else if (selects[iS].typename === "PluginItem"){
            app.executeMenuCommand('Release Planet X'); // ライブペイント解除
            app.executeMenuCommand('Path Blend Release'); // ブレンド解除
            app.executeMenuCommand('Release Image Tracing');  // 画像トレースの解除
            app.doScript("複合シェイプを解除","#");
        }
        else if (selects[iS].typename === 'MeshItem'){
            app.doScript("アクション名","グループ名"); // ※「パスのオフセット 0指定」のアクションを登録し記述
            selects[iS].remove();
        }
        else if (selects[iS].typename === "CompoundPathItem"){
            app.executeMenuCommand('noCompoundPath'); // 複合パス解除
        }
        else if (selects[iS].typename === "SymbolItem"){
            app.doScript("シンボルへのリンクを解除","#");
        }
        else if (selects[iS].typename === "PathItem"){
            if (selects[iS].guides){
                selects[iS].guides = false;
            }
            else{
                app.doScript("不透明マスクを解除","#");
                selects2 = app.activeDocument.selection;
                if (selects2.length === 1){
                    var sc = selects2[0].strokeColor;
                    var sw = selects2[0].strokeWidth;
                    var fc = selects2[0].fillColor;
                    app.doScript("アピアランスを消去","#");
                    selects2[0].strokeColor = sc;
                    selects2[0].strokeWidth = sw;
                    selects2[0].fillColor = fc;
                }
            }
        }
        else if (selects[iS].typename === "TextFrame"){
            if (selects[iS].kind === TextType.AREATEXT){
                selects[iS].convertAreaObjectToPointObject()
            };
            else{
                if (selects[iS].lines.length === 1){
                    // 1文字分割のスクリプト
                    // http://chuwa.iobb.net/tech/archive/2011/12/splitter.html
                    #include "外部jsxファイル";
                }
                else{
                    // 1行分割のスクリプト
                    // https://www.tactsystem.co.jp/applescript/illustrator07.html
                    #include "外部jsxファイル";
                }
            }
        }
    }
}
else if (select.length > 1){
    app.executeMenuCommand('ungroup'); // グループ解除
}
else{
    var layers = app.activeDocument.layers;
    var preview = true;
    for (i=0; i<layers.length; i+=1){
        if (!layers[i].preview){
            preview = false;
            break;
        }
    }
    if (preview){
        for (i=0; i<layers.length; i+=1){
            layers[i].preview = false;
        }
    }
    else{
        for (i=0; i<layers.length; i+=1){
            layers[i].preview = true;
        }
    }
}