リンクをクリップボードにコピー
コピー完了
イラストレーターCC2018を使っています。複数の線が多数あり、その中で長さが15px以下の線を削除したいのですが、そのように一定の長さ以下の線を選択する方法はありますか?
リンクをクリップボードにコピー
コピー完了
選択メニュー内の「共通」「オブジェクト」が自動的に特定条件の共通オブジェクト選択設定になっていますが、
線の長さとしてはそれに関わる設定がないことから、できない、という話になってきます。
可能性があるとしたらスクリプトでの処理で考えることにはなりますけど、
それでも斜線などの判定をどうするのか。という点があるので、難しいのではないかと思います。
ちなみに孤立点は「余分なポイント」で処理が可能ですが、あるとしたらそこまで、ということになりますし、
15px程度あるものが余分かというかはおそらく作成者にしかわからない範囲のように思いますがどうでしょうか。
リンクをクリップボードにコピー
コピー完了
スクリプトでよければ以下を使用してみてください。
var actdoc = app.activeDocument;
var itm, x1, y1, x2, y2, distance;
for (var i = 0; i < actdoc.pathItems.length; i++) {
itm = actdoc.pathItems;
if (itm.pathPoints.length == 2) {
x1 = itm.pathPoints[0].anchor[0];
y1 = itm.pathPoints[0].anchor[1] * -1;
x2 = itm.pathPoints[1].anchor[0];
y2 = itm.pathPoints[1].anchor[1] * -1;
distance = Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2);
distance = Math.sqrt(distance);
distance = (Math.round(distance * 100)) / 100;
if (distance <= 15) {
itm.selected = true;
}
}
}
上記をテキストエディットなどにコピーペーストして、拡張子を「.jsx」にして保存します。
イラストレーターのメニューから、
ファイル→スクリプト→その他のスクリプト...
で、保存したjsxファイルを指定して実行してください。
ざっくりとしたテストのみ行いました。
線の始点と終点間の距離を計算しているので正しく選択できるのは直線に限ります。
線や塗りの設定は判定していません。
リンクをクリップボードにコピー
コピー完了
パスの長さはpathItemのlengthプロパティを利用すれば正確に取得可能です。
var tg = app.activeDocument.pathItems;
for (var i=0;i<tg.length;i++)
if(tg.length>150) tg.selected = true;
複合化されたパスを考慮しなければこの様なコードになります。