■面倒でした表組みセルの色付け。全国のアンチスマートガイド派に贈ります(笑)   

(クリックで動きます)
タイトルなし
おつかれさまです。@gorolibです。

唐突ですが、表組みのセルに背景色をつけるスクリプトをつくりました。

いっや、これってさ。スマートガイドをオンにして、長方形コマンド使えばいいだけでしょ?


はい…おっしゃるとおりです。


でもね、スマートガイド好きじゃないんです。ほら、そこの貴兄も貴女もそうでしょ?(強引)。

こんなこと言ったらイラストレーター開発のスマートガイド担当チーム(想像)に怒られるかもしれないですけどね。

「交差」とか「アンカー」とかお知らせしてくるコソクな感じ、すきあらば「吸着しちゃうぞ^ ^」的な感じが、ちょっと性格的に相容れないんですよねぇ(笑)


ふたりでは飲みに行きたくない感じ…~_~;


いや、彼のわるぐちはもうやめましょう。彼にもいいところはきっとあります!(笑)


Anyway、スマートガイドは使わず表組みセルに色をつけるスクリプトがほしかったんです!(前置き長っ)


(補足)最近はスキマをライブペイントで塗っていく手もありますが、

・ライブペイントオブジェクトの作成
・塗り
・拡張
・グループ解除

と結構手間かかるんですよね。

あとライブペイントして拡張すると、線の装飾が消えちゃったりして、いろいろ面倒なんです。


■ ダイレクト選択でアンカーポイントを4点選ぶのがコツです


(クリックで動きます)
タイトルなし


<スクリプトファイル名>
ダウンロード無料です。



<使い方>
(1)セル背景をつけたいアンカーポイントの四点をダイレクト選択します。
(2)このスクリプトを起動します。


<仕様>
(1)選択されたアンカーポイントの最大範囲に長方形を描きます
(2)線なし。塗りはスミ15%(cmyk前提)です。


■こんな感じができます。画像一覧にてどうぞ
49
57
11
28
36
そう、ダイレクト選択ツールで4点アンカーポイントが選ばれていればだいたいオーケーです。


4点以上選んでもオーケーです。 最大範囲で長方形を描きますから。例えば
36
なんて、最大12点選択してますからね。その辺は大サービスです。


なお通常の選択ツールですと、アンカーポイントがぜーんぶ選択されてしまうので、こうなります。

Wow!
59

またこれはこれで使い道ありそうですけどね。


■線だけで囲まれたセルはできま千円orz


えー、今回無料提供の意味は、こういうのができないから。
48

ね、こういうのこそ一瞬でつくりたいでしょ?

すんません、研究しときます…coming soon!


今回はアンカーポイントの最大範囲で長方形つくるんです。なのでこういう場合(上の2点だけアンカーポイントを選んだ場合)は「面積のない塗り」としてゴミになってしまいます…。

(クリックで拡大します)
56
まぁそういった意味でも自分としては完成品ではないので、無料です。


まとめると「アンカーポイントを4点以上選ぶ」のが基本でございます。ご留意くださいませ…。
 

お役に立てれば幸いです!ではでは出羽の海。


■ダウンロードは無料です

こちらからどうぞ



■無料なのでソースも公開しときます
━━━━━
DOC = activeDocument
SEL = DOC.selection
LAY = DOC.activeLayer

MAINfn()

function MAINfn(){
if(SEL.length == 0) return false

AR1 = []

for(s=0; s<SEL.length; s++){
POI = SEL[s].pathPoints

for(p=0; p<POI.length; p++){
if(POI[p].selected == PathPointSelection.ANCHORPOINT){
AR1.push(POI[p].anchor)
}
}

SEL[s].selected = false
}

if(AR1.length == 0) return false

MAX = AR1.length-1

ARx = SORTfn1(AR1)
ARy = SORTfn2(AR1)

Xmin = ARx[0]
Ymin = ARy[0]
Xmax = ARx[MAX]
Ymax = ARy[MAX]

L1 = Xmin[0]
T1 = Ymin[1]
W1 = Xmax[0]-Xmin[0]
H1 = Ymin[1]-Ymax[1]

NEW = LAY.pathItems.rectangle(T1, L1, W1, H1)
NEW.fillColor = CMYKfn(0,0,0,15)
NEW.stroked = false
NEW.selected = true
NEW.move(LAY,ElementPlacement.PLACEATEND)
}

function CMYKfn(c,m,y,k){
COL = new CMYKColor()
COL.cyan = c
COL.magenta = m
COL.yellow = y
COL.black = k
return COL
}

function SORTfn1(f10){
f11=[]
for(i=0; i<f10.length; i++) f11.push(f10[i])
f11.sort(function(a,b){
if(a[0] > b[0]){
return -1
} else if(a[0] < b[0]){
return 1
} else {
return 0
}
})
return f11
}

function SORTfn2(f20){
f21=[]
for(i=0; i<f20.length; i++) f21.push(f20[i])
f21.sort(function(a,b){
if(a[1] > b[1]){
return -1
} else if(a[1] < b[1]){
return 1
} else {
return 0
}
})
return f21
}
━━━━━