■重なったパスをひとつだけ残してあとは削除します!
(画像は重なっている「イメージ」です。ほんとは同じ位置に重なってます^ ^)
(実際はこの状態↓で動かしてますが、なんせぴったり重なっていると「ビフォーアフター」の動きがまったくわからないので…)
(画像は重なっている「イメージ」です。ほんとは同じ位置に重なってます^ ^)
(実際はこの状態↓で動かしてますが、なんせぴったり重なっていると「ビフォーアフター」の動きがまったくわからないので…)
おつかれさまです。@gorolibです。
「何重にも重なったパスを一つだけ残して他は削除したい」
というスクリプトのリクエストをいただきました。コメントありがとうございます。
なるほど!「前面にペーストを複数回…」みたいなケースですかね、確かにあります^ ^
お試しにてご利用ください!
<スクリプトファイル名>
(ダウンロード無料です)
<使い方>
(1)重なっていそうなパスをまとめて選択します。
(2)このスクリプトを起動します。
<仕様>
(1)オブジェクトの種類は「パスアイテム」のみです
(2)以下「すべて」同じであれば削除します(ひとつでも違えば削除しません)
(a)左上の位置(座標)が同じ
(b)幅が同じ
(c)高さが同じ
(d)塗り色が同じ(CMYK前提です)
(e)線の色が同じ(CMYK前提です)
(f)線幅が同じ
(3)重なり順の上から比較していきます。例えばオブジェクトが5つある場合は、
1番目と2番目の比較(同じならば2番目を消す)
1番目と3番目の比較(同じならば3番目を消す)
1番目と4番目の比較(同じならば4番目を消す)
1番目と5番目の比較(同じならば5番目を消す)
2番目と3番目の比較(同じならば3番目を消す)
2番目と4番目の比較(同じならば4番目を消す)
2番目と5番目の比較(同じならば5番目を消す)
3番目と4番目の比較(同じならば4番目を消す)
3番目と5番目の比較(同じならば5番目を消す)
4番目と5番目の比較(同じならば5番目を消す)
ぐ、ぐふぅ…
というように繰り返します。もちろん上記は結果的に「まったく同じものがなかった」場合であり、消していけば比較する回数は減ります。
お役に立てれば幸いです!ではでは出羽の海。
■ダウンロードはこちらから
■ソースも載せておきます。
━━━━━
DOC = activeDocument
SEL = DOC.selection
MAINfn()
function MAINfn(){
if(SEL.length < 2) return false
LEN = SEL.length
for(i=0; i<LEN; i++){
SELfn(i)
}
}
function SELfn(i){
SEL = DOC.selection
SELz = SEL[i]
AR1 = []
for(s=i+1; s<SEL.length; s++){
FLG = FLGfn(SELz,SEL[s])
if(FLG==true) AR1.push(s)
}
for(a=0; a<AR1.length; a++){
SEL[AR1[a]].remove()
}
}
function FLGfn(SEL1,SEL2){
if(SEL1.typename != "PathItem") return false
if(SEL2.typename != "PathItem") return false
if(SEL1.position[0] != SEL2.position[0]) return false
if(SEL1.width != SEL2.width) return false
if(SEL1.height != SEL2.height) return false
if(SEL1.fillColor.cyan != SEL2.fillColor.cyan) return false
if(SEL1.fillColor.magenta != SEL2.fillColor.magenta) return false
if(SEL1.fillColor.yellow != SEL2.fillColor.yellow) return false
if(SEL1.fillColor.black != SEL2.fillColor.black) return false
if(SEL1.strokeColor.cyan != SEL2.strokeColor.cyan) return false
if(SEL1.strokeColor.magenta != SEL2.strokeColor.magenta) return false
if(SEL1.strokeColor.yellow != SEL2.strokeColor.yellow) return false
if(SEL1.strokeColor.black != SEL2.strokeColor.black) return false
if(SEL1.strokeWidth != SEL2.strokeWidth) return false
return true
}
━━━━━
━━━━━
コメント
コメント一覧 (2)
無事使用できました!!まさにこれです、、!!
ありがとうございます!!!
デザイナー仲間にもこちらのサイトオススメさせていただきます!
本当にありがとうございました。
スクリプトの更新、これからも楽しみにしております!
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。