deleteObjects
Illustratorプチ自動化。
アクティブレイヤー内の、非選択オブジェクトだけを削除したい。
背景に影響を与えず、前景のオブジェクトのうち数個だけ残して他を削除。
要は、残したいオブジェクトの方が少ないので、選択したオブジェクトだけ残したいな、というのが動機。
まあ、手作業の場合でも、背景ロックしといて全選択、必要なオブジェクトだけ選択解除→Deleteキー押下。
大して手間のかかる作業じゃない。
スクリプトなんてもんは基本、書き捨てってことで(^^;
またまた、流星さんに教えていただいた。
InDesignで選択追加したい場合、
.select(SelectionOptions.addTo)
といった書き方になるけどIllustratorは
true / false のブーリアン型。そっちのがわかりやすいよねw
【追記】こうちゃんさんがTwitterでの私の発言を目にしてAppleScriptで書いてくださっています。ありがとうございます。Layer操作等は必要に応じてカスタマイズ、ということで。
var my_select = app.activeDocument.selection; var my_Item = app.activeDocument.activeLayer.pageItems; if (my_select.length != 0) { for (k=0; k<my_Item.length; k++) { my_Item[k].selected = true; } for (j=0; j<my_select.length; j++) { my_select[j].selected = false; } var del_object = app.selection; for (i=0; i<del_object.length; i++) { del_object[i].remove(); } }
【2012年9月8日追記】
そうそう、ブーリアン型ってことは、こうちゃんさんのアプローチのように条件分岐で「false」なら削除、って書き方ができるわけだけど、ここに公開した書き方だと「true」のところを「addTo」、「false」のところを「removeFrom」にするだけでInDesignでも使えちゃう。
だから何?って話なんだけれども(^^;