おつかれさまです。GOROLIB DESIGNです。
なぜだかわかりませんが過去記事を鑑みると、私はオブジェクトを強引に長方形にする処理が好きですねぇ。
その筆頭は段組設定さんです(今や敬意を表してさん付けです)。
どんなに離れていようが、丸だろうと三角だろうと、1行1列にすると一瞬で長方形にしてくれます。
参考:段組設定を使うとレイアウトの効率が異次元になる件
http://gorolib.blog.jp/archives/37483686.html
しかーし!そんな段組設定さんにも不得手がございまして…。
エリア文字やポイント文字、プレビュー境界を鑑みた長方形にはしてくれません。
こういうやつ。
そりゃそうよね。元々そんな機能じゃないもんね。段組設定さん、おつかれさまです。
こういうやつを見た目の大きさで長方形にするのは面倒です。
パスのアウトラインをかけてから、全体をグループ化し、
・段組設定で1行×1列に。もしくは
・効果>長方形に変換で、幅に追加=0、高さに追加=0
と、なかなかに工程が多い…。
なので、どんなオブジェクトでも選択した範囲の「見た目の大きさ」で長方形に変換するスクリプトを作りました。なんでもござれです。グループ化も不要です。
これぞ長方形無双!暴れん坊将軍!
カーーーーッ!(効果音:ビブラスラップ)
http://drum-percussion.info/category7/category134/
は、話がそれました…(笑)
ソースは後述しますが、あれです、範囲をvisibleBoundsで取得しているので、いわゆるこれがプレビュー境界オンのときの「見た目の大きさ」と同じです。
重ねてみるとこんな感じ。パスのアウトラインをかけなくてもいいんですね。
また、元のオブジェクトを消さなくていい、という方はスクリプトから、
SEL[N].remove();
の1行を削除すればOKです。
ではでは出羽の海。
ダウンロードはこちらからどうぞ。
スクリプトの起動についてはこちらを参照ください。
参考:イラストレーターでスクリプトをサクッと起動する方法
http://gorolib.blog.jp/archives/35402049.html
ソースはこちらです。
━━━━━
// Gorolib_SelectedAreaRectangle
// Copyright (C) 2016 GOROLIB DESIGN All Rights Reserved.
DOC = activeDocument;
SEL = DOC.selection;
LAY = DOC.activeLayer;
RCT = SEL[0].visibleBounds;
x1 = RCT[0];
y1 = RCT[1];
x2 = RCT[2];
y2 = RCT[3];
for ( N=0 ; N<SEL.length ; N++ ) {
// 選択オブジェクトのサイズを取得
BND = SEL[N].visibleBounds;
// 最大サイズを比較抽出
if ( BND[0] < x1 ) { x1 = BND[0] };
if ( BND[1] > y1 ) { y1 = BND[1] };
if ( BND[2] > x2 ) { x2 = BND[2] };
if ( BND[3] < y2 ) { y2 = BND[3] };
// 選択オブジェクトを削除
SEL[N].remove();
}
// 長方形の作成
OBJ = LAY.pathItems.rectangle( y1 , x1 , x2-x1 , -(y2-y1) );
OBJ.filled = false; // 塗りなし
OBJ.stroked = false; // 線なし
OBJ.selected = true; // 選択する
━━━━━
(追記160404)やっぱりプレビュー境界オフ的な取得もしたいのでプレビュー境界オン=visibleBounds、プレビュー境界オフ=geometricBoundsという条件分岐を追加しました。バージョン1.1です。
コメント
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。