:note

孤立点を削除してみるみる

InDesignで孤立点を削除する豆スクリプト。

ドキュメント上で使っているはずのない特色が一向に消せないのを調べていたら、孤立点でした。なぜか収集される無いはずのアタリ画像が孤立点内にあったりもしたなぁ。そういえば、孤立点の検索方法ってない(ある?)ことに気づいたので、ちょちょっと書いてみる。Illustratorでは孤立点は比較的簡単に見つけられます。それだけ容易に孤立点が出来得るわけですが……

テスト用にページ上にいっぱい孤立点を発生させるスクリプト、一部グループ化してみる。

//孤立点ジェネレータ
//最前面のドキュメントにページ毎100個の孤立点を生成します。
var docObj=app.documents[0];
var pageObj=docObj.pages;
for(var pg=0; pg < pageObj.length; pg++){
  var grp=new Array();
  for(var i=0; i < 100; i++){
    var poi = pageObj[pg].graphicLines.add();
    poi.paths[0].pathPoints[1].remove();
    poi.move([
      docObj.documentPreferences.pageWidth*Math.random() ,
      docObj.documentPreferences.pageHeight*Math.random()
      ]);
    if(i%20 == 0){
      grp.push(poi);
    }
  }
  pageObj[pg].groups.add(grp);
}

それをこれで削除してみる。孤立点の定義ってこんなのでよいのかな?思ったよりコンパクトなスクリプトになったのでちょっと不安だ。 あと、confirm()で確認してからの方がいいかな?利用は自己責任で。

//最前面ドキュメントの孤立点を削除
var docObj=app.documents[0];
var layObj=docObj.layers;
var rmvPo=0;
for(var i=0; i < layObj.length; i++){
  var pgItm=layObj[i].allPageItems;
  for(var j=pgItm.length-1; j >= 0; j--){
  RemoveAlone(pgItm[j]);
  rmvPo++;
  }
}
alert(rmvPo+"points removed");

function RemoveAlone (obj){
  try{
    var objGBon=obj.visibleBounds;
  }catch(e){return}
  if(objGBon[0]-objGBon[2] == 0 && objGBon[1]-objGBon[3] == 0){
    obj.remove();
  }
}
 
comments powered by Disqus
back to top